|
|
|
|
|
|
|
Araçlar:
|
|
|
Bu program windowsta o an için hangi dlllerin kullanıldığını gösteren bir program.Programın yazarının yazdığı nütün programlar aynı koruma şemasına sahip.Bir tanesini kırarsanız diğerlerini de kırarsınız.
|
|
Artık SoftICE nasıl kurulur felan gibi basit şeyleri anlatmıyorum.Direkt crack işlemine geçiyorum.Serial ekranına gelin ve softice geçerek bpx hmemcpy ile breakpoint koyun.SoftICE 'a birden geri döneceksiniz.Breakpointimizi bd ile kapatıyoruz.Biz programın koduna ulaşmak istediğimizden birkaç defa F12 tuşuna basıyoruz.
* Reference To: KERNEL32.lstrcpyA, Ord:0302h
|
:0040D5D3 8B1D28F14100 mov ebx, dword ptr [0041F128]
* Possible StringData Ref from Data Obj ->"Gregory Braun"
|
:0040D5D9 68D42E4200 push 00422ED4 ;Gereksiz kod
:0040D5DE 56 push esi ;Kullanıcı ismi Gregory Braun
:0040D5DF FFD3 call ebx
* Possible StringData Ref from Data Obj ->"Software Design"
|
:0040D5E1 68C42E4200 push 00422EC4 ;company Software by Design
:0040D5E6 57 push edi
:0040D5E7 FFD3 call ebx
:0040D5E9 EB07 jmp 0040D5F2
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D5D1(C)
|
:0040D5EB 3D3CCE5F0D cmp eax, 0D5FCE3C ;gregory için seriali görmek için
:0040D5F0 750C jne 0040D5FE ;D D5FCE3c yazın
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D5E9(U)
|
:0040D5F2 57 push edi
:0040D5F3 56 push esi
:0040D5F4 E8A77B0000 call 004151A0 ;Keygen algoritması
:0040D5F9 83C408 add esp, 00000008
:0040D5FC 8BD8 mov ebx, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D5F0(C)
|
:0040D5FE 57 push edi
:0040D5FF 56 push esi
:0040D600 E89B7B0000 call 004151A0 ;Keygen algoritması
:0040D605 83C408 add esp, 00000008
:0040D608 3BD8 cmp ebx, eax ;Serial kontrolü
:0040D60A 5F pop edi
:0040D60B 741D je 0040D62A ;Eşitse iyi çocuk :)
:0040D60D 68CFEA0000 push 0000EACF
Buraya kadar iyi.Eğer seriali öğrenmek istiyorsanız 0040D608 satırında eax ve ebx in değerlerine bakın.Serialin nasıl hesaplandığını öğrenmek istiyorsanız devam ediyoruz.Ben 0040D5F4 satırına geldiğimde F8 ile call ın içine girdim.
:004151A0 8B442404 mov eax, dword ptr [esp+04] ;İsimi eax a yolla :004151A4 56 push esi :004151A5 8B3594D24200 mov esi, dword ptr [0042D294]; esi= DB95DB95 :004151AB 50 push eax :004151AC 81CE78030000 or esi, 00000378 ;esi yi 378 ile or la :004151B2 E849050000 call 00415700 ;Döngü :004151B7 8B4C2410 mov ecx, dword ptr [esp+10] ;Company i ecx e yolla :004151BB 03F0 add esi, eax :004151BD 51 push ecx :004151BE E83D050000 call 00415700 ;Döngü :004151C3 83C408 add esp, 00000008 :004151C6 03C6 add eax, esi :004151C8 5E pop esi :004151C9 C3 ret
Bir adım daha kaldı şu call da ne var ona da bakalım.F8 ile içeriye giriyoruz.
:00415700 51 push ecx
:00415701 53 push ebx
:00415702 8B5C240C mov ebx, dword ptr [esp+0C]
:00415706 56 push esi
:00415707 33F6 xor esi, esi
:00415709 53 push ebx
:0041570A 8974240C mov dword ptr [esp+0C], esi
* Reference To: KERNEL32.lstrlenA, Ord:0308h
|
:0041570E FF15B4F04100 Call dword ptr [0041F0B4]
:00415714 85DB test ebx, ebx
:00415716 744F je 00415767
:00415718 85C0 test eax, eax
:0041571A 744B je 00415767
:0041571C 33D2 xor edx, edx
:0041571E 85C0 test eax, eax
:00415720 7E45 jle 00415767
:00415722 55 push ebp
:00415723 57 push edi
* Possible StringData Ref from Data Obj ->"|b!pz*ls;rn|lf$vi^Axpe)rx5aic&9/2m5lsi4@0dmZw9"
->"4cmqpfhw" ;tablo1
|
:00415724 BEA44D4200 mov esi, 00424DA4; yukardaki yazıyı esiye gönder
:00415729 BF01000000 mov edi, 00000001
:0041572E 2BF3 sub esi, ebx
:00415730 8BCB mov ecx, ebx
:00415732 2BFB sub edi, ebx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041575D(C)
|
:00415734 0FBE1C0E movsx ebx, byte ptr [esi+ecx];ilk stringden karakter al
:00415738 0FBEAC106C4D4200 movsx ebp, byte ptr [eax+edx+00424D6C];başka bir string
;d 00424D6C yazın #serB&nz|mfM1/5(!sd$Mq.{s]+sFjtKpzSdtzoXqmb^Al@dv:s?x/;tablo2 göreceksiniz.
:00415740 0FAFDD imul ebx, ebp ; çarp
:00415743 8D2C0F lea ebp, dword ptr [edi+ecx]; bir karakter daha al
:00415746 0FAFDD imul ebx, ebp ;çarp
:00415749 0FBE29 movsx ebp, byte ptr [ecx]
:0041574C 0FAFDD imul ebx, ebp ;çarp
:0041574F 8B6C2410 mov ebp, dword ptr [esp+10]
:00415753 03EB add ebp, ebx
:00415755 42 inc edx
:00415756 41 inc ecx
:00415757 3BD0 cmp edx, eax ;hepsini çarptık mı ?
:00415759 896C2410 mov dword ptr [esp+10], ebp
:0041575D 7CD5 jl 00415734 ;bu işlemi bütün karakterler için yap
:0041575F 8BC5 mov eax, ebp
:00415761 5F pop edi
:00415762 5D pop ebp
:00415763 5E pop esi
:00415764 5B pop ebx
:00415765 59 pop ecx
:00415766 C3 ret
Evet.Şimdi ben elimden geldiği kadarı ile size serial nasıl hesaplanıyor onu anlatmaya çalışıyim.İki tane string var bunları tablo1 ve tablo2 diye adlandıralım.İsim ve şirket kısmı iki tane register a atanıyor.Sonra isimden bir karakter alınıyor ve isimin uzunluğun göre tablo2 den bir karakter alınıyor.Bu alına karakter ismin ilk harfi ile çarpılıyor.Tablo1 den ilk karakter alınıyor ve bulunan bu değerle çarpılıyor.Elde edilen bu çarpım tablo2 deki kakakterin pozisyonu ile çarpılıyo.İlk başta bu 1 olduğundan önemli değil fakat ismin 2. 3. .. harflerinde bu çarpım çok etkili.Bütün bu çarpımlardan elde edilen sonuç bir yere yazılıyor.İsimi için yaptığımız bu işlemi şirket kısmı içinde yapıyoruz.Sonra bu iki değeri topluyoruz.Elde ettiğimiz bu sonucu desimale çevirdiğimiz zamn serial karşımızda.Daha nalşılabilir olması için örrnekle açıklıyayım.Mister Stop için bir bakalım.İsim space ile beraber 11 harf.O zaman biz M harfini tablo2 deki 11. karakter 'f' ile çarpıyoruz.Bulduğumuz bu değeri tablo1 deki ilk karakter ile çarpıyoruz.Son olarak da bu değeri tablo1 deki karakterin yeri yani 1 ile çarpıyoruz.i harfi için tablo2 den 12. karakteri alıyoruz.....Çok karmaşık gibi gözükebilir ama üstünde biraz düşünürseniz olayı kavrıyacağınızdan eminim.Ben kavradım ve keygeni döşedim.Bu keygeni %100 assembly de windows apileri ile yazdım.Sadece copy paste yaparak asm de keygen kodluyabilirsiniz.Bunu da başka bir yazıya bırakıyorum.Keygeni download etmek için buraya tıklayın.
|
|
Bu yazıda yazım yanlışları hatta bilgi hatası olabilir.Eğer bir yanlış bulursanız bana email atın düzeltmeye çalışırım.Bir programı eğer gerçekten kullanıyorsanız, programı satın almayı düşünün.Micro$oft programlarını - bırakın satın almayı - kullanmayı bile düşünmeyin.