You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Delphi a nd A S MKao veoma obican i lak primer sam za ovaj sesti cas pripremioBangalyev CrackMe #2. On kao i ostali primeri koje ja nisam napisao moguse preuzeti sa adrese www.crackmes.de Ako “propustimo” ovaj primer krozPeID videcemo da je on pisan u TASMu / MASMu. Ok otvoricemo Olly davidimo sta se desava unutar ovog programa. Predpostavicu da znate dapronadjete mesto gde se generise seriski broj pa cemo odmah preci na stvar.Znaci imamo ovaj deo koda koji nam je interesantan i ne zelimo da ponovopisemo ovu rutinu:00401304 |. B8 01000000 MOV EAX,100401309 |> 8B15 38304000 /MOV EDX,DWORD PTR DS:[403038]0040130F |. 8A90 37304000 |MOV DL,BYTE PTR DS:[EAX+403037]00401315 |. 81E2 FF000000 |AND EDX,0FF0040131B |. 8BDA |MOV EBX,EDX0040131D |. 0FAFDA |IMUL EBX,EDX00401320 |. 03F3 |ADD ESI,EBX00401322 |. 8BDA |MOV EBX,EDX00401324 |. D1FB |SAR EBX,100401326 |. 03F3 |ADD ESI,EBX00401328 |. 2BF2 |SUB ESI,EDX0040132A |. 40|INC EAX0040132B |. 49|DEC ECX0040132C |.^ 75 DB \JNZ SHORT Key-Crac.004013090040132E |. 56PUSH ESIMozemo da postavimo break-point na adresu 00401309 i da prodjemo parputa kroz ovaj loop da vidimo sta se to desava ovde. Videcemo da se u prvatri reda u EDX stavlja prvo,drugo,... slovo iz imena, u ostalim se vrse nekeracunske operacije i ovaj loop se ponavlja vise puta, odnosno onoliko putakoliko ime ima slova. Ono sto vidimo je da se svi registi sem ESI resetuju tojest da dobijaju neke nove vrednosti. Ovo ujedno znaci da ce na kraju loopaESI sadrzati pravi seriski broj. Ako ovo odavde ne mozete da zapazite imate ideo koda malo ispod koji vam upravo ovo govori:0040133A |. 3BC60040133C |. 75 15CMP EAX,ESIJNZ SHORT Key-Crac.00401353Ono sto cemo mi uraditi je da cemo iskoristiti ovaj ASM kod da napravimoDelphi keygenerator, ali to necemo radi prevodjenjem ovog ASM koda uDelphi nego malom modifikacijom ovog ASM koda i njegovim ubacivanjem uDelphi program. Sve od adrese 0040131B pa do adrese 00401328 cemoostaviti kako jeste, dok cemo ostatak prilagoditi. Znaci ovo cemo maloprilagoditi:MOV EBX,EDXIMUL EBX,EDXADD ESI,EBXMOV EBX,EDXSAR EBX,1ADD ESI,EBXSUB ESI,EDXOno sto moramo da uradimo je da pre izvrsavanja ovoga u EDX stavimovrednost ASCII koda nekog slova iz imena, a na kraju da ESI sacuvamo uneku promenjivu.Znaci kod cemo izmeniti u ovo:<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 58 <strong>of</strong> 165