|
|
|
|
|
|
|
Kullanılan
Araçlar:
|
|
|
Uzun bir aradan sonra tekrar beraberiz.Şu sıralar okula çok zaman ayırdığımdan bu işlerle pek uğraşamıyorum.Fakat insan birşeyler yapmadan rahat da duramıyor.Programın koruması çok basit.W32Dasm yardımıyla dahi seriali bulabilirsiniz.Yazının sonuna keygen ekledim isteyen download edebilir.
|
|
Bu program windowstaki gereksiz dosyaları siliyor.Basit ve küçük bir program.Program muhmetemelen visual c ile yazılmış.Programı açıyoruz.İlk başta bize kayıt olmamız gerektiğini söyleyen bir ekran çıkıyor.Register butonuna tıklıyoruz.İsim olarak Mister Stop serial olarak da 999888777 yazıyoruz.SoftICE a geçip bpx GetDlgItemTextA yazıyoruz.SoftICE dan çıkıp ok tuşuna tıklıyoruz.SoftICE duracaktır.Karşımızda şöyle bir kod olacak.
:00405B6E E85A030000 call 00405ECD ;Seriali kaşılaştır :00405B73 83C408 add esp, 00000008 :00405B76 85C0 test eax, eax :00405B78 7440 je 00405BBA ;Yanlış ise hata mesajına zıpla :00405B7A 8D9500FEFFFF lea edx, dword ptr [ebp+FFFFFE00] :00405B80 52 push edx :00405B81 8D8500FFFFFF lea eax, dword ptr [ebp+FFFFFF00] :00405B87 50 push eax
00405B6E satırındaki Call a F8 ile giriyoruz.Karşımıza şöyle bir şey gelecek.
:00405ECD 55 push ebp :00405ECE 8BEC mov ebp, esp :00405ED0 81EC00010000 sub esp, 00000100 :00405ED6 8D8500FFFFFF lea eax, dword ptr [ebp+FFFFFF00] :00405EDC 50 push eax :00405EDD 8B4D08 mov ecx, dword ptr [ebp+08] :00405EE0 51 push ecx :00405EE1 E88C000000 call 00405F72 ;Seriali hesapla :00405EE6 83C408 add esp, 00000008 :00405EE9 8D9500FFFFFF lea edx, dword ptr [ebp+FFFFFF00] :00405EEF 52 push edx :00405EF0 8B450C mov eax, dword ptr [ebp+0C] :00405EF3 50 push eax :00405EF4 E8B7020000 call 004061B0 ;serialleri karşılaştır :00405EF9 83C408 add esp, 00000008 :00405EFC 85C0 test eax, eax :00405EFE 7507 jne 00405F07 :00405F00 B801000000 mov eax, 00000001 :00405F05 EB02 jmp 00405F09
00405EE1 deki callda gerçek seriali hesaplıyor.Daha sonra 00405EF4 satırındaki call ile bizim serialle gerçek seriali karşılaştırıyor.Eğer serialler birbirini tumuyor ise 00405F07 satırına zıplıyor ve burda eax a 0 atanıyor.Eğer serial doğru ise eax a 1 atıyor.00405EE1 satırında iken SoftICE'da F8 tuşuna basıyoruz.
:00405FBF 8B95FCFEFFFF mov edx, dword ptr [ebp+FFFFFEFC] :00405FC5 83C201 add edx, 00000001 :00405FC8 8995FCFEFFFF mov dword ptr [ebp+FFFFFEFC], edx * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00405FBD(U) | :00405FCE 8B85FCFEFFFF mov eax, dword ptr [ebp+FFFFFEFC] :00405FD4 3B85F4FEFFFF cmp eax, dword ptr [ebp+FFFFFEF4] :00405FDA 7322 jnb 00405FFE ;bütün karakterler toplandımı ? :00405FDC 8B4D08 mov ecx, dword ptr [ebp+08] :00405FDF 038DFCFEFFFF add ecx, dword ptr [ebp+FFFFFEFC] :00405FE5 0FBE11 movsx edx, byte ptr [ecx] ;İsimden tek karakter al :00405FE8 031590C04000 add edx, dword ptr [0040C090] ;38 ekle :00405FEE 8B85F8FEFFFF mov eax, dword ptr [ebp+FFFFFEF8] :00405FF4 03C2 add eax, edx ;toplamı eax a ekle :00405FF6 8985F8FEFFFF mov dword ptr [ebp+FFFFFEF8], eax :00405FFC EBC1 jmp 00405FBF * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00405FDA(C) | :00405FFE 8B8DF8FEFFFF mov ecx, dword ptr [ebp+FFFFFEF8] :00406004 51 push ecx
:00405FE8 031590C04000 add edx, dword ptr [0040C090] satırında 38 eklendiğini ben nasıl anladım.O satırdaki kodun manası şu.40C090 da yazan word u (word iki bytelik değer demek) al edx e ekle.Ben d 40C090 yazdığımda softice da 38 gördüm o yüzden o satırda 38 eklendiğini anladım.Bu kısımda serialin ilk kısmı hesaplanıyor.Biraz ilerledikten sonra şöyle bir kod karşımıza çıkacak
:0040603C 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FFFFFEFC] :00406042 3B8DF4FEFFFF cmp ecx, dword ptr [ebp+FFFFFEF4] :00406048 7323 jnb 0040606D ; bütün karakterler çarpıldımı :0040604A 8B5508 mov edx, dword ptr [ebp+08] :0040604D 0395FCFEFFFF add edx, dword ptr [ebp+FFFFFEFC] :00406053 0FBE02 movsx eax, byte ptr [edx] ;isimden tek karakter al :00406056 0FAF0594C04000 imul eax, dword ptr [0040C094] ;52 ile çarp :0040605D 8B8DF8FEFFFF mov ecx, dword ptr [ebp+FFFFFEF8] :00406063 03C8 add ecx, eax ;sonucu eax a ekle :00406065 898DF8FEFFFF mov dword ptr [ebp+FFFFFEF8], ecx :0040606B EBC0 jmp 0040602D
Devam ediyoruz.Bir kaç defa daha F10 dan sonra şuraya geleceğiz.
:004060BF 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FFFFFEFC] :004060C5 3B8DF4FEFFFF cmp ecx, dword ptr [ebp+FFFFFEF4] :004060CB 7322 jnb 004060EF ;bütün karakterler toplandımı :004060CD 8B5508 mov edx, dword ptr [ebp+08] :004060D0 0395FCFEFFFF add edx, dword ptr [ebp+FFFFFEFC] :004060D6 0FBE02 movsx eax, byte ptr [edx] ;isimden tek karakter al :004060D9 030598C04000 add eax, dword ptr [0040C098] ;12 ekle :004060DF 8B8DF8FEFFFF mov ecx, dword ptr [ebp+FFFFFEF8] :004060E5 03C8 add ecx, eax ;toplamı ecx e yaz :004060E7 898DF8FEFFFF mov dword ptr [ebp+FFFFFEF8], ecx :004060ED EBC1 jmp 004060B0
Buraya kadar serialin ilk üç kısmı hesaplandı.Bir kaç F10 dan sonra serialin son kısmına geliyoruz.
:00406141 8B8DFCFEFFFF mov ecx, dword ptr [ebp+FFFFFEFC] :00406147 3B8DF4FEFFFF cmp ecx, dword ptr [ebp+FFFFFEF4] :0040614D 7323 jnb 00406172 :0040614F 8B5508 mov edx, dword ptr [ebp+08] :00406152 0395FCFEFFFF add edx, dword ptr [ebp+FFFFFEFC] :00406158 0FBE02 movsx eax, byte ptr [edx] ;isimden tek karakter al :0040615B 0FAF059CC04000 imul eax, dword ptr [0040C09C] ;14 ile çarp :00406162 8B8DF8FEFFFF mov ecx, dword ptr [ebp+FFFFFEF8] :00406168 03C8 add ecx, eax ;toplamı ecx e ekle :0040616A 898DF8FEFFFF mov dword ptr [ebp+FFFFFEF8], ecx :00406170 EBC0 jmp 00406132
Bütün bu toplamalardan sonra serialimizi artık softice da görebiliriz.Son lstrcatA
apisinden sonra d ecx yazın.Softice 'ın data penceresinde 1500-56264-1214-15148
'i göreceksiniz.Bu program için birde keygen kodladım.Keygeni yine assembly
dilinde 32 bit apileri kullanarak kodladım.335 satır kod.Heheh.Çok korkutucu
gibi gözüküyor fakat öyle değil.Bir kere ben her keygen için 335 satır yazmıyorum.Benim
hazır bir keygen taslağım var sadece keygenin hesap kısmını yazıyorum oda genelde
15-20 satır tutuyor.Keygeni assembly de yazmak oldukça kolay çünkü birkere ikiside
aynı dil birbirine çevirmeye uğraşmıyorsun.W32dasm da keygenin hesap kısmını
alıp bir text dosyasına kopyalıyorum.Gereksiz kodları çıkartıyorum.Eğer bazı
değerleri memoryden okuyorsa onları koda ekliyorum(0040615B satırında olduğu
gibi).Kodu biraz düzenliyorum.Tada! keygen hazır.Platform sorunu yok heryerde
sorunsuz çalışıyor.Keygenin boyutu oldukça düşük.Resim koymazsam 3-5 k kadar.Delphide
aynı keygen 300 k.Bu CleanPC zaten 160 k ne kadar gülüç bir şey.Keygen programdan
daha büyük.Gördüğünüz gibi assembly de bir şey kodlamak ilk başta çok zor görüksede
çok faydaları var.Eğer hiç bir programlama dili bilmiyorsanız ve bir dil öğrenicem
diyorsanız.Size önerim assembly ve c öğrenmeniz.Herneyse belki birileri ilgi
duyar umuduyla keygeni kaynak kodu ile beraber sayfaya koymaya karar verdim.Kendiniz
tekrardan compile etmek isterseniz.Tasm 5.0 paketine ve w32.inc dosyasına ihtiyacınız
var.Eğer bu dosyaları bulamazsanız şöyle yapın.Protools'tan patcher kısmından
Cogen II'yi download edin.Benim keygenin kaynak kodunu buraya kopyalayın.Eğer
overwrite felan derse yes diyerek üstüne yazdırın.Make.exe ye tıkladığınızda
yeniden compile ediliecektir.restest.rc ve restest.asm dosyalarını istediğiniz
gibi değiştirebilirsiniz.Keygen
ve kaynak kodu.Kaynak kodunu daha iyi görebilmeniz için ultra edit ile bakmanızı
öneririm.Eğer beni gaza getirecek mail atarsanız bir yazıyı da sadece w32dasm
dan kopyalarak nasıl assemblyde keygen kodlamaya ayırabiliriz.
|
|
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.