broker
Član broj: 2415 Poruke: 8514 212.62.59.*
|
Passwed vam je rekao glavnu caku. Kakvu god vratolomiju korsitili da utvrdite da li j eprogram registrovan ako sve to zavrsite sa IF, dzabe ste krecili jer je potrebna promena sam jednog bajta u kodu da sve vase provere budu iskljucene.
Trik je sledeci: koristite podatke o registraciji kao funkcionalni deo programa, ako podatak nije ispravan, program nece ispravno raditi. IF korsitite samo da utvrdite neispravnost registracije kako bi ste obezbedili da program u takvim situacijama prepozna da registracije nije dobra i da obezbedi ispravan prekid tekuce funkcije ili rada celog programa. Hakeru time komplikujete, jer kada on iskljuci proveru, on ne obezbedjuje da program radi, nego da program radi neispravno. ako naprvite dovoljan broj ovakih kvaka, osigurali ste svoj rogram,ne zato sto je on neprobojan, nego zato sto ce hakeru trebati mnogo vremena da prokljuvi sta se desava, a time drasticno smanjujete veroatnocu da ce se sa tim baktati.
Onaj krek sto sam pomenuo, upravo je to uradio, sklonio je dve od mnogo veceg broja provera registracije, a time sto ih je uklonio, samo je uklonio obavestenje da program nije registrovan a dobio da program dalje radi neispravno.
Kada koristite kljuceve za registraciju, klasicna provera izgleda ovako: kodkorisnika se generise neki podatak koji je jedinstven za njega, on to posalje vlasniku a vlasnik na onsovutogaizgenerise kljuc za program. Program proverava a li kljuc odgovara pocetnom podatku tako sto i on izglenerise kljuc pa uporedi pa ako jeklkjuc isti, program je registrovan. Takvu zastitu razbijaju tako sto nadju kod koji generise kljuc, iscupaju ga i od njega naprave generator kljuceva.
Kljuceve korsitite ali u kljuc uisite neke podatke koji se koriste u samom programu kao bitni elementi. Kod proere apliakciaj uopste ne mora da proverava da li je sam kljuc neispravan nego korsti podatke iz njega takve kakvi su a samo utvrdjuje da li su oni neispravnu u smislu da zna sta da uradi u tom slucaju. Ako neko skine proveru, a podatak je neispravan, program ce raditi neispravno.
Dobra mesa su sve rutine koje vrse izracunavaja. Ako deo formule za racun bude i neki podatak iz kljuca, a kljuc je neispravan, sam racun postaje neispravan. Moete bitiprilicno mstoiti, i ici dotle da pravite razne svinjarije, kao sto je recimo da se neka dugmad vide ili ne vide ili da se neki dijalozi otvaraju na pogresnim mestima, ili cak da se podaci iz dijaloga ne koriste kako treba. Stovis zackoljica smislite to ce krakeru biti vece smaranje da ih otklanja. Ipak, nikada nemojte ugradjivati destruktivan kod, kod koji ce da unistava.
Vazno je da zaboravite na modularno programiranje koda za zastitu. Trudite se da svaka zackoljica bude uradjena drugacije, pisite drugaciji kod, korsitite razlicite promenjljive, jer svaka uniformnost u kodu znaci da ce kraker otkrivsi jednu zackoljicu, lako da nadje i eliminise i ostale. Za ovo ej bitno da imate predstavu kako radi kompajler i sta ce da napravi kada vas Delphi kod prevede u masinski. Delphi ima veoma dobar kompajler koji moze da optimizacijom, od naizgled razlicitog Delphi koda, napravi isti ili vrlo slican masinski. To je bitno jer kraker radi sa masinskim kodom. Dobar kraker, gledajuci masinski kod prepoznaje Delphi komande. Nocito se nemojste zeznutisa promenljivama. Delphi kompajler je vrlo inteligentn i cesto ce u masinkom kodu promenljive i konsante koje ocigledno imaju iste vrednosti, sastaviti u jednu. Obratite paznju na konstante. Njihove vrednosti su u exe najcesce upisane bas onako kako su definisane t eumeju vrlo cesto a otkriju mnogo detalja o samom programu. Bitne vrednosti drzite kao promenljive, kodirane na neki nacin, tako da nisu ocigledno citke.
Ovakve zastite nisu jednostavne da se naprave. Zahtevaju pre svega analizu gde se u kod mogu umetnuti zackoljice i mnogo vremena da se te zackoljice ugrade u program. Upravo zato se ne moze dati neko konkretnije uputstvo osim ovako uopsteno jer svaka zastita je razlicita od programa do programa.
E da, ako korsitite gotove komponente ili biblioteke za zastitu, racunajte da vam je program vec razbijen, jer ako je haker razbio jedan program koji koristi taj kod, razbice i svaki sledeci i to rutinski.
[Ovu poruku je menjao broker dana 19.10.2005. u 14:53 GMT+1]
|