07.02.2015 Views

The Art of Reversing by Ap0x - Tutoriali.org

The Art of Reversing by Ap0x - Tutoriali.org

The Art of Reversing by Ap0x - Tutoriali.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

00401391 . 84C0 TEST AL,AL<br />

00401393 . 74 32 JE SHORT Crackme3.004013C7<br />

00401395 . E8 BC000000 CALL Crackme3.00401456<br />

U ovom CALLu ce se dalje proveravati sadrzaj naseg .ini fajla i to prvobitno u<br />

proveri sekcija i vrednosti koje smo uneli u njega. Ta provera se nalazi ovde:<br />

0040147B |. 68 98124000 PUSH Crackme3.00401298 ; |Key = "Name"<br />

00401480 |. 68 DA124000 PUSH Crackme3.004012DA ; |Section = "User Data"<br />

00401485 |. E8 36030000 CALL ;<br />

0040148A |. 84C0<br />

TEST AL,AL<br />

0040148C |. 0F84 B7010000 JE Crackme3.00401649<br />

Ova procedura jednostavno pristupa sekciji User Data i iz nje iscitava<br />

vrednost kljuca Name. Ako pogledamo malo kod koji se nalazi malo dole:<br />

0040149F |. 68 E6124000 PUSH Crackme3.004012E6 ; |Key = "Serial"<br />

004014A4 |. 68 DA124000 PUSH Crackme3.004012DA ; |Section = "User Data"<br />

004014A9 |. E8 12030000 CALL ;<br />

Iz ovoga se vidi i naziv druge vrednosti koja je Serial. Dakle ponovo moramo<br />

da izmenimo sadrzaj .ini fajla:<br />

[User Data]<br />

Name = “ap0x”<br />

Serial = “111111”<br />

[SecName2]<br />

Value1 = “33333”<br />

Value2 = “44444”<br />

Kada ovo uradimo ponovo cemo restartovati metu u Ollyju i traceovanjem<br />

kroz kod cemo stici dovde:<br />

004014E3 |. 50 PUSH EAX String2 = “111111”<br />

004014E4 |. 8D45 A0<br />

LEA EAX,DWORD PTR SS:[EBP-60]<br />

004014E7 |. 50 PUSH EAX String1 = "ap0x-88A7B7A8"<br />

004014E8 |. E8 FD020000 CALL <br />

Dakle sada znamo i koje vrednosti sekcija User Data u nasem .ini fajlu mora<br />

da ima da bi nas program bio registrovan. Imajte na umu da je drugi deo<br />

serijskog broja specifican za moj kompjuter posto je ocigledno jednak<br />

Computer IDu. Ali da ne bismo restartovali Olly mnogo vise puta nego sto je<br />

stvarno potrebno pogledacemo sta nas dalje ceka u ovoj proveri:<br />

00401502 |. 68 9F124000 PUSH Crackme3.0040129F ; |Key = "SecData1"<br />

00401507 |. 68 C2124000 PUSH Crackme3.004012C2 ; |Section = "Secrete Data"<br />

0040150C |. E8 AF020000 CALL ;<br />

i sledeci deo provere drugog sectiona .ini fajla:<br />

0040156E |. 68 EF124000 PUSH Crackme3.004012EF ; |Key = "SecData2"<br />

00401573 |. 68 C2124000 PUSH Crackme3.004012C2 ; |Section = "Secrete Data"<br />

00401578 |. E8 43020000 CALL ;<br />

Dakle ponovo moramo da izmenimo nas .ini fajl, ovaj put on izgleda ovako:<br />

[User Data]<br />

Name = “ap0x”<br />

Serial = “ap0x-88A7B7A8”<br />

[Secrete Data]<br />

SecData1 = “12345678”<br />

SecData2 = “12345678”<br />

Kada ovo uradimo mozemo ponovo da restartujemo Olly i da tracujemo sve<br />

dok ne dodjemo do ucitavanja prve vrednosti iz druge “secret” sekcije. Kada<br />

dodjemo dovde:<br />

00401511 |. 3C 08 CMP AL,8<br />

00401513 |. 0F85 30010000 JNZ Crackme3.00401649<br />

shvatate zasto su vrednosti SecData1 i SecData2 promenjene u osmocifrene<br />

brojeve. Posle ovoga sledi provera tacnosti unetog podatka za SecData1 u<br />

.ini fajlu, pomocu sledeceg dela koda:<br />

<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 88 <strong>of</strong> 293

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

Saved successfully!

Ooh no, something went wrong!