Кстати. Слышал такое мнение, что защиту надо делать довольно простой, но в несколько уровней. Первый уровень защиты - проверка при каждом запуске. Легко обнаружить, легко взломать. Второй уровень - проверка раз в месяц или по другому знаковому событию. Например - после 150-го вывода на печать. Если не прошла проверка второго уровня - поперёк экрана большими буквами "ваша копия нелегальна и будет заблокирована" с контактами для оплаты. Этот пример приводили для бухгалтерских программ и защита второго уровня срабатывала в период квартальных отчётов. Идея, как минимум, интересная.