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.

kojeg se program “obraca” ovoj kontroli. Kada otvorimo crackme pomocu<br />

ResHackera imacemo ovo:<br />

900 DIALOG 0, 0, 240, 191<br />

STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_VISIBLE | WS_CAPTION |<br />

WS_SYSMENU<br />

CAPTION "NAG-SCREEN"<br />

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL<br />

FONT 8, "MS Sans Serif"<br />

{<br />

CONTROL "&Continue", 1, BUTTON, BS_PUSHBUTTON | BS_CENTER | WS_CHILD |<br />

WS_VISIBLE | WS_DISABLED | WS_TABSTOP, 92, 172, 50, 14<br />

CONTROL "NAG", 101, STATIC, SS_CENTER | WS_CHILD | WS_VISIBLE, 20, 48, 200, 10<br />

CONTROL "This nag stays here for 10 seconds, because", 102, STATIC, SS_CENTER |<br />

WS_CHILD | WS_VISIBLE, 20, 120, 192, 8<br />

CONTROL "you did not pay for this program !", 103, STATIC, SS_CENTER | WS_CHILD |<br />

WS_VISIBLE, 20, 132, 200, 9<br />

CONTROL "NAG, NAG, NAG ;))", 104, STATIC, SS_CENTER | WS_CHILD | WS_VISIBLE, 40,<br />

146, 148, 13<br />

...<br />

}<br />

iz cega smo saznali mnogo... Saznali smo da je ID cele forme koja se<br />

pojavljuje na ekranu 900 (decimalno) i saznali smo da je ID dugmeta<br />

Continue jednak 1. Ovo je bitno jer kada program na ASM nivou zeli da uradi<br />

nesto sa nekim objektom on prvo mora da zna na koji objekat se data<br />

komanda odnosi. Dakle ono sto je sigurno je da ce se kao jedan od<br />

parametara API funkciji koja ukljucuje dugme sigurno proslediti i ID<br />

dugmeta. To bi moglo da izgleda bas ovako:<br />

PUSH ukljuci_dugme<br />

PUSH Id_controle<br />

PUSH neki_drugi_parametri<br />

CALL UkljuciDugmeAPI<br />

Kao sto vidimo moraju se koristiti PUSH komande, a PUSH 1 kako bi trebalo<br />

da izgleda prosledjivanje IDa dugmeta bi u hex obliku izgledalo ovako 6A01.<br />

Sada samo treba da potrazimo ovaj binarni string u fajlu i videcemo odakle<br />

se to poziva API za ukljucivanje dugmeta. Pritisnite CTRL + B u CPU prozoru<br />

Ollyja da nadjete ovaj string. Kada unesete 6A01 prozor koji se pojavio treba<br />

da izgleda ovako:<br />

Pritiskom na dugme OK<br />

program ce nas odvesti<br />

na adresu 0040111B a<br />

ocigledno je da je to<br />

pogresna adresa jer<br />

CreateFileA sluzi za nesto<br />

drugo. Pritisnucemo onda<br />

CTRL+L (search again) i<br />

zavrsicemo na adresi<br />

0040125A gde se nalazi<br />

par zanimljivih redova:<br />

PUSH 1 // enable = true,<br />

red PUSH 1 // ControlID i red CALL EnableWindow pa je ocigledno da se API<br />

EnableWindow koristi za ukljucivanje dugmeta a da su mu parametri handle<br />

kontrole i true ili false switch.<br />

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

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

Saved successfully!

Ooh no, something went wrong!