а вообще - для защиты серьезного ПО используют MCFACT
Сейчас вот попалось на глаза. Может будет интересно, раз упоминал выше о защите Steinberg Cubase 5. Цитаты с трекера.
Кусок из интервью со взломщиками
В: Но нам пришлось чертовски долго ждать этот релиз - Почему?
О: Было потрачено большое количество времени, чтобы изучить и обойти нынешнюю Syncrosoft защиту. Сами подумайте: около 25 процентов програмного кода охраняются MCFACT* и, следовательно, связаны с защитой. Как вы можете догадаться, усилия, приложенные для обхода такой защиты, требовались немалые. На этот раз нам потребовалось почти 4000 человеко-часов, чтобы справиться с этим "зверем"!
Там же пояснения
MCFACT - Multi-Channel-Finite-Automata-Code-Transformation метод защиты кода программ и данных за счет преобразования их в конечный автомат. Преобразованный код программы в состоянии обработать зашифрованный код программы, без расшифровки данных. Ни преобразованный код программы, ни какие-либо данные не расшифровываются до, во время или после выполнения операции.
Обработка зашифрованных данных, без расшифровки во время выполнения, преобразованный код программы выполняется виртуальной единицей обработки. Конечные автоматы выполняют фактическую операцию и шифрование операции в один заход. Состав конечных автоматов гарантирует, что никакие промежуточные простые данные или информация об операции не могут быть восстановлены.
MCFACT препятствует тому, чтобы хакер получил полное представление о защищенном коде программы и защищенных данных, через наблюдение за поведением программы во время ее выполнения. Программный код преобразован в большие таблицы конечных автоматов. Хакер не может перепроектировать таблицы конечных автоматов, потому что обратное преобразование конечных автоматов в программный код привело бы к разрушению конечных автоматов, это является тяжелой математической проблемой.
Если хакер хочет взломать таблицы автоматов, он вынужден анализировать большой многоканальный конечный автомат. Опыт взлома больших конечных автоматов был получен например, анализом Китайского алгоритма открытого ключа FAPKC (Finite Automaton Public Key Cryptosystem). Одна из версий этого алгоритма была сломана за счет полного изменения открытого ключа. Однако, сегодня нет никакого известного подхода (теперь уже есть))), чтобы сломать этот алгоритм, используя декомпозицию. Реверсинг (реверс-инжиниринг) не является проблемой безопасности для MCFACT, никакая информация о внутренней структуре не может быть получена, используя этот подход.
P.S. Это очень вольный перевод, но думаю понятно что сломать все это было очень сложно!