Ochrana VB Aplikací - 1. Díl
1. Nikdy se nespoléhejte na to, ľe omezenou verzi omezíte dis enablovanym tlačitkem nebo jakýmkoliv prvkem - existuje program od Wanga International se jmnéem The Customizer, který tyto prvky umí enablovat, upravit..
2. Nikdy nekontrolujte stav jen jednou, vľdy kontrolujte např. seriový klíč klidně i po půl minutě.
3. Nikdy nepouľívejte totoľnou funkci pro kontrolu klíče - tzn. vľdy si vytvořte novou, prohaľte různě logiku apod.
4. Čím víc kontrolních funkcí, tím hůř pro crackera
5. Volání kotroly kliče nikdy nedávejte jako přímou odezvu určitého prvku (dá se velice dobře breakovat v debuggingu), aktivujte neprve třeba prvkem Timer s náhodným intervalem, ten pak aktivuje náhodně jinej a ten pak zavolá kontrolu. Tímto můľete crackera zmást.
6. Do kontrolního algoritmu dávejte spoustu zbytečného kódu
7. Nepouľívejte logicky pojmenované proměnné - např. SerioveCislo atd. Pohrajte si trochu s fantazii ;)
8. Do kotrolního algoritmu nedávejte ľádné poznámky.
9. Vyhodnocení zprvnávnost/nezprávnosti klíče nedávejte vědět ihned. Volejte zase například náhodný prvek nejlépe Timer s náhodným interval, který počítáte ąílenýma (tj. naprosto zbytečnýma počtama) počtama, který zobrazí zase náhodnou zprávu.
10. Nepouľívejte MSGBOX! Tato api jde jednoduąe sledovat a ihned po zavolání se dá zjistit co se dělo přední. Je velice jednoduché pak stopovat!
11. Nepouľívejte známé API, snaľte se napsat vlastní, pokud to nepůjde, tak doufejte ľe existují jiné. - Crackeři VB aplikací se ihned dívají po importovaných fcích a hned se dívají po vbaStrCMP (porovnávání) vbaMsgBoxA (náą milý MsgBox)
12. Dávejte do kontrolních algoritmů různé kontrolní součty, např. krok(i).hodnota = 1, pokud se součet nerovná třeba 12 něco z kódu bylo přeskočeno - coľ se stává poměrně dostkrát u méně zkuąených crackerů.
13. Nikdy nedávejte hned najevo, ľe se to cracker pokouąí cracknout - zkuste po tomto zjiątění např. shodit Váą program s chybovou hláąkou. Cracker si pak bude myslet, ľe něco ąpatně přepsal. (např takové ty hláąky Pamě» .... nemůľe být read, a konec.)
14. Pokud tvoříte časově omezenou verzi, nekotrnolujte čas podle času Windows, kontrolujte čas podle např. vytvoření nějakáho stálého souboru windows, nebo třeba autoexecu.
15. Nepiąte logický kód jako je např toto: If A = B Then; ale piątě uplně stupidní kód A = D, C = K, A = 65456BBB, If not d = 0 then if A = k then,... no prostě zytečny podmínky, zamotany a aľ zjistíte ľe se vtom nevyznáte skoro ani Vy, pak je to dobře. Cracker na tom nebude lépe
16. Nikdy nedávejte do omezené verze kód, který bude zpřístupněn po registraci. (pokud budete mít omezené ukládání, tak tam vůbec ten kód nedávejte.) Zkuąenějąí cracker si akorát přemostí volání na danou fci.
17. Kompilujte do P Code a pouľívejte EXE ąifréry (např. AS Pack apod.)
18. Registrační klíč nepouľívejte jen pro porovnávání, ale rovnou ho vyuľijte např. pro deąifrování zbytku kódu.
19. Snaľte se kombinovat vąechny druhy ochran
Vąímejte si, ľe při pouľití datové proměnné string se při porovnávání pouľívá velice dobře známá fce __vbaStrCmp (string, compare) - coľ znamená ľe se pouľijí standardní knihovny VB a tak je jednoduché algoritmus cracknout. Pokud vąak pouľijete následující datové typy: Byte, Currency, Double, Single nebo Integer, nebude vyuľita fce vbaStrCmp (!) a tudíľ neprochází ľádnou knihovnou. Algoritmus pro kontrolu je přímo umístěn v programu (takľe se nedají vyuľít breakpointy na vbastrcmp). jediná nevýhoda spočívá v datovém typu. Do Longu ascii nedáte...
Tento článek bude jeątě doplněn
2. Nikdy nekontrolujte stav jen jednou, vľdy kontrolujte např. seriový klíč klidně i po půl minutě.
3. Nikdy nepouľívejte totoľnou funkci pro kontrolu klíče - tzn. vľdy si vytvořte novou, prohaľte různě logiku apod.
4. Čím víc kontrolních funkcí, tím hůř pro crackera
5. Volání kotroly kliče nikdy nedávejte jako přímou odezvu určitého prvku (dá se velice dobře breakovat v debuggingu), aktivujte neprve třeba prvkem Timer s náhodným intervalem, ten pak aktivuje náhodně jinej a ten pak zavolá kontrolu. Tímto můľete crackera zmást.
6. Do kontrolního algoritmu dávejte spoustu zbytečného kódu
7. Nepouľívejte logicky pojmenované proměnné - např. SerioveCislo atd. Pohrajte si trochu s fantazii ;)
8. Do kotrolního algoritmu nedávejte ľádné poznámky.
9. Vyhodnocení zprvnávnost/nezprávnosti klíče nedávejte vědět ihned. Volejte zase například náhodný prvek nejlépe Timer s náhodným interval, který počítáte ąílenýma (tj. naprosto zbytečnýma počtama) počtama, který zobrazí zase náhodnou zprávu.
10. Nepouľívejte MSGBOX! Tato api jde jednoduąe sledovat a ihned po zavolání se dá zjistit co se dělo přední. Je velice jednoduché pak stopovat!
11. Nepouľívejte známé API, snaľte se napsat vlastní, pokud to nepůjde, tak doufejte ľe existují jiné. - Crackeři VB aplikací se ihned dívají po importovaných fcích a hned se dívají po vbaStrCMP (porovnávání) vbaMsgBoxA (náą milý MsgBox)
12. Dávejte do kontrolních algoritmů různé kontrolní součty, např. krok(i).hodnota = 1, pokud se součet nerovná třeba 12 něco z kódu bylo přeskočeno - coľ se stává poměrně dostkrát u méně zkuąených crackerů.
13. Nikdy nedávejte hned najevo, ľe se to cracker pokouąí cracknout - zkuste po tomto zjiątění např. shodit Váą program s chybovou hláąkou. Cracker si pak bude myslet, ľe něco ąpatně přepsal. (např takové ty hláąky Pamě» .... nemůľe být read, a konec.)
14. Pokud tvoříte časově omezenou verzi, nekotrnolujte čas podle času Windows, kontrolujte čas podle např. vytvoření nějakáho stálého souboru windows, nebo třeba autoexecu.
15. Nepiąte logický kód jako je např toto: If A = B Then; ale piątě uplně stupidní kód A = D, C = K, A = 65456BBB, If not d = 0 then if A = k then,... no prostě zytečny podmínky, zamotany a aľ zjistíte ľe se vtom nevyznáte skoro ani Vy, pak je to dobře. Cracker na tom nebude lépe
16. Nikdy nedávejte do omezené verze kód, který bude zpřístupněn po registraci. (pokud budete mít omezené ukládání, tak tam vůbec ten kód nedávejte.) Zkuąenějąí cracker si akorát přemostí volání na danou fci.
17. Kompilujte do P Code a pouľívejte EXE ąifréry (např. AS Pack apod.)
18. Registrační klíč nepouľívejte jen pro porovnávání, ale rovnou ho vyuľijte např. pro deąifrování zbytku kódu.
19. Snaľte se kombinovat vąechny druhy ochran
Tento článek bude jeątě doplněn