You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
KeyGens & OllyDBGA sada nesto malo komplikovanije, pokusacemo da napravimokeygenerator za nasu “metu” u dva programska jezika. Mislim da su ova dvaprogramska jezika uobicajna i da njih zna najveci deo citalaca ove knjige,stoga su programski jezici koji ce biti obradjivani u knjizi biti Visual Basic iDelphi.“Meta” ce biti ista kao i u proslom poglavlju. Ucitajte program…\Casovi\Cas4\Serial2.exe u Olly. Kao sto smo u proslom poglavlju utvrdiliseriski broj se generise u petlji koja pocinje na adresi 00407D83. Ono stocemo sada uraditi je sledece:1) izvojicemo ovaj deo koda za analizu2) pokusacemo da ponovo napisemo ovaj algoritam u nekom drugomprogramskom jezikuEvo kako izgleda ta pelja izvojena:00407D83 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]00407D86 8A4430 FF MOV AL,BYTE PTR DS:[EAX+ESI-1]00407D8A 34 2C XOR AL,2C00407D8C 25 FF000000 AND EAX,0FF00407D91 03C0 ADD EAX,EAX00407D93 8D0480 LEA EAX,DWORD PTR DS:[EAX+EAX*4]00407D96 05 00040000 ADD EAX,40000407D9B 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]00407D9E E8 9DD5FFFF CALL Serial2.0040534000407DA3 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]00407DA6 8D45 FC LEA EAX,DWORD PTR SS:[EBP-4]00407DA9 E8 7EBAFFFF CALL Serial2.0040382C00407DAE 46 INC ESI00407DAF 4B DEC EBX00407DB0 75 D1 JNZ SHORT Serial2.00407D83Analizirajmo polako prolazak kroz ovu petlju. Treba da vam je ukljucen Ollyda ste postavili break-point na adresu 00407D83, i da ste kao ime u “metu”uneli ap0x, seriski broj nije bitan.Prvi od pet prolaz:00407D83 Pri prvom prolazu kroz petlju u EAXu na adresi 00407D83 se nalazibroj 4, a posle izvrsenja koda na adresi 00407D83 nalazi se nase uneto imeto jest ap0x.00407D86 Ovde se u AL stavlja nulti karakter stringa “ap0x”. Kao stoprimecujete slovo a je prvi karakter. Sta je onda nulti karakter??? Nultikarakter je isti za sve stringove i iznosi 00h ili samo 0. Uvek je isti.00407D8A Ovde se izvrsava obicna XOR operacija nad registrom AL savrednoscu 2Ch ili 44.00407D8C Ovde se izvrsava logicko dodavanje 0FFh odnosno 255 navrednosti EAX. Ovo je obicno svodjenje sa velikih hex brojeva na manje.Shvatite to ovako: ako je EAX 0085005C onda ce posle ovog logickogdodavanja rezultat biti 5C. Posto je posle izvrsenja ove komande EAX jednakregistru AL ova komanda je nepotrebna i necemo je koristiti u keygenu.00407D91 Na ovoj adresi se desava obino matematicko sabiranje vrednosti izEAXa sa samom sobom.<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 47 <strong>of</strong> 165