Bfd e-Beyanname v2006 1X.XX |
|
kresuz
|
Program Url: www.bilson.biz Program Tipi:Beyanname programı |
Araçlar: OllyDbg v1.10,Dup2 |
|
Basit (X) Orta () Zor ( )
Pro ( ) |
Programın bazı versiyonların da pack var bazıların da yok.Serial le korunuyor.Serial cryptolu (DES).Yani serial işi zor.Bizde programa Demo degil kayıtlısın diyecegiz.
Bu işi generic patch la yapacagız.Öncelikle şunu belirteyim.Crack işini Lazali yaptı.(Teşekkürler)Kodlar ona ait.Ben sadece generic patch a aktardım.
Neden Generic patch:
Programcılar genellikle serial ve kayıt kontrol bölgelerini degiştirmiyorlar.(Sanırım bundan sonra onlarıda degiştirirler)
Programların sürekli güncellemelerine güveniyorlar.Cünkü programın sonuna da olsa eklenen 1 byte dahi daha önce yapılan
patch ları etkisiz hale getiriyor.Normal patchmakerler boyut kontrolu yaptıgı icin calışmıyorlar.Bizde patch yöntemi
degiştirecegiz.Dup2 de kod dizilişlerini aratıp yerine patch yaptıgımız kodları yazdıracagız.Bu yöntemde boyut kontrolü
yapılmıyor.Programın yeni versiyonun boyutu ne olursa olsun,aynı kod dizilişi varsa patch calısıyor.Ayrıca Dup2 packlı
dosyalarıda inceleyip patch yapabiliyor(Bfd nin v2006.10.27 versiyonu UPX 0.89.6 - 1.02 / 1.05 - 1.24 packlı idi onuda
sorunsuz patch yaptı)
Bu kadar acıklamadan sonra işe başlayalım.
Programı olldbg de yükleyip çalıştırın.Kayıt bölümünde sallama bir serial yazın.Onayla tuşuna basmadan önce
Ollydbg ye gecin.ctrl+G yapın önünüze gelen ekrana 0085502A yazıp enterleyin.0085502A satırına F2 ile breakpoint koyun.
Programa gecip onayla tusuna basın. Simdi ollydbg yiz.
0085502A . E8 5DF5C8FF CALL 004E458C ==>Burada durdu.
0085502F . 84C0 TEST AL, AL ==>Call dönüsü AL=0 ise Demo
00855031 74 36 JE SHORT 00855069 ==>AL=0 ise hata mesajına git.
00855033 . 6A 00 PUSH 0
Şimdi 0085502A . E8 5DF5C8FF CALL 004E458C satırında F7 yapın .
004E458C 83C4 F8 ADD ESP, -8
004E458F 8B0A MOV ECX, DWORD PTR DS:[EDX]
004E4591 890C24 MOV DWORD PTR SS:[ESP], ECX
004E4594 8B4A 04 MOV ECX, DWORD PTR DS:[EDX+4]
004E4597 894C24 04 MOV DWORD PTR SS:[ESP+4], ECX
004E459B 8BD4 MOV EDX, ESP
004E459D 33C9 XOR ECX, ECX
004E459F E8 78FEFFFF CALL 004E441C
004E45A4 66:813C24 F6D9 CMP WORD PTR SS:[ESP], 0D9F6
004E45AA 0F94C0 SETE AL
004E45AD 59 POP ECX ; BBf.0085502F
004E45AE 5A POP EDX ; BBf.0085502F
004E45AF C3 RET ==>Kayıtlı olması için geri dönerken AL=1 olmalı
PATCH:
004E458C 33C0 XOR EAX, EAX ; Eax ı önce sıfırla
004E458E 90 NOP
004E458F B8 01000000 MOV EAX, 1 ; Eax'a 1 al
004E4594 C3 RET ;AL=1 olarak geri dön.
004E4595 90 NOP
004E4596 90 NOP
004E4597 90 NOP
004E4598 90 NOP
004E4599 90 NOP
004E459A 90 NOP
004E459B 90 NOP
004E459C 90 NOP
004E459D 90 NOP
004E459E 90 NOP
004E459F 90 NOP
004E45A0 90 NOP
004E45A1 90 NOP
004E45A2 90 NOP
004E45A3 90 NOP
004E45A4 90 NOP
004E45A5 90 NOP
004E45A6 90 NOP
004E45A7 90 NOP
004E45A8 90 NOP
004E45A9 90 NOP
004E45AA 90 NOP
004E45AB 90 NOP
004E45AC 90 NOP
004E45AD 90 NOP
004E45AE 90 NOP
004E45AF 90 NOP
Dup2 icin gerekli kodlar belli oldu.
Örnegin:
004E458C 83 C4 F8 6 byte yerine
004E458C 33 C0
004E458E 90 yazmamız.gerekiyor.
Peki 004E458C satırından 004E45AF satırına kadar bütün kodları tek tek mi yazacagız.Bu pratik degil,ayrıca hata da yapabiliriz.
Ollydbg bu konuda da bize kolaylık gösteriyor.
Önce orijinal kod dizilimini cıkaralım.
ollydbg de
004E458C satırında 004E45AF satırına kadar isaretleyin.Sonra kodlar üzerinde iken sağ tus yapın.
Binary copy ye tıklayın.Notepad ı acın sag tus yapıp yapıstıra tıklayın ilk kod dizilimi karsımızda.
83 C4 F8 8B 0A 89 0C 24 8B 4A 04 89 4C 24 04 8B D4 33 C9 E8 78 FE FF FF 66 81 3C 24 F6 D9 0F 94
C0 59 5A C3
Patchlı halinde iken yukarıdaki işlemlerin aynısını yapın.
33 C0 90 B8 01 00 00 00 C3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90
Evet Dup2 için gerekli olan kodları kolayca cıkardık.Şimdi ollydbg yi kapatın.Dup2 yi acın.
Önce New project e tıklayın.Patch infoya gerekli bilgileri yazın.Saklayıp çıkın.Sonra Add tusuna basın orada
Search & Replace Patch a Çift tıklayın.Sonra ana panoda ki Search & Replace Patch a tıklayın.
Önünüze gelen ekranda target File de BBf.exe yi gösterin.
Search Pattern ne orijinal kod olan
83 C4 F8 8B 0A 89 0C 24 8B 4A 04 89 4C 24 04 8B D4 33 C9 E8 78 FE FF FF 66 81 3C 24 F6 D9 0F 94
C0 59 5A C3 dizilişini copy+paste yapın.
Replace Pattern ne de patch lı dizilimi
33 C0 90 B8 01 00 00 00 C3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 copy+paste yapın.ve Add tusuna basın.
Ayrıca bu programın packlı versiyonları da oldugu icin Target is compressed PE File şıkkını işaretleyin.
Save tusuna basmadan önce bu kodlar baska bir yerde varmı test etmeliyiz.Çünkü biz gereken yeri patch yaptık.
Baska bir yerdede bu diziliş varsa programda sorun cıkar.Yaptıgımız patch o dizilişi gördügü bütün yerleri degiştirir.
Yukarıdaki Check Search pattern Occurrence tusuna basın.File bölümünde BBf.exe yi gösterin.Check Tusuna basın.
Evet sadece bir yerde varmış.Patch ımız sorunsuz calısır.Exit tusuna basın .Sonra save tusuna basıp cıkın.
Ana panoda Create Patch a basarak patch ı olusturun.Hepsi bu kadar.
Bu patch programcı eger o yukarıdaki kod dizilişlerini değiştirmez ise bütün versiyonlarda çalışır.
Bu tutoriali yazmaktaki amacım programcılara ,programlarını daha iyi korumaları için yol göstermektir..
Son olarak şunu söyleyeyim:Bir programı kullanarak para kazanıyorsanız,o programı mutlaka satın alın.Emeğe değer verin...
Lisansız kullanımdan tutoriali hazırlayanlar sorumlu değildir.
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.
E-Mail: kresuz
http://kresuz.zor.org
http://kresuz.da.ru