13.07.2015 Views

The art of cracking - Tutoriali

The art of cracking - Tutoriali

The art of cracking - Tutoriali

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.

ste sigurno zaboravili na registar ESI. Da vas podsetim registar ESI se dobijatako sto se xoruju sve ASCII vrednosti iz predpostavljenog passworda. Zatonismo mogli da iskoristimo tehniku koju smo upotrebili za Trillian, jer sesvaki bajt iz fajla enkriptuje ne samo sa slovom iz passworda nego i sa ESIvrednoscu. Naravno sama ESI vrednost se razlikuje za svaki password, ali nei za svaki redosled slova :) Ovo znaci da ce ESI biti isti za AAABBB i zaBBBAAA jer jer xor funkcija revezibilna to jest A xor A xor A xor B xor B xor B= 3 ali je i B xor B xor B xor A xor A xor A = 3 tako da cemo ovo iskoristiti.Pogledajmo malo sta ta xor funkcija radi.65 xor 65 = 00 xor 65 = 6565 xor 66 = 33 xor 66 = 6565 xor 66 = 3Dakle iz ovoga zakljucujemo da ako imamo sest razlicitih slova bez obzira nato koje je slovo na kom mestu rezultat xorovanja to jest ESI se krece uvrednostima od 0 pa do 91. Zasto ??? Zato sto ako se na kraju xoruju dvaista slova onda ce rezultat biti minimalan to jest 0, a ako su slovanajudaljenija jedna od drugog onda je maksimum 90 xor 1 to jest 91. Ovo jejako zanimljivo jer sada ne moramo racunati ESI jer znamo u kojim se ongranicama krece. Naravno ovo moze da se sredi i preko integrala postoznamo granice kojima je odredjen ESI ali necemo to tako. Imamo kompjuterispred sebe pa cemo ga maksimalno iskoristiti.Moracemo samo malo da promenimo princip razmisljanja kako bi smo ubrzalionaj nas algoritam za bruteforceovanje. Dakle vec smo dosli do formule:ESI xor ASCII(SLOVO1) xor BAJT1 = 4Di tako dalje za svako sledece slovo i sledeci bajt. Ono sto cemo mi iskoristitije cinjenica da ESI moze da ima vrednosti od 0 do 91. Zbog ovoga vise nemoramo da racunamo sam ESI nego cemo ga predpostaviti u intervalu od 0do 100. Dakle dekriptovacemo samo prvo slovo po formuli:ESI xor ASCII(SLOVO1) xor BAJT1 = 4Dgde je ESI od 0 do 100 a SLOVO1 je takodje predpostavljena vrednosti od Ado Z. To bi u Visual Basicu izgledalo ovako:For j = 0 To 100For i = 65 To 90chk = i Xor j Xor tab2(1)If chk = tab1(1) <strong>The</strong>n????????????End IfNext iNext jOvim smo definisali kod sve do onih upitnika. Sada treba da napravimoalgoritam koji ce dekriptovati i sva ostala slova iz passworda. Imajte na umuda smo vec odredili ESI kao promenjivu j i da se ona u predelu upitnika necepromeniti. Ostatak algoritma je jednostavan samo treba da napravite josjednu petlju koja ide od A do Z i da proverite da li je j xor SLOVOx (x je brojod 2 do 6) xor BAJTx jednako originalnom BAJTUx. Ovaj primer sam ja veciskodirao i nalazi se u folderu ...\Cas9\Source2\bforce with dict - optimized\Mozete slobodno analizirati ovaj kod da bi ste stekli kompletnu sliku o ovomnaprednom pisanju algoritma.<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 110 <strong>of</strong> 165

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

Saved successfully!

Ooh no, something went wrong!