|
Prokon |
|
amois |
|
Program Tipi: Yapi analizi ve dizayni |
|
SoftICE, Icedump, IDA, caspr1011.zip |
|
|
|
|
Insaat muhendisleri icin hazirlanmis, yapi analiz ve dizayn programi.
|
|
Calistirdiginizda prolock directory sini olusturuyor. Buraya sifrelenmis 2 dosya aciyor (code.bin ve code.log). gecen zaman suresini code.bin dosyasindan okuyarak anliyor. Zamani bir kez ileri alip programi calistirdiginizda surenin doldugunu bildiriyor. Artik bundan sonra yapacak birseyiniz yok. Cunku sifrelenmis dosya surenin doldugu seklinde yeniden olusturuluyor. Zamani geri de alsaniz program aktif olarak calismiyor. En azindan bende boyle oldu. Prokon32.exe dosyasi aspack 2.1 ile paketlenmis ve anti-debugging tuzaklari ile dolu. Yani manual olarak real entry point bulmak acayip zor. Sagolsun diger arkadaslar aspack 2.1 icin unpack yapabilen kucuk programlar yazmislar. Unpack islemi icin bunlari kullanacagiz. Sayilari 4 veya 5 olan bu programlarin sadece bir tanesi tam olarak unpack yapabildi. Alexey Solodovnikov tarafindan hazirlanmis caspr1011.zip dosyasini internetten bulmaniz gerekiyor (Mr. Stop kendi sitesine ekler mi bilemem). Programi kullanarak prokon32.exe dosyamizi unpack edip softice loader ile giriselim. Goreceginiz gibi entry point te softice break yapamadi. Frogice da bir isinize yaramayacak. Procdump ile entry point degistirmek yerine icedump un en son versiyonu olan 6.0.2.3 u internet ten bulup yukleyin. Evet, simdi loader entry point te programi break etti. Win32asm ile unpack edilen bu exe yi incelemeniz birsey kazandirmayacak. Cunku string reference ler yok. Gerci bu is icin de internet te bir patch dosyasi var, ama o da tam olarak basarili degil.
Install ettikten sonra tarihi ileri almaniz (10 sene) birseyi degistirmeyecek. Cunku hata verip bize gerekli olan code.bin dosyasini olusturmayacak. Normal tarihe donup calistirdiginizda "Prokon activated for actual period of 2 months" deyip code.bin ve code.log dosyalari bu tarihe gore olusacak. IDA ile unpack ettigimiz dosyayi acin. Menuden а search а sequence of bytes а 32 20 6D 6F 6E 74 68 73 (2 Months demek) 00486463 adresinde goreceksiniz. Biraz yukari ciktigimizda, 00486427 sub_48620C adresine gelecegiz. Demek ki programi activate eden sub_48620C bolumu. Cift tiklarsak; 0048620C sub_48620C proc near ; CODE XREF: sub_4865A8+1AE Bu bolum sub_4865A8+1AE den refere edilmis. Buna da cift tiklarsak; 00486756 call sub_48620C Bize gerekli dosyalari saglayacak olan cagri 00486756 da duruyor. Bir sekilde buraya ulasmamiz gerek. Softice loader ile yukledigimizde;
0049E6E9 mov ebp, esp 0049E6EB add esp, 0FFFFFFF4h 0049E6EE mov eax, 49E340h 0049E6F3 call sub_40141C 0049E6F8 mov eax, ds:@Forms@Application ; Forms::Application 0049E6FD mov eax, [eax] 0049E6FF call sub_401658 ß [F8] yapalim 0049E704 call sub_49DE6C ... 00401658 jmp dword ptr ds:4C65B0h ß JMP 00486756 olacak
Buldugumuz ilk jump komutunu kendi istedigimiz yere Softice in icinden yonlendirelim (baska bir adres de olabilir, onemi yok). Simdi oldu, istedigimiz ileri bir tarihe gore code.bin yaratildi. Gerci bu islemden sonra Windows hata verip dursa da onemi yok, resetleyin. Tarihi normale alip programi calistiralim. Evet, hata verdi. Cunku, code.bin dosyasindaki tarihten daha gerideyiz. Bunu kontrol eden rutini bulmamiz gerek. Artik programin calisan ve calismayan versiyonuna sahibiz. Tarihi ileri aldigimizda (jmp 486756 yaptigimizdaki) program calisiyor. Normale aldigimizda ise calismiyor. Bu gibi durumlarda %99 calisan yontemi kullanacagiz. Iki versiyonu karsilastiracagiz. Softice da iken code window u [wc] ile kapatin. Boylelikle [F10] ile gezindiginiz yerlerdeki kodlari bir dosyaya kaydedebilirsiniz. (softice loader menuden save softice history as).
Oncelikle hatayi veren CALL u bulmaya calisin.
Ilk olarak 0049E72D CALL 00401660 da hata verecek. Daha sonraki denemenizde [F8] ile bu CALL a giregiz. Ikinci olarak 4005AA51 CALL [EDI+2C] de hata verecek. Yavas yavas hedefe dogru yaklasacaksiniz. 40052E80, 400531FD, 4962EA, 49572C. Biraz zaman ve sabir istese de kesin calisacak bir yontemdir (internet te okudugum kadari ile bu yontemin adi bile var). Kodlarin arasinda kaybolmamaya calisin. Eger bir donguye girdiyseniz, olasi sicranacak yerlere breakpoint koyup yola devam edin (0049552A). Umitsizlige kapilmayin, tecrube ile bu yontemde hizlanabilirsiniz. Calisan versiyon ile calismayan versiyonun "save history text" lerini Excel e almanizi oneririm. 2 kolona bunlari yerlestirin ve JZ, JNZ leri kontrol edin. Gozunuz otomatik olarak farki hemen yakalayacaktir (text leri excel in kolonlarina copy, paste yontemi ile yerlestirmek kolay olacaktir).
Nihayet, 00495555 adresinde programin JUMP yapmasi gerektigini bulacaksiniz. Bunu duzelttikten sonra 004956F5 de NOP yapmasi gerektigini bulup isimizi tamamlayacagiz.
Hatayi veren adrese calisan versiyonun da ugradigindan emin olun. Eger ugramiyorsa, daha geride yollari ayrilmistir. Oradan devam edin. Ilk basta zorlansaniz da sonradan hizlanacaksiniz. Bircok programi bu yontemle kirabilirsiniz. Zor da olsa mutlu sona ulastik. Programin icinden de activate bolumu var. Dogru password girilirse program demo olmaktan cikiyor. Ama girilen password de zaman sinirli. Bizim yontemimizde zaman siniri yok, ama icerigi itibari ile biraz tuhaflik var. Olsun, bir program bircok sekilde crack edilebilir.
Bu yazida, Code dan cok akil verdim galiba. Ama samimi olarak soyluyorum, bu yontem cok etkilidir. Hamaliyesi cok olsa da, tecrube ile nerelere dalmak gerektigini kavrayacaksiniz. Umarim birseyler ogrenebildiniz.
|
|
Bir programı kullanarak para kazanıyorsanız, programı satın alın.