You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
predstavlja jednostavan poziv funkciji koja vraca vrednosti True ili False uzavisnosti da li je uneti seriski broj ispravan ili ne. Imajte na umu da seovakva vrsta zastite, bez obzira koliko ona bila slozena unutar koda CALLa,resava za svega par minuta. Dakle resenje ovog problema shvatite tako stonikada nemojte da pisete funkcije koje ce vracati vrednosti True ili False priproveri seriskog broja, rutine za proveru pisite drugacije.Iako izgleda da smo sa ovim primerom zavrsili to nije tacno. Ovaj programkao i mnogi dugi belezi podatke o registraciji negde u sistemu. Mi cemopronaci mesto gde se belezi ova informacija i zaobicicemo proveru tacnostiove informacije.Kao sto sto smo vec videli, jednostavnim patchovanjem resavamo problemfunkcija koje proveravaju tacnost nekog seriskog broja. Ono sto se sadapitamo je da li smo zaobisli vazne provere koje se mogu nalaziti unutarsamog CALLa. Pogledacemo malo detaljnije CALL i videcemo sledece stvari:1) On generise fajl <strong>The</strong>ArtOfCracking.key u koji se najverovatnijezapisuje registracija.2) Ovaj fajl ce biti smesten u Windows direktorijum tako da kada sesledecu put crackme st<strong>art</strong>uje, ovi podaci ce se ucitati i proveriti3) Postoji jedan zanimljiv skok:004085DE /0F85 B8000000 JNZ patchme.0040869COva skok nas vodi do ovde:0040869C |> \33DB0040869E |> 33C0XOR EBX,EBXXOR EAX,EAXa sluz i za dodeljivanje vrednosti 0 EAXu i EBXu. Posto znamo da EAXna izlazu iz ovog CALL mora biti jednak jedan, ovo znaci da se gornjiskok ne sme izvrsiti. Ono sto nas trenutno buni je to sto ako se neizvrsi gornji skok primeticemo da ce se sledeca dva reda uvek izvrsiti:00408695 |. BB 01000000 MOV EBX,10040869A |. /EB 02 JMP SHORT patchme.0040869EHmmm, ovde imamo mali problem u EBX se smesta 1 a ne u EAX. Akopogledamo odmah ispod prvog donjeg RETa videcemo odgovor na ovopitanje:004086C0 . 8BC3004086C2 . 5E004086C3 . 5B004086C4 . 8BE5004086C6 . 5D004086C7 . C3MOV EAX,EBXPOP ESIPOP EBXMOV ESP,EBPPOP EBPRETAha na samom kraju se EAXu dodeljuje vrednost iz EBXa.Ostaje nam samo da postaramo da se skok sa adrese 004085DE nikada neizvrsi jer ce tada oba uslova biti ispunjena. I fajl ce biti snimljen i EAX ceuvek biti jednako jedan. Stoga cemo samo NOPovati JUMP na adresi004085DE i fajl ce biti snimljen sa bilo kojim unetim imenom i seriskimbrojem. Ako uradimo trajni patch na ovoj adresi videcemo da ako ponovost<strong>art</strong>ujemo ovaj crackeme on ce uvek biti registrovan sa bilo kojim unetimimenom i sa bilo kojim unetim seriskim brojem.<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 41 <strong>of</strong> 165