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

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

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

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

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

Пока самый подходящий вариант — вынести какой-то критичный кусок в отдельное приложение на C++ и его защитить по-нормальному. Проблема — сложно найти такой кусок, особенно учитывая, что работа с ключом медленная.
Re: Защита приложения на C# с помощью USB-ключа
От: V.Petrovski Беларусь  
Дата: 09.06.05 08:41
Оценка: +1 :)
Здравствуйте, N1ghtblade, Вы писали:

[skipped]

Все перечисленные вами способы защиты .NET даже защитой нельзя назвать.
Обфускация и вынос кода проверки в С++ это все лажа.
Вот если бы весь код или большая его часть была на С++, а на C# была написана только морда, тогда ДА.

Вот посмотри здесь
Автор: oRover
Дата: 20.02.04
. Ветка старая, но обсуждалось многое.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Защита приложения на C# с помощью USB-ключа
От: Аноним  
Дата: 09.06.05 13:27
Оценка:
Здравствуйте, N1ghtblade, Вы писали:

N>Здравствуйте!





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


Попробуй часть очень ВАЖНОГО кода поместить в сам USB-ключ.
В этом случае будет гораздо труднее сломать программу.
Защита приложения на C# с помощью USB-ключа
От: Аноним  
Дата: 09.06.05 20:59
Оценка:
Я бы на вашем месте разделил программу на "загрузчик" и "основную часть". Основную часть поставлял бы в зашифрованном виде в отдельной сборке.
При запуске загрузчик расшифровывал бы сборку с основной частью и запускал её.

Таким образом, без ключа становится невозможно получить доступ к самому коду приложения, не говоря уже о том, чтобы исправить его.

Данная информация предоставляется на условиях «КАК ЕСТЬ», без предоставления каких-либо гарантий и прав. Используя данную информацию, вы соглашаетесь с тем, что (i) Майкрософт не несет ответственности за использование вами данной информации и (ii) вы принимаете на себя весь риск, связанный с использованием данной информации.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.