You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
CD Checking - ExamplesPrvo cu vas upoznati sa osnovnom teorijom provere CDova. Treba dashvatite da su CD promene jako slicne uklanjanju NAG ekrana. U 90%slucajeva se radi o jednostavnim porukama koje program izbacuje ako u CD-ROMu ne nadje odgovorajuci CD. Ove poruke mozete veoma lako presresti iizmeniti program tako da se ova poruka nikada ne prikaze. Ovo cete mociuraditi samo sa programima koji nisu pakovani nekim pakerom ili nisuzasticeni nekim programom koji zabranjuje kopiranje CDova (citaj: SafeDisc,StarForce3 i slicno). Da bi smo odredili da li je neka igra zasticena najlakse jeda otvorimo glavni ExE fajl igrice u PeIDu i vidimo da li je pakovan ili ne. Aline brinite postoji veliki broj novih i starih igara koji nemaju ovakvu zastitu idobre su za praksu (citaj: Quake 3, Worms World P<strong>art</strong>y, GTA: Vice City,... ), a zaone zasticene postoje programi kao sto su UnSafeDisc i slicni koji ce vam“pomoci” da odpakujete ExE fajl i sredite ga normalno kao da nije ni biopakovan. Ove osnovne zastite koje zahtevaju prisustvo CDa u CD-Romuizgledaju manje ili vise ovako u ASMu:CALL check_for_cdTEST EAX,EAXJE no_cd_insertedMOV EAX,1...Ovde se poziva zamisljena adresa check_for_cd koja proverava da lipostoji neki fajl na CDu, ako taj fajl ne postoji onda je pogresan ili nikakavCD ubacen. U sledecoj liniji se proverava EAX sa samim sobom sto ce zarezultat imati da zero flag (vrednost koja moze biti samo 0 ili 1, a vrednost joj seuvek i samo dodeljuje posle nekog poredjenja tipa TEST ili CMP) bude postavljenkao true (1) ili false (0), a ako je zero flag jednak nula onda ce programskociti na zamisljenu adresu no_cd_inserted i prikazace poruku o pogresnomCDu. Naravno ako je CD ubacen onda ce zero flag biti jednak jedan i igrica cese st<strong>art</strong>ovati. Ovo problem mozemo resiti jednostavnim NOPovanjem JEno_cd_inserted skoka i onda ce za program stalno biti ubacen CD. Ali nedajte se zavarati da ce igrica stvarno raditi bez CDa ako joj je nesto odfajlova stvarno potrebno sa CDa da bi radila.Recimo da nas interesuje sta se nalazu u CALLu check_for_cd. Tu bismo mogli da vidimo nesto slicno ovome:check_for_cd:...MOV ECX,03 {neke ASM funkcije, koje su nama nebitne}MOV EBX,401234{neke ASM funkcije, koje su nama nebitne}...TEST EAX,EAXJE good_cdXOR EAX,EAXRET...good_cd:MOV EAX,1RET<strong>The</strong> Art <strong>of</strong> Cracking by Ap0x Page 52 <strong>of</strong> 165