The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
The Art of Reversing by Ap0x - Tutoriali.org
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