|
Üye
Mesaj Sayısı: 418
Açtığı Konu: 157
Level: 19 [  ]
Paylaşım: 45 / 450
Güç: 139 / 2266
Tecrübe: 0%
Üyelik tarihi: Apr 2007
Kullanıcı No: 779
Tecrübe Puanı: 33
|
Cevap: Adım adım cracking -
01-15-2008
ADIM ADIM CRACKİNG-3
----------------
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.sitemynet.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:-#."."-#
Lütfen bu yazıları başka yerde kullanmayın
Written by adidas
Stolen by Nefret®
__________________
|