Algoritmy pre tvorbu a kontrolu aktivačného kľúča musia byť zložitejšie.Pre ľudí zaoberajúcich sa výrobou crackov a keygenov je vynasobiť,vydeliť,pripočítať,odpočítať a pod. hračka.Používa sa pritom skôr nejaká kryptografia. Napríklad taká debilina, že by sa zapísalo zadané meno a email vedľa seba, z toho SHA512 hash a jeho časťami by sa zašifrovalo ID užívateľa z centralizovanej databázy, kam dáte aj meno a email.Na šifrovanie by sa dalo využiť AES.Na výsledok Base64 a máte aktivačný kľúč.Kontrolou by bolo zase zahashovať meno a email, skúsiť na aktivačný kľúč opak Base64, dešifrovať hashom a porovnať výsledok, meno a email z údajmi v databázi.Ale je to čisto ukážka, pravdepodobne nejaká debilina, aj keď stále je to zložitejšie, ako to vaše násobenie, delenie, sčítavanie a odčítanie. Base64 je v triede System.Convert , SHA512 a AES v namespace System.Security.Cryptography . AES Kľúč a IV z SHA512 hashu môžete získať napríklad aj tak, že SHA512 hash má 64 bajtov, AES kľúč 32 bajtov a AES IV 16 bajtov, tak prvých 32 bajtov hashu bude kľúč a ďalších 16 bude IV.Zvyšných 16 nepoužijete na nič. Ešte musíte vymyslieť, kde uložíte aktivačný kľúč.V žiadnom prípade sa nepokúšajte proste uložiť, že už je aktivované, pretože by to ktokoľvek mohol zmeniť.Uložte kľúč, meno a email na niekoľko miest(Register, zašifrované súbory a všetko ostatné, čo vás napadne.Hlavne tým súborom dávajte také mená, kde by ste nikdy ten kľúč nehľadali.). Pri každom jednom spustení vyberiete údaje zo všetkých miest, porovnáte, počkáte zopár sekund, ak niekde máte nezhodu, tak aplikáciu násilne ukončíte(napríklad chybovou hláškou "Data file is corrupted." preloženou do jazyka uživateľského rozhrania aplikácie).Ak sú všetky zhodné, urobíte kontrolu(popísaneé vyššie), opäťť počkáte pár sekund a v prípade neplatnej kombinácie opäť vyhodíte nejakú hlášku, ale takú, aby to nebolo podozrivé. Nikomu neprezrádzajte vaše algoritmy, ani tomu, ktorý by vám mohol pomôcť odhaliť v ňom chyby a ani ľuďom, ktorým dôverujete.A oplatí sa pred vypustením aplikácie "na svet" ju poriadne obfuskovať.Dobrý obfuskátor dokáže také veci, že v Reflectore a iných podobných programoch bude namiesto názvu procedúr štvorec alebo bodka a že pri dekompilácii sa bude Reflector sťažovať na neplatné IL kódy a podobné veci, ktoré vedia veľmi sťažiť pokus o odhalenie algoritmu.
|