You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>The</strong> Serials – Computer IDDo sada smo obradili programe koji generisu seriske brojeve naosnovu unetog imena. Ono sto preostaje u ovom opusu je generisanjeseriskih brojeva na osnovu nekog hardwareskog parametra, to jest naosnovu computer IDa. Ono sto vecini korisnika nije jasno je da svakiprogram za sebe generise poseban computer ID, koji se razlikuje odprograma do programa. Iako se seriski broj zasniva na nekom computer IDusam princip generisanja je isti posto se seriski broj opet generise na osnovuneke konstante. Za potrebe ovog dela knjige sa interneta sam skinuo sledecicrackme …\Casovi\Cas3\abexcm5.exe Posto je Abexov program pisan u TASMujedini alat koji ce nam trebati je OllyDBG. Otvorite Olly i ucitajte ovaj fajl unjega. Kao sto primecujemo ovo je jako kratak program, pocinje na adresi00401000 a zavrsava se na adresi 00401171. Takodje su ocigledne dveporuke koje se nalaze u programu, "<strong>The</strong> serial you entered is not correct!" i "Yep,you entered a correct serial!". Primeticemo komandu RET 10 na adresi00401069 koja oznacava da stvaran deo za proveru seriskog broja ne pocinjena adresi 00401056 nego na adresi 0040106C, stoga cemo postaviti breakpointna tu adresu.00401069 |. C2 1000 RET 100040106C |> 6A 25 PUSH 250040106E |. 68 24234000 PUSH abexcm5.0040232400401073 |. 6A 68 PUSH 6800401075 |. FF75 08 PUSH DWORD PTR SS:[EBP+8]00401078 |. E8 F4000000 CALL Sa F9 cemo st<strong>art</strong>ovati program i bez ikakvog unosenja seriskog broja cemopritisnuti Check. Normalno, program je zastao na break-pointu. Evo sta sedesava... Prvo program ucitava nas uneti seriski broj u memoriju na adresi00401078. Dalje se prosledjuju parametri funkciji koja vraca ime p<strong>art</strong>icije C:\to jest takozvani volume label na adresi 00401099.0040107D |. 6A 00 PUSH 00040107F |. 6A 00 PUSH 000401081 |. 68 C8204000 PUSH abexcm5.004020C800401086 |. 68 90214000 PUSH abexcm5.004021900040108B |. 68 94214000 PUSH abexcm5.0040219400401090 |. 6A 32 PUSH 3200401092 |. 68 5C224000 PUSH abexcm5.0040225C00401097 |. 6A 00 PUSH 000401099 |. E8 B5000000 CALL Na adresi 004010A8 se poziva funkcija lstrcatA koja spaja dva stinga. Prvistring je volume label a drugi je uvek isti i jednak je 4562-ABEX.0040109E |. 68 F3234000 PUSH abexcm5.004023F3 ; /StringToAdd = "4562-ABEX"004010A3 |. 68 5C224000 PUSH abexcm5.0040225C ; |ConcatString = ""004010A8 |. E8 94000000 CALL ; \lstrcatADalje na adresi 004010AF pocinje loop koji se izvrsava dva puta i sluzi zamenjanje prva cetiri slova ili broja iz volume labela.004010AD |. B2 02 MOV DL,2004010AF |> 8305 5C224000>/ADD DWORD PTR DS:[40225C],1004010B6 |. 8305 5D224000> |ADD DWORD PTR DS:[40225D],1004010BD |. 8305 5E224000> |ADD DWORD PTR DS:[40225E],1004010C4 |. 8305 5F224000> |ADD DWORD PTR DS:[40225F],1004010CB |. FECA |DEC DL004010CD |.^ 75 E0 \JNZ SHORT abexcm5.004010AF<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 36 <strong>of</strong> 165