Skip to content

Cracking nedir ve Crack Dosyası Hazırlama ?

Cracking nedir cracking kısa olarak program kırma da denilebilir. Program kırabilmek için assembly dilini bilmeniz lazımdır. dongle adı verilen donanımlarla korunan programlar için ise iyi derecede assembly dilini bilmeniz lazımdır. Assembly nedir Assembly bir programlama dilidir. Bu dil ilk bilgisayarcıların keşfettiği bir dildir. İlk programcılar makine dili komutları ile programları yazmaktaydılar. Makina dili işlemciye veri bitlerinin hexdecimal sayı sisteminde gösterilmesiyle oluşmuş bir dildir. yani ilk programlar 0 ve 1 sayılarıyla yazılıyordu. ve bu sayılarla assembly dili geliştirildi assembly dili ile işlemlerin ingilizce karşılıklarının kısaltmalarından oluşuyordu. Program Nasıl Kırılır Eğer amacınız programları ücretsiz veya sınrısız kullanmak ise bu zorlu işe girmenize hiç gerek yok www.astalavista.com da programın crackini bulabilrisiniz. Fakat cracker olmak istiyorsanız başlayabilirsiniz. Program kırabilmek için programcılıktan da anlamanız gerekiyor. Programları en basitinden debug programlarıyla kırılır bu programlarla kırmak istediğiniz programın o anda yaptığı ilşlemleri takip edersiniz dolayısıyla şifre yanlış hatası verdiği anı takip ettiğinizde şifre ye ulaşabilir veya şifrenin algortimasını çözebilirsiniz Program Kırmak için gerekenler 1- Sabır 2- Assembly dilini bilmek 3- Windows u iyi derecede bilmek 3- Gerekli programlara sahip olmak Gerekli Programlar En önemlisi debug programı olan softice, disassembler programı Windasm, Hex editör programı Hiew (Hackers View) bunlardan başka işinizi kolaylıştıracak ekstra programlar da var. Örneğin Visual Basic programları için SmartCheck Delphi programları için Dede vb. Programların linklerini vermiyorum siz google de bulabilirsiniz eğer bulamayacak kadar bilgisayarda bilgisizseniz bu işten de vazgeçmelisiniz. SoftIce Kullanma klavuzu alıntıdır —————————————————————————————————– SofICE Kurulumu SoftICE ı iyi bir şekilde kurup ayarlamazsanız gerekli verimi alamazsınız.Kurulum ekranında önemli olan 3 nokta var Video Adapter Mouse Video Ekran kartı ayarları SoftICE’ın çalışması için çok gereklidir.Bu ayarları yanlış yaparsanız SoftICE ı kullanmanız mümkün olmıyabilir.Bu ayarlara çok dikat edin.İlk olarak ekran kartnız listede varsa onu seçin.Daha sonra Test tuşu ile çalışıp çalışmadığınız kontrol edin.Eğer ekran kartınız listede yoksa yahut ilerde problem yaşarsanız ekran kartı olarak “Universal Video Driver” seçeneğini seçin. Mouse Mouse unuzun tipi neyse ona uygun mouseu seçin.Yanlış mouse u seçerseniz SoftICE sapıtabilir o yüzden dikkatli olun. SoftICE’ın Ayarlanması SofICE i iyi ayarlıyamazsanız programdan faydalanamazsınız.İlk olarak bir boot menüsü oluşturalım böylelikle windows her açıldığında bize SofICE ile açılıp açılmıycağını sorsun.Autoexec.bat ve config.sys dosyalarını aşağıdaki gibi değiştirin. Eğer işletim sisteminiz WinME ise http://icedump.******** adresinden wmloaderı indirin ve readme dosyası okuyun. Autoexec.bat dosya örneği. !!!!Sizin autoexec.bat dosyanızın sonuna bu satırları ekleyin.Eğer başa eklerseniz sorun yapar.!!! Rem —–Buradan itibaren kopyalayın——- goto %config% REM Load SoftICE – SoftICE in kurulu oldugu yer onemli !! :SICE C:\PROGRA~1\NUMEGA\SOFTIC~1\WINICE.EXE REM SoftICE olmadan baslangic :NORM Rem —-Buradan kesin—— Config.sys dosya örneği. !!!!Sizin config.sys dosyanızın sonuna bu satırları ekleyin.Eğer başa eklerseniz sorun yapar.!!! Rem —–Buradan itibaren kopyalayın——- REM Menüyü olustur. [MENU] MENUITEM NORM,Windows 98 MENUITEM SICE,SoftICE ile Windows 98 MENUDEFAULT NORM,5 [NORM] [SICE] Rem —-Buradan kesin—— Benim kullandığım winice.dat dosyasını download edin ve SoftICE ın kurulu olduğu klasöre kopyalayın.Winice.dat ‘a yaptığınız her değişikliğin etkili olabilmesi için yeniden windowsun başlatılması lazım.Bu yüzden programı kurduktan sonra winice.datı değiştirip öyle restart atın SoftICE Komutları SoftICE kurmamıza rağmen etkili bir şekilde kullanmayı öğrenmek o kadar kolay değildir.Kullana kullana sizde bir şeyler öğreneceksiniz.Fakat burada SoftICE ‘ın nasıl kullanıldığına dair bir kaç örnek verelim SoftICE a geçmek için Ctrl ve D tuşuna aynı anda basın.Bu bütün programları durduracak ve sizi SoftICE ekranına götürecetir. SoftICE a geçince bir kaç pencere ve değişik bilgiler göreceksiniz.Alttaki pencere bizim komutları yazdığımız input penceresi.Bazı komutalar şöyle.. x = SoftICE dan çık. bpx = SoftICE a belli api kodlarında dur emri bpm = SoftICE a belli bellek bölgelerinde dur emri bpr = Belli hafıza bölegelerinde dur emri d = Belleği ve orada yazan değerleri göster e = Bellekteki değerleri değiştirir cls = Input penceresini temizle. s 0 l ffffffff ‘text’= Hafızada text yazısını arar Örnek vermek gerekirse bpx getdlgitemtexta SoftICE a bu api kodunu görünce dur komutunu verir bpm 0157:0009AC2D SoftICE a o belleğe erişildiği zaman dur komutunu verir. bpr 0157:00643345 0157:00643345 iki yer arasında bir yere erişildiği zaman dur komutunu verir d 00456787 o bölgedeki bellekteki değerleri gösterir. d eax eax registerinin belirttiği yerdeki belleği gösterir. Birde input penceresinde kullandığımız komutalardan da bahsedelim. bl = O andaki breakpointleri gösterir((00) BPX #0028:09876543 C=01 gibi) bc = O anda konulmuş break pointleri temizler (bc 1 bir nolu breakpointi siler.) bd = Break pointi kapatir(bd 0 0 nolu breakpointi kapatır) be = Break pointi açar (be 0, kapatılan 0 nolu breakpointi açar) ? = Belli bir register veya sayının değerini gösterir.( ? 23 # gibi) SoftICE Problemleri Bu problemlerin %90 ı winice.dat dosyasını düzenlemediğiniz için olmaktadır. Uyarı: Problemlerinize geçmeden önce lütfen winice.dat dosyasını download edip SoftICE ı kurduğunuz klasöre kopyalayın. 1. SoftICE a geçiyorum breakpoint koyunca symbol not defined diyor. – Breakpoint koyduğunuz dll winice.dat dosyasında bulunmuyor demektir.Kernel32.dll user32.dll vs yi winice.dat dosyasında bulun ve o satırın en başındaki ; i kaldırın. 2. Bazen SoftICE a kendiliğinden geçiyor ve bir daha geriye dönemiyorum. – R tuşuna basın ve daha sonra faults off yazın. 3. Ctrl+D kombinasyonunu Alt+Z şeklinde nasıl değiştirebilirim; – winice.dat dosyasının INIT kısmını şu şekilde değiştirin INIT=”code on; altscr off; lines 60; wc 32; wd 8; faults off;ALTKEY ALT Z;X;” 4. Ekran boyutunu nasıl değiştirebilirim. – wc,wd lines değerlerini değiştirerek bunu yapabilirsiniz. 5. SoftICE bir sürü loading unloading vs mesajları gösteriyor bunu nasıl kapatabilirim – winice.dat ı açın ve VERBOSE=OFF satırını ekleyin.Yahut loader32.exe yi açın.Edit/SoftICE initializing settings den “Disable diagnostic messages” ı seçin. 6. Init kısmına eklediğim komutlar çalışmıyor. – Init kısmına eklenen komutlar ; ile birbirinden ayrılmalı ve en sonunda X; olmalıdır.X komutu SoftICE dan çık demek oldupundan eğer X; den sonra komut eklerseniz bunlar çalışmıycaktır.Kısacası init kısmı şöyle olmalıdır. INIT=”command1;command2;…;commandn;X;” 7. Bazen SoftICE girdiğim zaman mouse deli gibi oynamaya başlıyor.Hiç bir şey yapamıyorum.Bu olay bazen SoftICE dan çıktığım zamanda oluyor. – Bu olay mouse işlem yaparken SoftICE a geçildiği zaman oluyor.Bu yüzden mouse un senkronizasyonu bozuluyor.Bunu düzeltemek için bir kaç kez Ctrl+M tuşuna basın.Bir kaç kez bastıktan sonra mouse eski haline dönecektir. Eğer bu olay windows ortamına geçtiğinizde olursa Ctrl+Alt+Del tuşlarına bir kez tıklayın Task Manager geldiğinde hemen Esc ile çıkın.Buda mouse u eski haline getirecektir. 8. Bir program HKLM\Software\DandikSoft\Serial diye bir keyi okuyor.Ben bpx regqueryvalueexa şeklinde breakpoint koyuyorum ama SoftICE yüzlerce kez duruyor.Sadece belli keye ulaşıldığı zaman nasıl durdurabilirim. – Bu soruyu biraz açıklıyarak cevap vermek istiyorum bunu iyi anlarsanız çok işinize yarar.Şimdi ilk olarak RegqueryValueexa fonkisyonu ne işe yarar ve hangi parametreler yollanır ona bir bakalım.win32.hlp dosyasını açıyoruz ve şunu görüyoruz LONG RegQueryValueEx( HKEY hKey, // çağrılacak keyin handle ı LPTSTR lpszValueName, // alınıcak değerinin isminin olduğu adres LPDWORD lpdwReserved, // saklı LPDWORD lpdwType, // değer tipinin adresi LPBYTE lpbData, // fonksiyon sonucunun adresi LPDWORD lpcbData // fonksiyon sonuc adresinin büyüklüğü ); Bu fonksiyon stdcall şeklinde bir fonksiyon yani parametreler en sondan başlayarak push ediliyor.Siz bu breakpointi koyup SoftICE geçtiğiniz zaman ESP şu şekilde olacaktır … [ESP+18h] – lpcbData [ESP+14h] – lpData << Buraya fonksiyonun sonucu geliyor. [ESP+10h] – lpType [ESP+0Ch] – lpReserved [ESP+08h] – lpValueName << Alınıcak olan değerin ismi. [ESP+04h] – hKey [ESP+00h] – return EIP << Call’ın yapıldığı adres. Yani SoftICE durduğu zaman biz dd esp+14 yazarsak fonksiyonun sonucunun nereye yazıldığını görürüz.Yahut dd esp+8 yazarsak hangi anahtarın çağrıldığını bulabiliriz.Şimdi bizim istediğimiz sadece bir keyden okunduğu zaman durdurmak.Aşağıdaki breakpoint işimiz görecektir. BPX RegQueryValueExA IF *(ESP->8) == ‘Seri’ DO “D ESP->14;” Eğer program Seri ile başlayan bir keyden bir şey okursa dur.İsterseniz bu nasıl oluyor bir bakalım *(ESP->8) demek esp+8 in gösterdiği yerdeki içerik demek.Bildiğiniz üzere push edilenler dword olduğu için yani 4 byte biz sadece 4 haneyi okuyabiliyoruz.Eğer esp+8 in gösterdiği yerde Seri yazıyorsa, Do d esp->14 de esp+14 bölgesi yani sonucun alındığı bölgeyi göster demek.Bu şekilde yazmak uzun olabilir o yüzden macro ile bu işi halletmek en güzeli.Bu makroyu winice.dat dosyasına ekliyebilirsiniz eğer ekli değilse MACRO bpreg=”bpx regqueryvalueexa if*(esp->8)==’%1′ do \”d esp->14\”” %1 demek macroya gönderilen parametre demek \ işaretlerini eklememizin sebebi SoftICE, ” işaretlerini macro bitişi kabul ettiği için biz \ işareti ile ” ları yok saydırıyoruz. eğer Serial keyine ulaşıldığında durmasını istiyorsanız SoftICE da iken artık sadece şunu yazmanız yeterli olucak bpreg Seri Dikkat edin sadece ve sadece ilk dört karakteri giriyorsunuz. Bu şekilde macroları geliştirebilirsiniz.Mesela bunu getwindowtexta veya getdlgıtemtexta ya uygulayıp sadece sizin isminiz istendiğinde SoftICE a geçmek vs .Unutmamanız gerek fonksiyona gönderilen parametreler ve bunları ESP de göründüğü durum.Her bir parametre bir dword da oluyor.Yani sadece ilk dworda erişme şansımız var. Umarım bu ipuçları size faydalı olur. —————————————————————————————————————————————- Winice.dat dosyasını adidascrack.*********.com/winice.zip burdan indirebilirsiniz (eğer indirmede sorun yaşarsanız www.mynet.com a girip adres satırını adidascrack.*********.com/winice.zip yazın. Hiew Kullanmak Klavuzu F1 Dosya hakkında bilgiler verir F2 Marj ayarlaması yapar/ayarı kaldırır F3 Dosyayı A/H/T moduna dönüştürür F4 Modu belirler F5 Verilen adrese gider (A/H modu için) F6 Linefeed, satır ayarlaması yapar. F7 A/H/T modunda arama yapar, E modunda crypt eder. F8 A/H modunda header, T modunda XLAT, E modunda XOR F9 A/H/T modda dosya açar, E modda dosyayı günceller F10 A/H/T modunda programdan çıkar Alt-P Ekranı bir dosya olarak saklar. Alt-R Dosyayı yeniden yükler. Ctrl-F3 Bul/değiştir Ctrl-F7 Aynı kritere göre sonrakini ara Ctrl-F8 Önceki dosyaya geçer Ctrl-F9 Sonraki dosyaya geçer + Satır işaretler (Bookmark) Alt-(1..8) İşaretlenen satıra gider Alt– Geçerli bookmarkı siler Assembly Dili Hakkında Bilgi Assembly Dili Hakkında Biraz Bilgi Kullanılan belli başlı assembly komutlarını basitçe açıklamaya çalıştım, bunları bilmeden hareket edemeyiz. mov komutu; Bu komut registerlere değer atamak için kullanılır. mov eax, 8 ,bu komuttan sonra eax=8 olacaktır. mov eax, ebx ,ebx eax’e kopyalanır. cmp komutu; Karşılaştırma komutudur. Arkasından da sonuca göre ya devam edilir, yada başka bir kısma atlanır. Burayı atlamak için ise je, jz komutları kullanılmaktadır. cmp eax, ecx ,burada sadece eax, ecx ile karşılaştırılmaktadır. Herhangi bir dallanma yok. jmp komutu; Şartsız dallanma komutudur. Program başka bir satıra yönlendirilir. jmp 00415265 ,ile program bu 415265 adresine yönlendirilir. je komutu; Karşılaştırma sonucu eşit ise belirtilen adrese zıplanır. Öncesinde ise genelde yukarıda gösterilen cmp ile iki değer karşılaştırılmıştır. cmp eax, ecx je 00415265 ,eax değeri ile ecx değeri birbirine eşit ise 415265 adresine zıplanır, değilse program olduğu yerden devam edecektir. jne komutu; Karşılatırma sonucu eşit değil ise belirtilen adrese zıplanır. cmp eax, ecx jne 00415265 ,eax değeri ecx değerine eşit değil ise 415265 adresine zıplanır. call- ret komutları; call komutunun kullanıldığı yerde program belirtilen adrese gider ve burası procedur diye adlandırılır.Buradaki komut dizisi işlenir ve ret komutunun kullanıldığı yerde program tekrar döner, call komut satırının altındaki adresten devam eder. call 00415265 , program 00415265 adresine gider, bu procedur işlenir ve tekrar döner. add komutu; Toplama komutudur. add eax, 5 ,eax değeri eax+5 olacaktır. add eax, ebx ,eax yerine ebx değeride eklenerek eax’e yazılır. inc komutu; Devamındaki registerin değerini 1 arttırır. inc eax ,eax değeri bu komut sonrası eax+1 olacaktır. dec komutu; Devamındaki registerin değerini 1 azaltır. dec eax ,eax değeri bu komut sonrası eax-1 olacaktır. push-pop komutları; Bazı değerler tekrar lazım olacaklar ise bunları stack’ a atabiliriz, yani bir süre saklayabiliriz. Bunun için push komutunu kullanırız, tekrar çağırmak için ise pop komutunu kullanırız. push eax ,eax yığına atılır, pop eax , eax tekrar çağırılır. Breakpointler bpx getdlgitemtexta : Sizin girdiğiniz değerler kontrol edilecekse kullanılabilir, bpx getwindowtexta : Yukarıdaki breakpointin alternatifi, bpx hmemcpy : Visual basic ile yazılmış programlarda yukarıdakiler işe yaramaz, böyle zamanlarda kullanılır, bpx messageboxa : Programların verdiği bazı hata mesajlarını yada nag ekranlarını bununla yakalayabiliriz, bpx getsystemtime : Zaman kontrolü yapıldığı durumlarda kullanılır, bpx getlocaltime : Zaman kontrolü için diğer alternatif, bpx createfilea : Dosya kontrolü yapıldığında crc sınamalarında kullanılabilir, Softice kontrolu içinde kullanılmaktadır. bpx readfilea : Dosya kontrolü için diğer alternatif. bpx regqueryvalueexa : Register kontrolü için kullanılmaktadır. İlk Programın kırılması İlk Program Kırma Şimdi Yeni Başlayanlar için basit bir crack ı anlatalım. programı adidascrack.*********.com/1.zip den indirin Artık crackme’yi kırmaya başlayabiliriz. Programı açtık, sallama seriali girdik, Ctrl-D yaptık ve SoftIce açıldı. Şimidi breakpoint koyalım (GetDlgItemTextA) ve softice’dan çıkalım(X yazıp enterlayabilirsiniz.).Ve PassMe’de Chack diyelim. Hooop SoftIce geldi. winice.dat dosyasını softice yi kurduğunuz klasöre kopyalamazsanız softice brakpointeri koyarken hata alırsınız. Bir kere F11’e basın ve calldan çıkıp aşağıya gelin: 017F:00401056 FF15701D4000 CALL [USER32!GetDlgItemTextA] 017F:0040105C 3C08 CMP AL,08 <——- 8 karakterlik bir serial girip girmediğinizi kontrol eder. 017F:0040105E 7590 JNZ 00400FF0 017F:00401060 BFC2114000 MOV EDI,004011C2 <– yazıyı EDI’ye taşır 017F:00401065 33C9 XOR ECX,ECX 017F:00401067 33D2 XOR EDX,EDX 017F:00401069 33F6 XOR ESI,ESI 017F:0040106B 8A0F MOV CL,[EDI] <—— ilk karakteri CL’nin içine taşır 017F:0040106D 8A5701 MOV DL,[EDI+01] <— ikinci karakteri ‘nin içine taşırn DL 017F:00401070 80FA00 CMP DL,00 <——— yazının ulaşıp ulaşmadığını kontrol eder 017F:00401073 7409 JZ 0040107E <—— evetse, jump(atla) 017F:00401075 01D1 ADD ECX,EDX 017F:00401077 01CE ADD ESI,ECX 017F:00401079 83C702 ADD EDI,02 017F:0040107C EBED JMP 0040106B 017F:0040107E 01CE ADD ESI,ECX Şimdi 00401056 daki olayı anlamış olmanız lazım. Çünkü burada yazdığımız serialin 8 karakter olup olmadığını kontro edecek. Program ilk 4haneyi son 4 haneye ekliyor. Tabiki bu HEX’de oluyor. Hex’de 1 = 31, 2 = 32, 3=33 gibi. Şimdi kodları F10 ile trace edip şağıya gelince daha iyi anlayacaksınız. EAX=34333231 EBX=0063FC34 ECX=38373635 EDX=00000000 ESI=455B455B EDI=00401300 EBP=0063FBE0 ESP=0063FBE0 EIP=0040109E o d I s Z a P c CS=0167 DS=016F SS=016F ES=016F FS=12E7 GS=0000 ÄÄÄÄÄPASSME!+12F4ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ byteÄÄÄÄÄÄÄÄÄÄÄÄÄÄPROTÄÄÄ(0)ÄÄ 016F:004012F4 00 00 00 00 00 00 00 00-00 00 00 00 31 32 33 34 …………1234 016F:00401304 35 36 37 38 00 00 00 00-00 00 00 00 00 00 00 00 5678………… 016F:00401314 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ……………. 016F:00401324 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ……………. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄPROT32Ä 0167:00401092 BF00134000 MOV EDI,00401300 0167:00401097 33C0 XOR EAX,EAX 0167:00401099 8B07 MOV EAX,[EDI] 0167:0040109B 8B4F04 MOV ECX,[EDI+04] 0167:0040109B 8B4F04 MOV ECX,[EDI+04] 0167:0040109E 01C8 ADD EAX,ECX –>EAX ECX’e Eklenmiş 0167:004010A0 3BC6 CMP EAX,ESI 0167:004010A2 7402 JZ 004010A6 ;Good cracker 0167:004010A4 EB2E JMP 004010D4 ;Bad cracker ECX registeri “5678” (35363738) değerini tutuyor. Satır 0167:0040109E ‘da EAX ECX ‘e eklenmiş. Ve sonra ESI (455B455B) değerinde bunlar karşılaştırılır. Eğer eşitseler: satır 004010A6 ‘a atlar Bu iyi birşey çünkü Crackme’yi kırdın. Ama eğer eşit değilse yeniden dene.. Yazar bu programında değişik bir algoritma kullanmış ve ilk dört karakter ile son dört karakteri yer değiştirmiş, bu nedenle bie den fazla serialimiz oluyor. Şunları deneyin: pass1:-!-!.$.$ pass2:-$-$.!.! pass3:-$-!.!.$ pass4:-#-#.”.” pass5:.”.”-#-# pass6:-#.”.”-#
Published inHACKING

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *