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.

Bruteforce the encryption<br />

Ovaj deo poglavlja spaja dve jako bitne celine u jednu. Ovde ce biti<br />

detaljno objasnjene tehnike koriscenja bruteforceinga u razbijanju enkripcija.<br />

Morate da shvatite da kada je u pitanju reversing slozenih ili relativno<br />

slozenih enkripcija nije moguce naci pravi nacin za njihovo dekriptovanje kao<br />

sto je to bio slucaj u prethodnom delu poglavlja. Jedini nacin da se pronadje<br />

pravi password za enkriptovani fajl je da proverimo sve oblike koje serijski<br />

broj moze da ima i da dekriptujemo fajl pomocu njih. Ovo moze biti<br />

komplikovano ako pokusavamo da dekriptujemo ceo fajl, da bismo ubrzali<br />

ovaj proces mi cemo dekriptovati samo prvih sest bajtova fajla. Ako su svih<br />

sest bajtova ispravni onda je velika verovatnoca da ce ceo fajl biti<br />

dekriptovan kako treba. Ja sam delimicno olaksao posao dekriptovanja tako<br />

sto sam koristio password duzine 6 karaktera, gde su svi karakteri velika<br />

slova. Iako se koriste samo velika slova broj kombinacija slova koje mogu<br />

predstavljati tacan serijski broj iznosi 244,140,625 serijskih brojeva duzine<br />

sest karaktera. Ovaj neverovatan broj postaje dosta veci ako se koriste mala<br />

slova i brojevi zajedno sa velikim slovima. Naravno da nalazenje passworda<br />

rucno moze da potraje dosta dugo vremena pa se zbog toga pisu<br />

specijalizovane aplikacije koje nam olaksavaju posao proveravajuci sve<br />

moguce kombinacije slova i brojeva.<br />

Za potrebe ovog poglavlja je napisan poseban algoritam koji<br />

enkriptuje odredjeni fajl pomocu nekog passworda i nekog algoritma za<br />

enkriptovanje. Primer enkripcije se vidi na slici<br />

ispod. Naravno password kojim je enkriptovan<br />

fajl encrypted.exe nije AAAAAB nego neki drugi<br />

koji mi treba da otkrijemo. Pre samog pisanja<br />

decryptera-bruteforcera moracemo prvo da<br />

vidimo kako to algoritam za enkripciju radi da<br />

bismo mogli na osnovu toga da napisemo<br />

odgovarajuci bruteforcer. Ne brinite algoritam<br />

nije komplikovan ali je dovoljno tezak da se fajl<br />

ne moze dekriptovati bez bruteforcera. Otvorimo<br />

program encryptFile.exe pomocu Ollyja. Posto program izbaci string<br />

encrypting done!!! kada se zavrsi enkriptovanje mozemo lako da nadjemo<br />

CALL koji je zaduzen za enkripciju. Taj CALL pocinje na adresi 00453A64.<br />

Kao parametre u program unesite original.exe, new.exe i PSWORD. Postavite<br />

break-point na pocetak CALLa za racunanje i pritisnite Encrypt File dugme.<br />

Olly je zastao na break-pointu i sada treba da se krecemo kroz kod sa F8<br />

kako bismo videli sta se to desava u ovom CALLu. Sve ovo nam je totalno<br />

nebitno dok ne stignemo dovde:<br />

00453BD5 |. BB 01000000<br />

00453BDA |. 8B07<br />

00453BDC |. 3347 04<br />

00453BDF |. 3347 08<br />

00453BE2 |. 3347 0C<br />

00453BE5 |. 3347 10<br />

00453BE8 |. 33C6<br />

00453BEA |. 8BF0<br />

MOV EBX,1<br />

MOV EAX,DWORD PTR DS:[EDI]<br />

XOR EAX,DWORD PTR DS:[EDI+4]<br />

XOR EAX,DWORD PTR DS:[EDI+8]<br />

XOR EAX,DWORD PTR DS:[EDI+C]<br />

XOR EAX,DWORD PTR DS:[EDI+10]<br />

XOR EAX,ESI<br />

MOV ESI,EAX<br />

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

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

Saved successfully!

Ooh no, something went wrong!