Dnes se podíváme na zoubek komponentám, které se snaží autorům shareware aplikací zajistit jejich ochranu před nelegálním používáním po uplynutí zkušební lhůty.
Předem je třeba konstatovat, že žádná ochrana není 100% a rozhodně nepočítejte s tím, že se vám podaří váš program dokonale zabezpečit. Obecné téma ochrany softwaru by zřejmě stačilo na nejeden samostatný článek, což není dnešním tématem. Shodněme se na tom, že ochrana softwaru většinou odolává jen nějakou dobu, než je prolomena. Má tedy cenu vůbec naše aplikace chránit? Zřejmě ano, protože pořád (doufejme) bude existovat velká skupina poctivých uživatelů, kteří rádi za užitečný program za rozumnou cenu zaplatí. Taková "ochrana" softwaru se pak sice stává spíše informačním dialogem, kolik dní ještě zbývá do konce zkušební doby, ale dnes představované komponenty si ani žádné větší ambice na komplikovanější ochranu nedělají. Jejich společným znakem je to, že si informace o registraci ukládají do registru Windows, čímž je poměrně jasně určen jejich princip, způsob fungování a zároveň také úroveň složitosti jejich překonání. V podstatě si pak před instalací či spuštěním takto chráněné aplikace stačí registry Windows zálohovat či ještě lépe použít nějakou k tomu určenou sledovací utilitu a po spuštění programu je pak hned jasné, na které místo registrů byla informace o datu instalace vašeho programu uložena. Tyto informace pak stačí vhodným způsobem editovat (či úplně smazat, podle typu zabezpečení) a ochrana je prolomena. Pro mírně zkušenějšího uživatele tedy poměrně snadný úkon, ale na člověka s menší znalostí systému může být tato ochrana účinná. Princip je to tedy poměrně primitivní, ale od freeware komponent nemůžete očekávat nějakou složitou ochranu. Existují sice i propracovanější způsoby ochrany, ale ty už obvykle naleznete v komponentách komerčních, které nejsou tématem našeho seriálu. Když jsme si tedy popsali způsob fungování ochrany i způsob jejího prolomení a máme tedy teď jasno o úrovni zabezpečení, přistupme k popisu samotných komponent.
SharewareCheck
Autorem této komponenty je Raoul Snyman a hned na začátku musím říct, že je opravdu velmi jednoduchá. V
Object Inspectoru nastavíte vlastně jen větev registrů a jméno klíče, kam bude uložen záznam o datu instalace (prvního spuštění) vašeho programu. Druhým parametrem je počet zkušebních dní, které uživatelům dáte k dispozici. A to je vše. Komponenta pak ještě samozřejmě obsahuje několik funkcí pro zjištění počtu zbývajících dní či zda již lhůta uplynula. Opravdu velmi jednoduchá komponenta a podobnou věc by jistě každý z vás dokázal naprogramovat sám skoro za pár minut, ale pro případ, že se vám nechce a že vám tyto základní funkce budou stačit, je komponenta pro vás.
www |
verze: 1.0 |
Delphi: 2-6 |
C++ Builder: 4 |
Regware
Druhá dnešní komponenta je již o dost propracovanější, i když základní princip ochrany pomocí registrů systému zůstává stejný. Autorem je Winston Kotzan a komponenta je dodána i včetně jednoduché nápovědy a ukázkového projektu. Nebudu popisovat složitě všechny vylepšené možnosti tohoto produktu, ale v krátkosti se dá říct, že program umí kromě základních funkcí předchozí komponenty též pracovat s různými druhy licencí, generovat unikátní sériová čísla na základě zadaného jména uživatele, částečně též omezit funkčnost programu na daný počítač kontrolou sériového čísla disku nebo licenčních čísel Windows. Komponenta by též měla být odolná vůči manuálnímu posouvání data ve Windows a do registrační procedury je vložena úmyslná sekundová prodleva k zamezení zkoušení kódů hrubou silou. Informace se ukládají v registrech relativně na "odlehlé místo" do větve
\Software\CLASSES\CLSID\, kde má každá takto chráněná aplikace své unikátní číslo
GUID (např.
{D1AA6D40-FB8F-11D5-8FF8-0040D005E5DC} a podobně), takže není přímo na očích a nezkušený uživatel nemá prakticky šanci tuto větev mezi množstvím těch ostatních nějak jednoznačně identifikovat. Než by riskoval poškození zcela jiných větví registru, pravděpodobně své pokusy o prolomení ochrany vzdá. Nic to nemění na tom, že úroveň ochrany zůstává stejná a proti byť jen o něco zkušenějšímu uživateli s příslušným softwarem dlouho neobstojí (viz. úvod článku).
Jako určitý zajímavý bonus k této komponentě dostanete též přiložen skript v jazyce Perl, který vám umožní na příslušném webovém serveru pomocí CGI (pokud třeba takový máte k dispozici) generovat uživatelům sériová čísla přímo online. To sice zřejmě nevyužije mnoho z vás, ale přesto je to rozhodně zajímavá funkce navíc.
www |
verze: 3.0 |
Delphi: 4-6 |
C++ Builder: ? |