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.

nam biti da analiziramo ceo CALL nego da traceujemo. Analizom smo<br />

zakljucili da nam je interesantan samo deo od 00407E77 do 00407EC4 jer se<br />

on koristi za prikazivanje glavnog dijaloga. Ako pogledamo taj kod videcemo:<br />

00407E77 |> \68 DC7E4000 PUSH Keygen.00407EDC<br />

00407E7C |. A1 4C984000 MOV EAX,DWORD PTR DS:[40984C]<br />

00407E81 |. 50<br />

PUSH EAX<br />

00407E82 |. E8 A5C6FFFF CALL <br />

00407E87 |. A3 54984000 MOV DWORD PTR DS:[409854],EAX<br />

00407E8C |. A1 54984000 MOV EAX,DWORD PTR DS:[409854]<br />

00407E91 |. 50<br />

PUSH EAX<br />

00407E92 |. 6A 00 PUSH 0<br />

00407E94 |. 68 80000000 PUSH 80<br />

00407E99 |. 56<br />

PUSH ESI<br />

00407E9A |. E8 ADC6FFFF CALL <br />

00407E9F |. A1 54984000 MOV EAX,DWORD PTR DS:[409854]<br />

00407EA4 |. 50<br />

PUSH EAX<br />

00407EA5 |. 6A 01 PUSH 1<br />

00407EA7 |. 68 80000000 PUSH 80<br />

00407EAC |. 56<br />

PUSH ESI<br />

00407EAD |. E8 9AC6FFFF CALL <br />

00407EB2 |. A1 88824000 MOV EAX,DWORD PTR DS:[408288]<br />

00407EB7 |. 50<br />

PUSH EAX<br />

00407EB8 |. 56<br />

PUSH ESI<br />

00407EB9 |. E8 9EC6FFFF CALL <br />

00407EBE |. 8935 50984000 MOV DWORD PTR DS:[409850],ESI<br />

00407EC4 |. E8 C3FDFFFF CALL <br />

I kao sto se vidi iz ove analize prvo se ucitava ikona dijaloga, pa se ta ikona<br />

postavlja, pa se postavlja naziv samog dijaloga, dok se na samom kraju<br />

poziva dll fajl serial.dll i u njemu funkcija ShowNag... Mislim da smo pronasli<br />

nas NAG! Sada mozemo da uradimo patchovanje ovde pretvarajuci ovaj CALL<br />

u NOP ili mozemo da odemo u .dll fajl i da NAG patchujemo tamo.<br />

Deo II - Patching a NAG in .dll file<br />

Drugi deo ovog dela poglavlja cemo posvetiti patchovanju samog .dll fajla.<br />

Ovo se takodje moze uraditi pomocu referentnih stringova ali mi cemo to<br />

uraditi na sasvim drugaciji nacin. Naime iskoristicemo cinjenicu da vec<br />

znamo naziv export funkcije u .dll fajlu koja se koristi za prikazivanje NAGa.<br />

Stoga cemo otvoriti serial.dll fajl pomocu prozora View names (CTRL+N) i<br />

tamo cemo naci nasu export funkciju:<br />

Names in serial, item 64<br />

Address=1000100A<br />

Section=.text<br />

Type=Export<br />

Name=ShowNag<br />

Duplim klikom na ovaj red doci cemo do mesta na kojem se nalazi kod vezan<br />

za samu eksport funkciju:<br />

1000100A > /E9 51010000 JMP serial.10001160<br />

Posto je u pitanju JMP skok praticemo ga do pocetka koda koji se koristi za<br />

prikazivanje NAGa:<br />

1000117A 6A 40 PUSH 40<br />

1000117C 68 44900210 PUSH serial.10029044 ; ASCII "NAG :OP"<br />

10001181 68 1C900210 PUSH serial.1002901C ; ASCII "This is a NAG screen, kill it!!!"<br />

10001186 6A 00 PUSH 0<br />

10001188 FF15 74030310 CALL <br />

I konacno ovde mozemo da uradimo standardan postupak za uklanjanje<br />

MessageBoxA NAGova. Kada zavrsimo sa patchovanjem program cemo<br />

snimiti klikom na desno dugme -> Copy to executable -> Save all -> Save...<br />

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

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

Saved successfully!

Ooh no, something went wrong!