13.07.2015 Views

The art of cracking - Tutoriali

The art of cracking - Tutoriali

The art of cracking - Tutoriali

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>The</strong> Serials – KeyFileCesto sretani problem prilikom reversinga su i takozvani keyfajlovi. Ovifajlovi predstavljaju samo mesto gde su sacuvani podaci vezani zaregistraciju. Mi cemo uz pomoc Ollya i vaseg omiljeno Hex editora razbitijednu ovakvu zastitu. Meta se zove CrackMe.exe a nalazi se u Cas3 folderu.Najcesce se za citanje fajlova koristi API funkcija CreateFileA pa cemopostaviti break-point na nju. Ovo cemo uraditi na standardan nacin: U Ollyucemo izabrati Executable modules -> View names -> CreateFileA -> Setbreakpoint on every reference...Posle ovoga cemo st<strong>art</strong>ovati program pomocu opcije Run, posle cega ceprogram zastati na sledecem mestu:0040416A . E8 9DD0FFFFCALL Sa F8 cemo izvrsiti ovaj CALL i zavrsicemo ovde:0040120C $- FF25 04914200 JMP DWORD PTR DS:[Uklonite ovaj break-point. Sada cemo pritiskati F8 onoliko puta koliko namtreba da se vratimo iz kernel32.dll. Pritiskajte F8 dok ne izvrsite prvu RETkomandu. Posle cega cemo se vratiti ovde:0040416F > /83F8 FFCMP EAX,-100404172 . /74 29 JE SHORT CrackMe.0040419DOvaj CMP proverava da li postoji fajl na disku koji sadrzi podatke oregistraciji programa. Kako se zove taj fajl??? Ova informacija je sigurnomorala da bude prosledjena gornjoj CALL CREATEFILEA funkciji, jer ovaj APImora da zna koji fajl treba da otvori. Zbog ovoga cemo postaviti break-pointna prvu PUSH komandu koja se prosledjuje tom CALLu. Postavicemo breakpointovde:0040415A > \6A 00 PUSH 0 ; /hTemplateFile = NULLPritisnite F9 kako bi ste nastavili sa izvrsavanjem programa. Sada nazad ucrackmeu pritisnite dugme Try Again i program ce zastati na novopostavljenom break-pointu. Sada cemo izrsiti ovaj CALL sa F8 sve dok nedodjemo do PUSH EAX komande. Kada dodjemo do nje sadrzaj EAXa ce bitiime fajla koji nam treba. Taj fajl je ctm_cm02.key.Sada cemo napraviti jedan fajl sa sadrzajem jednog stringa, sa stringomap0x (nula a ne O). Ovo mozete uraditi sa Notepadom ili sa nekim Hexeditorom. Pitanje je samo gde ce se to ovaj fajl nalaziti ??? Odgovor jejednostavan: On ce se nalaziti u istom direktorijumu ili bi PUSH EAX funkcijasadrzala celu putanju do ctm_cm02.key fajla.Sada cemo ponovo pritisnuti dugme Try again u crackmeu i program cezastati na PUSH EAX break-pointu. Polako cemo izvrsavati sve redove kodasa F8 i posmatracemo sta se desava. Ovde:0040416F > /83F8 FFCMP EAX,-100404172 . /74 29 JE SHORT CrackMe.0040419Dse sada ne izvrsava JE skok pa cemo se posle izvrsavanja donje RETkomande naci ovde:00426592 . E8 4DC1FDFF CALL CrackMe.004026E4...004265AA . E8 F9C0FDFFCALL CrackMe.004026A8kada dodjemo do ovog drugog CALL videcemo da EAX sada sadrzi broj 4 stoje duzina naseg stringa u key fajlu. Vidimo i koji red ispod da se EAX koristiza proveru da li je key fajl prazan ili ne.<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 42 <strong>of</strong> 165

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!