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.

Keygening Scarabee #4Zadatak:Relativno lak zadatak ...\Cas12\crackme#4.exe treba reversovati tako da seukljuci Check dugme i da posle pritiska na ovo dugme program prikazujeporuku da je program registrovan. Dozvoljeno je patchovati samo bajtovekoji sluze za iskljucivanje / ukljucivanje dugmeta. Pored ovoga treba otkritinacin na koji se racuna seriski broj i napraviti keygenerator.Resenje:Da bi smo ukljucili dugme Check iskoristicemo program DeDe. Ako nemateovaj program samo patchujete program na objasnjeni nacin.Ucitajte metu u DeDe i u procedurama izaberiti FormCreate i videcetesledece:0044FBA8 33D2 xor edx, edx* Reference to control TForm1.Button1 : TButton0044FBAA 8B80F0020000 mov eax, [eax+$02F0]0044FBB0 8B08 mov ecx, [eax]* Reference to method TButton.SetEnabled(Boolean)0044FBB2 FF5164call dword ptr [ecx+$64]0044FBB5 C3retKao sto se vidi iz prilozenog kada se kreira forma dugme se iskljuci pozivomna komandu CALL DWORD ptr[ecx+$ 64], zbog cega cemo NOPovati ovajCALL. Posle ovoga mozemo otvoriti Olly i nastaviti sa reversingom ove mete.Potrazicemo sve moguce stringove koji bi nam ukazali na to gde se to racunaseriski broj. Videcemo ovu zanimljivu referencu:Text strings referenc ed in crackme#:CODE, item 1850Address=0044FB5DDisassembly=MOV EDX,crackme#.0044FB98Text string=ASCII " Registered!"koja ce nas odvesti ovde:0044FB5D |. BA 98FB4400 MOV EDX,crackme#.0044FB98; ASCII " Registered!"0044FB62 |. E8 4DF1FDFF CALL crackme#.0042ECB4Ovo znaci da se CALL koji se koristi za racunanje seriskog broja nalaziizmedju adresa 0044FA64 i 0044FB8C.Postavicemo break-point na adresu 0044FA64 kako bi smo analizirali deokoda koji sluzi za proveru seriskog broj i pritisnucemo dugme Check usamom programu posle cega cemo zavrsiti na nasem break-pointu.Procicemo kroz kod 1x pritiskajuci F8 da bi smo saznali sto vise o kodu zaproveru seriskog broja. Primeticemo sledece:0044FA8D |. 8B45 F8MOV EAX,DWORD PTR SS:[EBP-8] ; U EAXu je putanja do fajla0044FAA3 |. 83F8 15 CMP EAX,15 ; U EAXu je duzina putanje0044FAA6 |. 0F85 BB000000 JNZ crackme#.0044FB67 ; EAX se poredi sa 15hKada se ovaj skok izvrsi zavrsicemo odmah ispod poruke o tacnom seriskombroju zbog cega se ovaj skok nikada ne sme izvrsiti. Zbog ovoga cemo ovajcrackme iskopirati u folder c:\aaaaaaaaaaaaaaaaaa i reversovacemo ga tu.Ovo radimo jer duzina putanje do exe fajla mora da bude 15h ili 21decimalno a posto se racuna i c:\ u duzinu putanje folder mora biti bas ovajili neki drugi sa istom duzinom. Sada cemo pomocu Ollya otvoriti fajl koji senalazi na ovoj novoj lokaciji. Primeticete da se sada ne izvrsava skok naadresi 0044FAA6 i da cemo malo ispod toga naici na sledece provere:0044FAAC |. 8B45 F80044FAAF |. 8078 09 5CMOV EAX,DWORD PTR SS:[EBP-8]CMP BYTE PTR DS:[EAX+9],5C<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 154 <strong>of</strong> 165

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

Saved successfully!

Ooh no, something went wrong!