Natural

natural

Breaking News

Keygenme 5



Keygen nasıl yazılır serimizin 5nci yazısında yine bir isme göre serial hesaplama algosuyla karşı karşıyayız. Pes etmek yeter demek yok bu işi öğreneceğiz. Buyrun kodları inceleyelim.
Programı Ollydebugger ile açalım CTRL+N yapıp Names penceresini görelim. GetDlgItemText apisine sağ tıklayarak "Set breakpoint on every reference" seçelim. Programı çalıştırıp isim serial girin. "Check Serial" tuşuna basınca crackme break pointte duracak. Bizde incelemeye başlıyacağız.
4011D3|.PUSH 19                                 ; /Count = 19 (25.)
4011D5|.PUSH crackme_.00403096                  ; |Buffer = crackme_.00403096
4011DA|.PUSH 66                                 ; |ControlID = 66 (102.)
4011DC|.PUSH [ARG.1]                            ; |hWnd = 000B0652 ('Crackme - not cracked yet',class='FHCF_Crackme')
4011DF|.CALL <JMP.&USER32.GetDlgItemTextA>      ; \GetDlgItemTextA---->serialimiz alınıyor
4011E4|.PUSH 1E                                 ; /Count = 1E (30.)
4011E6|.PUSH crackme_.00403078                  ; |Buffer = crackme_.00403078
4011EB|.PUSH 65                                 ; |ControlID = 65 (101.)
4011ED|.PUSH [ARG.1]                            ; |hWnd = 000B0652 ('Crackme - not cracked yet',class='FHCF_Crackme')
4011F0|.CALL <JMP.&USER32.GetDlgItemTextA>      ; \GetDlgItemTextA-->ismimiz bu api ile alınıyor
4011F5|.CMP EAX,5    ;ismimizin uzunluğu 5 ile karşılaştırılıyor
4011F8|.JB SHORT crackme_.00401245  ;5'ten küçükse dallanıyor yoksa devam
4011FA|.MOV ECX,EAX    ;ismin uzunlupu ecx'e yazılıyor
4011FC|.MOV DWORD PTR DS:[4030C0],ECX  ;ecx değeri 4030C0 adresine yazılıyor
401202|.PUSH EDI
401203|.PUSH crackme_.00403051
401208|.PUSH crackme_.00403061
40120D|.CALL crackme_.00401262   ;serial hesaplama döngüsüne dallanıyor F7 ile içine dalalım

401262 $  PUSH EBP    ;F7 basıp daldığımız yer burası
401263 .  MOV EBP,ESP
401265 .  ADD ESP,-4
401268 .  XOR EBX,EBX    ;yazmaçlar sıfırlanıyor    
40126A .  XOR EDX,EDX
40126C .  XOR EAX,EAX
40126E .  XOR ECX,ECX
401270 .  XOR ESI,ESI                           ;  crackme_.00401180
401272 .  XOR EDI,EDI    ;buraya kadar
401274 >  MOVSX EAX,WORD PTR DS:[ECX+403078] ;ismimizin+ecx yazmacının ilk iki baytı eax'e yazılıyor
40127B .  IMUL ECX    ;eax=eax * ecx
40127D .  ADD EBX,EAX    ;ebx=ebx+eax
40127F .  ADD ECX,2    ;ecx=ecx+2
401282 . >CMP BYTE PTR DS:[ECX+403078],0 ;ecx+isim 0 ile karşılaştırılıyor
      ;ayrıca ecx 2şer 2şer arttığı için
      ;döngü daha çabuk bitiyor
401289 .^ JNZ SHORT crackme_.00401274  ;0 değilse dallan yoksa devam
40128B .  ROL EBX,99                         ;ebx=ebx ROL 99h
40128E .  XCHG EAX,EBX    ;yer değiştir
40128F .  SHR EAX,CL    ;eax=eax SHR CL
401291 .  MOV ESI,EAX    ;esi=eax=serial :)
401293 .  LEAVE
401294 .  RETN 8



401212|.PUSH EBX
401213|.PUSH crackme_.00403096                  ;  ASCII "11223344"->benim girdiğim serial
401218|.CALL crackme_.00401324   ;bu calldaki işlemden sonra girdiğimiz serial eax'e yazılıyor
40121D|.POP EBX                                 ;  crackme_.00403061
40121E|.POP EDI                                 ;  crackme_.00403061
40121F|.CMP ESI,EAX    ;iyi kötü çocuk burada karşılaştırılıyor
401221|.JNZ SHORT crackme_.00401245  ;eğer yanlış serial girildiyse dallan yoksa devam
401223|.PUSH 40                                 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
401225|.PUSH crackme_.0040304D                  ; |Title = "wee"
40122A|.PUSH crackme_.00403019                  ; |Text = "You did it! Now make a keygen =)"
40122F|.PUSH 0                                  ; |hOwner = NULL
401231|.CALL <JMP.&USER32.MessageBoxA>          ; \MessageBoxA
401236|.PUSH crackme_.0040303A                  ; /Text = "Crackme - cracked!"
40123B|.PUSH [ARG.1]                            ; |hWnd = 000B0652 ('Crackme - not cracked yet',class='FHCF_Crackme')
40123E|.CALL <JMP.&USER32.SetWindowTextA>       ; \SetWindowTextA
Seriali crackme zaten kendisi verdiği ve buraya kadar bununla ilgili buna benzer 4 crackmeyi de çözdüğünüz için keygenin assembly kodlarını buraya yazmıyorum. Ancak kaynak kodları buradan indirebilirsiniz.
Türk Ters Mühendisliğine gönül vermiş herkese

sonsuz TEŞEKKÜRLER ........
Öldürmeyen Her Darbe Güce Güç Katar ::: BlueDeviL // SCT
Bu programı kullanarak para kazanıyorsanız lütfen satın alın. Bu yazının yazılma amacı program yazanlara programlarını daha iyi korumaları konusunda yol göstermektir. Lisanssız kullanımda Dokümanı hazırlayan sorumlu değildir.
Diyeceğim şudurki: Emek verilipde yapılmış bir şeyi çalma, onu satın al.

Blue DeviL
E-Mail: bluedevil@sctzine.com
ICQ: 82503282

Hiç yorum yok