The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
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