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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Reversing</strong> MD5 encryption<br />

Vec je bilo reci o standardnim nacinima enkripcije i vecina<br />

najpopularnijih je nabrojana. Sada cemo objasniti kako se to reversuje meta<br />

koja koristi jednu ovakvu enkripciju. Kazem enkripciju iako to MD5 sigurno<br />

nije. MD5 je metoda generisanja niza brojeva koju su jedinstveni za ulazne<br />

podatke. Odnosno ako MD5 hashing algoritmu prosledite neku rec kao<br />

parametar dobicete heksadecimalni broj duzine 32. Ovaj broj je kao sto je<br />

vec receno jedinstven i ne postoji neki drugi string koji bi imao isti MD5 hash<br />

kao bilo koja druga rec. Dakle ovakav nacin hashovanja stringova je prilicno<br />

siguran posto je skoro nemoguce “provaliti” koji je string koriscen da bismo<br />

dobili neki MD5 hash. Naravno jedina opcija koja nam preostaje je da<br />

uradimo bruteforce da bismo dosli do originalnog stringa koji je hashovan.<br />

Srecom po nas za razbijanje hashovanih serijskih brojeva nije<br />

potreban nikakav bruteforce. Ovo je moguce samo iz razloga sto svi<br />

programi koji koriste MD5 hashing prvo racunaju serijski broj na osnovu<br />

unetog podatka a onda dobijeni serijski pretvaraju u MD5 hash koji se poredi<br />

sa unetim serijskim brojem ili se na njemu izvrsava jos neka operacija.<br />

Primer ovakvog koriscenja MD5 hashinga se nalazi u meti kgme #1.exe<br />

koja se nalazi u folderu Cas09. Pre nego sto pocnemo da reversujemo ovu<br />

metu uvek bi trebali da uradimo<br />

skeniranje mete u potrazi za<br />

kripto potpisima. Ovo mozemo<br />

uraditi pomocu PeID plugina koji<br />

se zove KANAL ili pomocu<br />

x3chung Crypto Searchera. Na<br />

slici pored se vidi rezultat koji se<br />

dobija kada metu skeniramo sa<br />

PeIDovim pluginom.<br />

Kao sto vidimo u nasoj meti se<br />

nalazi samo jedan jedini kripto<br />

potpis a on se odnosi na MD5.<br />

Naravno postoje mete koje<br />

koriste veci broj kripto<br />

algoritama da bi generisale ili<br />

proverile serijske brojeve. Ovi algoritmi mogu biti MD5,SHA1,RSA,DSA,AES,…<br />

Prvo sto treba da uradimo da bismo pronasli pravi serijski broj za nase<br />

ime je da pronadjemo gde se porede uneti serijski broj i tacan serijski broj.<br />

Ovo je izuzetno lako ako ste citali pazljivo knjigu do sada. Dakle znamo da ce<br />

program posle unosa serijskog broja sigurno proci ovaj deo koda:<br />

00401AD8 . E8 33010000 CALL ; \GetDlgItemTextA<br />

00401ADD . 0BC0<br />

OR EAX,EAX<br />

00401ADF . 75 17<br />

JNZ SHORT kgme_#1.00401AF8<br />

i proveriti da li je serijski broj unet ili ne. Naravno ako je serijski broj unet<br />

onda ce se JNE skok izvrsiti i program ce doci do sledece adrese,<br />

00401AF8 > \68 34334000 PUSH kgme_#1.00403334 ; /StringToAdd "BytePtr [e!]"<br />

00401AFD . 68 80334000 PUSH kgme_#1.00403380 ; |ConcatString = "ap0x"<br />

00401B02 . E8 EB000000 CALL ; \lstrcatA<br />

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

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

Saved successfully!

Ooh no, something went wrong!