Защита приложения на C# с помощью USB-ключа
От: N1ghtblade  
Дата: 09.06.05 08:18
Оценка:
Здравствуйте!

У меня следующая проблема. Есть приложение на C#, есть комплект разработчика с USB-ключем, в котором аппаратно реализованы алгоритмы шифрования. Из С# с ним можно работать через dll. Нужно защитить приложение от копирования, чтобы оно не работало без ключа. Чтобы стоимость взлома превышала стоимость приложения (2000 $)

Поискал на разных форумах, но пока приемлимого ответа не нашел.
Если вставлять в разные места кода проверки ключа, то их элементарно найти и заменить на нужный результат проверки. Даже после обфускации.

Видел советы — подписать сборку с помощью strong name. Но так и не понял пока, чем это может помочь.

Еще видел совет — генерировать часть IL-кода на лету. Идея интересная. Тогда его можно хранить в зашифрованном файле и при выполнении приложения расшифровывать, компилировать и запускать. Но тогда можно отследить какой IL-код получается при расшифровке и заменить вызов шифровнанного кода из файла — самим кодом. Можно ли как-то от этого защититься?

Пока самый подходящий вариант — вынести какой-то критичный кусок в отдельное приложение на C++ и его защитить по-нормальному. Проблема — сложно найти такой кусок, особенно учитывая, что работа с ключом медленная.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.