OK, to je CRC, ale existuje i CRC check, kterej se používá na ochranu proti crackování - program se načte do paměti a provede se kontrolní součet programu - jestliže nesouhlasí, program hlásí, že je porušen a ukončí se. Jak toto naprogramovat?? Když načtu program do paměti a se všema datovýma záznamama a spočítá se CRCcheck tak je potřeba,...no zkrátka asi takhle
void main(){
}
CRC:545454
Přidáš
if(!Crc_check(handle)=545454){
MessageBox("Fuck you");
return 0;
}
Ale tím, že tohle přidáš do progu, taxe CRC změní na např.5454AA a sem zase v prdeli - přepíšu to na:
if(!Crc_check(handle)=5454AA){
MessageBox("Fuck you");
return 0;
}
A CRC se zase změní.
Co s tím dělat?? To mám počítat součty jen pro crackera zajímavý sekce. Nebo si tu proměnnou mám uložit do souboru a během ověřování CRC získat pomocí debuggeru(v SoftIce pohoda)???
Omluvte chyby v mý parodii na C, je to jen myšlenkovej postup:-))
To je sranda :) Muzete se s nami podelit, ktery program neco takoveho na svoji obranu pouziva? :)
Pripada mi to celkem vtipne - kdo mi zabrani, abych nekam pred volani Crc_check() vlozil par instrukci, ktere ten check preskoci? Sice takto ten program modifikuji a jeho konstrolni soucet se zmeni, ale to mi vubec nevadi, protoze on uz ho nekontroluje. :)
No jo, tohle odradi polovinu hackeru, druha polovina pouzije DisAssembler, najde si instrukci porovnej checksum, pripadne krokuje k tomu algoritmu a pak nastavi instrukci, aby odpoved byla vzdy ANO :)))
To je asi to same, jako se sifruji programy a zpracovavaji na dvakrat :) Hacker si to samozrejme necha nejdriv rozsifrovat a pak hleda algoritmus, ktery ho zajima :) Ale zas to polovina lidi neumi nebo nepochopi, ze zbytek programu se teprve dekoduje a ze hledaji algoritmus marne...