Ziggy's KeyGenMe #1 |
|
|
|
Program Tipi: KeyGenMe |
|
OllyDbg version 1.10 |
|
|
|
|
Forum kuralları gereği KeyGenMe ler üzerine yazıyorum. Burada ollydbg'in bazı özelliklerine de değineceğim.(breakpoint,asmcopy,Patch vs.).Önce zugzwang'ın derlediği
Ollydbg v1.10 cekin.(Ollydbg'un
bütün pluginleri hazır şekilde)
A==>Seriali bulmak ve keygen yazmak:
B==>Proğramın kendisini keygene çevirmek.
Gerçi proğram yazarı Patch yapmayı yasaklıyor.Biz burada bazı yöntemleri deneyeceğiz.Bu arada ollydbg'nin bazı
özelliklerinide kullanacağız.Şimdi proğrama dönelim.
Hatırlayalım.
401121 CALL keygenMe.004012C7 ==============>F7 ile calle bakıyoruz (keygen Başlıyor)
401126 OR EAX,EAX /
401128 JNZ SHORT keygenMe.0040117D / =>hata mesajına yönlendiriyordu.
401323 PUSH keygenMe.00403256 ===>serialin basına (SnD-)ekle Name==>kresuz ,Serial==>SnD-2885118
PUSH keygenMe.00403256 doğru seriali saklıyordu
biz şimdi messageboxa hata mesajı yerine push 00403256 yı göndersek ne olur.bakalım.
401128 den itibaren F8 ile takip edin .004011BE de messageboxa gönderilen PUSH keygenMe.00403086 (invalid registration
details) yazısı var.Olly bunları hemen yanında gösteriyor.
Şimdi tekrar Keygenme1 dosyasına dönün ve tekrar register tuşuna basın.Breakpoint çalıştı.Ollydbg ye döndük.F2 tuşu
ile breakpointi kaldırın.Bir sefer ALT+F9 basınki apilerden kurtulup,olly de calısan proğram kodlarına dönün
4010DD PUSH 50 =========>Buradayız F8 ile ilerliyoruz.
4010DF PUSH keygenMe.00403396
4010E4 PUSH 3EA
4010E9 PUSH DWORD PTR DS:[4036E4]
4010EF CALL
401300 DEC EAX ====>eax' 1 eksilt
401301 ADD ESI,EAX ====>seriali esi'ye ekle.
401303 INC ECX ====>diger karakteri al
401304 DEC EDX ====>ismi boyutunu 1 eksilt
401305 JNZ SHORT keygenMe.004012E9 ====>ismin boyutu 0 değilse başa dön
401307 LEA EDX,DWORD PTR DS:[4034D6] ====>Edx'e seriali al
40130D MOV EAX,ESI ====>Eax' seriali al
40130F PUSH EAX ====>serial eax'ta
401310 PUSH keygenMe.0040361F
401315 PUSH EDX
401316 CALL
F8 ile 004011BE inin üzerine kadar gelin.Mouse üzerinde iken sağ tuş Assamble -space yapıp önümüze gelen ekrandaki
PUSH 403086 degerini PUSH 00403256 yapın.


Assemble tuşuna basın ve kapatın.F9 tusu ile proğramı çalıştırın.

Gördüğünüz gibi proğram hata mesajı yerine gercek seriali gösterdi.Peki bu değişikliği Hiew veya Ultraedit-32 kullanmadan
kalıcı hale getirebilirmiyiz ?.Olly bu konuda da bize çok yardım ediyor tam tembel işi.Tekrar ollydby dönün.
(004011BE nin push degerleri değişikken ve proğram kodları önümüzde iken).Yine mouse ile kodlar üzerinde sağ tuş yapın.
Şu sırayı takip edin.Copy to executable ==>all modifications==>copy all==>önümüze gelen ekranda yine sağtuş==>save file ve
farklı bir isimle kaydet.Hepsi bukadar basit ve kolay.Ultraedit32 ye gerek yok.Yazım uzun oldu bir şeyden bahsetmeden
konuyu kapatamayacağım.Ollydbg'nin kolaylıkları ve sürekli sorulan sorularla ilgili.Softice de eax degerleri d eax veya
? eax şeklinde öğreniliyordu.olly de bu iş daha kolay.Bir örnek:Proğramı yeniden ollydbg de f3 ile yükleyin F9 a basın
keygenme çalıssın.sallama name ve serial girin.Register tusuna basmadan ollydbg'ye dönün.
ctrl+G tusuna aynı anda basın önünüze gelen ekrana 0040130F yazın(niye bunu yazdık yukarıdan hatırlayın
[40130F PUSH EAX ====>serial eax'ta])ok.tusuna basın.simdi 40130F üzerindeyiz. F2 ile breakpoint koyun ve programa dönüp
register tusuna basın.Şimdi ollydby'e döndük.

Yukarıda görüldüğü gibi olly de sağ üstte ki bölümde bulunan eax çift tıklanırsa burada eax ın hexadecimal ve decimal
degerleri(Signed bölümünde)görülebilir.
Bu yazıda yazım yanlışları , bilgi hatası olabilir.Eğer bir yanlış bulursanız
bana mail atın düzeltmeye çalışırım.