The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
tElock 0.96<br />
Pre nego sto pocnemo sa otpakivanjem pomocu Ollyja moracemo<br />
da ga podesimo tako da stignemo do OEPa najbrze sto mozemo (bice to<br />
sa tri klika). Dakle otvorite Olly i idite u meni Debugging options (ALT + O),<br />
selektujte tab Exceptions i selektujte samo sledece checkboxove:<br />
- Ignore memory access violations in Kernel32<br />
- INT3 breaks<br />
- Single-step break<br />
- Integer division <strong>by</strong> 0<br />
Zasto ovo radimo Jednostavno tELock ce nam "bacati" ove exceptione<br />
pokusavajuci da detektuje da li je debugger aktivan. Pored ovoga je<br />
potrebno da imate ukljucen OllyInvisible ili HideOlly plugin. Kada ovo<br />
uradimo, mozemo da starujemo nasu metu (..\Cas10\CrackMe10.tElock<br />
0.98b1.exe) pomocu Ollyja i da pocnemo sa otpakivanjem. Prve linije koje<br />
se nalaze na OEPu izgledaju ovako:<br />
00407BD6 > $^\E9 25E4FFFF<br />
JMP CrackMe1.00406000<br />
00407BDB 00 DB 00<br />
00407BDC 00 DB 00<br />
00407BDD 00 DB 00<br />
00407BDE A8 DB A8<br />
00407BDF 02 DB 02<br />
00407BE0 D6 DB D6<br />
Postoji vise nacina na koje mozemo doci do samog OEPa ali mi cemo to<br />
uraditi na najbrzi moguci nacin. Pritisnite F9 kao da pokusavate da startujete<br />
program, ali cete umesto startovanja programa zavrsiti ovde:<br />
004066A8 8D DB 8D<br />
004066A9 C0 DB C0<br />
004066AA 74 DB 74<br />
Posto Olly nije stigao da analizira ovaj kod, pritisnite CTRL + A da biste videli<br />
sta se stvarno nalazi ovde:<br />
004066A8 8DC0 LEA EAX,EAX ; Illegal use <strong>of</strong> register<br />
004066AA 74 DB 74 ; CHAR 't'<br />
004066AB 03 DB 03<br />
004066AC . CD 20 INT 20<br />
004066AE > 64:67:8F06 00> POP DWORD PTR FS:[0]<br />
Kao sto vidite LEA EAX,EAX je ilegalna komanda i zato Olly ne zna sta da<br />
uradi ovde. Da bismo presli preko ove komande potrebno je da pritisnemo<br />
SHIFT + F9 posle cega cemo doci ovde:<br />
00406BA6 CD DB CD<br />
00406BA7 68 DB 68 ; CHAR 'h'<br />
00406BA8 66 DB 66 ; CHAR 'f'<br />
00406BA9 05 DB 05<br />
Posto je ovo access violation greska i ovde cemo pritisnuti SHIFT + F9 da<br />
bismo ponovo pokusali da startujemo program, ali cemo kao i prosli put<br />
zavrsiti na LEA EAX, EAX komandi ovde:<br />
004076F1 8DC0 LEA EAX,EAX ; Illegal use <strong>of</strong> register<br />
004076F3 EB 01<br />
JMP SHORT CrackMe1.004076F6<br />
Ako sledeci put pritisnemo SHIFT + F9 program ce se startovati! Posto ovo<br />
znamo (mozete to i da proverite) mozemo da postavimo jedan memorijski<br />
breakpoint na glavnu sekciju kako bismo presreli izvrsenje koda koji se nalazi<br />
u glavnoj sekciji. Samim presretanjem cemo se naci na OEPu. Otici cemo u<br />
Memory window (ALT + M) i postavicemo Memory breakpoint on access na<br />
<strong>The</strong> <strong>Art</strong> <strong>of</strong> <strong>Reversing</strong> <strong>by</strong> <strong>Ap0x</strong> Page 213 <strong>of</strong> 293