В какой-то программе видел гениальный алгоритм "защиты":
Код:
Key := Edit1.Text;
if (Key = 'бла-бла-бла-мега-сложный-ключ') or
(Key = 'бла-бла-бла-супер-сложный-ключ') or
(Key = 'ваще-неубиваемый-ключ') or
....
(Key = 'очередной-крутой-ключ') then
//... активировано
else
//... не активировано
И самое интересное, что этот продукт ведь кто-то покупал. Просто потому, что он был относительно дешевый.
Для самописных программ можно сделать и нечто подобное. С расчетом на то, что почти все, увидев окошко активации, сразу пойдут покупать.
З.Ы. разумеется, такая защита обходится за 2 минуты (1 из которых занимает запуск дизассемблера)