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.

I kao sto smo i mislili 004012C0 je OEP i ovde mozemo uraditi<br />

memory dump pomocu LordPEa, posle cega nam ostaje samo da popravimo<br />

importe pomocu ImpReca da bismo uspesno otpakovali ovaj protektor.<br />

Ali kao sto smo vec navikli kada su u pitanju komercijalni protektori i<br />

ovaj ima API redirekciju zbog cega se IAT mora popravljati rucno. Da bismo<br />

ovo uradili selektovacemo bilo koji invalidan import iz liste i izabracemo<br />

opciju Disassemble / Hex View posle cega ce se prikazati sledeci prozor:<br />

U njemu sam vec oznacio sve sto se odnosi na selektovani import i kao sto<br />

se i vidi sa slike radi se o izuzetno jednostavnoj redirekciji koja se zasniva na<br />

PUSHovanju konstante na STACK i na njenom XORovanju slucajnom<br />

vredoscu kako bi se dobila adresa na kojoj se nalazi import. Ako izracunamo<br />

2C59F302 XOR 5BBE5E84 dobicemo 77E7AD86, sto sigurno lici na adresu na<br />

kojoj se nalazi import. Stoga cemo otici na doticnu adresu u Olly i videcemo<br />

koji se tamo import nalazi:<br />

77E7AD86 > 837C24 04 00<br />

CMP DWORD PTR SS:[ESP+4],0<br />

77E7AD8B 0F84 37010000 JE kernel32.77E7AEC8<br />

…<br />

77E7AD9E FF70 04 PUSH DWORD PTR DS:[EAX+4]<br />

77E7ADA1 E8 27060000 CALL kernel32.GetModuleHandleW<br />

77E7ADA6 C2 0400 RET 4<br />

Naravno mislim da svi vide da je ovo poziv ka GetModuleHandleW APIju<br />

stoga mozemo izabrati njega duplim klikom na invalidan import u glavnom<br />

prozoru ImpReca. Naravno ovaj postupak treba ponoviti za sve invalidne API<br />

pozive stoga predlazem da umesto rucnog popravljanja importa izaberete<br />

ImpRec plugin pod imenom acpr koji ce za vas popraviti sve importe osim<br />

jednog koji se nalazi na adresi 00407273. Ako pogledate njega na gore<br />

opisan nacin videcete da on pokazuje na 00415E4B, odnosno nazad na<br />

ACProtect kod zbog cega se ovaj import moze obrisati komandom Cut trunks.<br />

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

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

Saved successfully!

Ooh no, something went wrong!