Может кто-нибудь декомпилировать мое приложение C # и переопределить механизм защиты? - PullRequest
3 голосов
/ 28 ноября 2011

Если я создаю приложение на C #, которое имеет механизм ограничения количества рабочих станций, обращающихся к базе данных, что мешает кому-то декомпилировать приложение, изменять код для этого механизма, перекомпилировать его и затем развертывать в своих системах?

Ответы [ 5 ]

9 голосов
/ 28 ноября 2011

Потенциально ничего, однако вы можете увеличить усилия и уменьшить выгоду от такого рода вещей:

  1. Создание простой, удобной в использовании системы лицензирования.
  2. Не перегружайте для вашего продукта.
  3. Подпишите свои сборки (хотя это может быть удалены).
  4. Скрыть / запутать количество рабочих станций в вашем коде (например, используйте восьмеричное число и не делайте сообщение об ошибке легко найти в коде).
  5. запутать всю сборку (хорошая будет предотвратить полную декомпиляцию).
3 голосов
/ 28 ноября 2011

Да, такие инструменты, как Reflector могут декомпилировать вашу программу на C #, а затем Reflector.FileDisassembler может даже вернуть ваш источник.

Я настоятельно рекомендую прочитать статью HRH Джона Скитса об обфускации и декомпиляции .NET: http://www.yoda.arachsys.com/csharp/obfuscation.html

Для .net (и даже Java, у которой есть похожие проблемы) есть обфускаторы . Visual Studio поставляется с общедоступной версией Dotfuscator, однако есть catch :

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

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

Как описывает статья Джона, вопрос баланса, и никакое программное обеспечение не является по-настоящему безопасным.

1 голос
/ 28 ноября 2011
0 голосов
/ 28 ноября 2011

Вы можете сделать сборку со строгим именем, подписав ее.

0 голосов
/ 28 ноября 2011

Вы можете использовать обфускатор, чтобы предотвратить это.Obfuscator сделает ваш байт-код очень запутанным и нечитаемым, и поэтому будет довольно сложно декомпилировать вашу программу и найти код авторизации.Но, конечно, как и в любой другой программе, эта защита может быть побеждена.

...