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

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

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

Patching aC 0.1<br />

Vec sam vam objasnio kako da otpakujete aC 0.1 u poglavlju koje se<br />

bavilo otpakivanjem. Sada pred vas stavljam sledeci zadatak:<br />

Zadatak:<br />

Fizicki (bez loadera) patchovati NAG u fajlu ...\Cas12\unpackme#1.aC.exe bez<br />

otpakivanja na disk i bez modifikacije skoka posle provere CRCa sekcije.<br />

Resenje:<br />

Otpakujmo prvo crackme u memoriju. Posto je ovo vec objasnjeno reci cu<br />

samo da se trenutno nalazimo na OEPu 0040121E. Ako pogledamo sada<br />

adresu:<br />

0040122C . 68 F5104000<br />

PUSH unpackme.004010F5<br />

videcemo da se glavna procedura za obradu WM poruka nalazi bas na adresi<br />

004010F5. Sada cemo pogledati sta se tamo nalazi:<br />

...<br />

004011B4 . 6A 40 PUSH 40<br />

004011B6 . 68 41114000<br />

PUSH unpackme.00401141<br />

004011BB . 68 23114000<br />

PUSH unpackme.00401123<br />

004011C0 . FF75 08<br />

PUSH DWORD PTR SS:[EBP+8]<br />

004011C3 . E8 9A000000<br />

CALL <br />

004011C8 . 33C0<br />

XOR EAX,EAX<br />

Kao sto vidimo ovde se nalazi nas NAG. Posto program ne smemo otpakivati<br />

restartovacemo ga sa CTRL + F2 i otici cemo na adresu 004011B4 da bismo<br />

pogledali sta se to nalazi na toj adresi kada je program kriptovan. Vidimo:<br />

004011B4 3F DB 3F ; CHAR ''<br />

004011B5 15 DB 15<br />

004011B6 3D DB 3D ; CHAR '='<br />

004011B7 14 DB 14<br />

004011B8 44 DB 44 ; CHAR 'D'<br />

004011B9 15 DB 15<br />

004011BA 55 DB 55 ; CHAR 'U'<br />

004011BB 3D DB 3D ; CHAR '='<br />

004011BC 76 DB 76 ; CHAR 'v'<br />

004011BD 44 DB 44 ; CHAR 'D'<br />

004011BE 15 DB 15<br />

004011BF 55 DB 55 ; CHAR 'U'<br />

004011C0 AA DB AA<br />

004011C1 20 DB 20 ; CHAR ' '<br />

004011C2 5D DB 5D ; CHAR ']'<br />

004011C3 BD DB BD<br />

004011C4 CF DB CF<br />

004011C5 55 DB 55 ; CHAR 'U'<br />

004011C6 55 DB 55 ; CHAR 'U'<br />

004011C7 55 DB 55 ; CHAR 'U'<br />

veoma kriptovan kod. Posto sve ovo moramo da promenimo u NOP moramo<br />

da znamo kako se enkriptuje 90 da bismo znali u sta da promenimo ove<br />

bajtove. Da bismo ovo saznali moramo da pogledamo kod kriptera i da<br />

vidimo kako se kriptuju adrese od 004010F5. Za to su zaduzeni sledeci<br />

loopovi:<br />

004010A3 |> 8033 44<br />

004010A6 |. 83E9 01<br />

004010A9 |. 43<br />

004010AA |. 83F9 00<br />

004010AD |.^ 75 F4<br />

i sledeci loop:<br />

/XOR BYTE PTR DS:[EBX],44<br />

|SUB ECX,1<br />

|INC EBX<br />

|CMP ECX,0<br />

\JNZ SHORT unpackme.004010A3<br />

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

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

Saved successfully!

Ooh no, something went wrong!