Anton писал(а):Считаю что реально наилучшим способом будет - вынос в ключ всего что только возможно вынести.
Касательно многопользовательских приложений, к коду, который должен быть вынесен, предъявляется ряд требований:
1. Трудно угадать, что этот код делает.
2. Небольшой объем обрабатывваемых данных.
3. За время выполнения программы защищенный код вызывается обязательно, но не часто (это ограничение накладывает количество пользователей).
Как было сказано выше
markusha писал(а):Особо критичных алгоритмов, ноу-хау которые достаточно было бы убрать в ключ в нем мало. Там больше интерфейса пользователя, нежели математики.
У меня такая же беда. Есть правда "нереально хитрые алгоритмы, составляющие изюминку приложения" о которых много уже было сказано, но залить их в ключ не представляется возможным - недостаточные физические возможности ключа и его внутренней ОС.
Приходится изощряться, в ущерб своему времени (т.е. стоимости программы), и в ущерб надежности защиты.
Слова "не надо нервничать" хорошо помогают привести человека в нормальное состояние бешенства.