Практика сокрытия исполняемого кода скомпилированных приложений - PullRequest
3 голосов
/ 25 января 2010

Это стандартная практика декомпиляции и обратного проектирования сборок .net.

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

Как можно скрыть источник этих сборок?

Ответы [ 6 ]

15 голосов
/ 25 января 2010

Теоретически невозможно достичь 100% защиты, если вы не контролируете целевое оборудование. Если процессор способен выполнить его, если у него достаточно времени и знаний, человек тоже может его прочитать. Это даже не ограничивается C # (хотя это обычно проще в управляемых языках). Вы можете использовать обфускатор, такой как Dotfuscator или XenoCode, чтобы усложнить понимание декомпилированного кода. Если вы действительно обеспокоены, вам следует перейти на серверное приложение.

2 голосов
/ 25 января 2010

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

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

0 голосов
/ 29 мая 2010

По крайней мере, вы должны запутать свои dll, чтобы не дать хакерам и конкурентам возможности просматривать и понимать ваш код. Обфускация не на 100% надежна, но представляет собой достаточно большое препятствие на их пути.

Некоторые обфускаторы, такие как Crypto Obfuscator имеют функцию встраивания всех dll в основной exe, поэтому ваши dll не видны явно и доступны на диске для открытия в инструментах обратного проектирования, таких как Reflector.

0 голосов
/ 25 января 2010

Существует способ скрыть данные, который называется стеганография . Есть автор ряда статей, посвященных CodeProject , который написал фреймворк для этого. Название статьи «Стеганография» в серии от 1 до 12, я думаю. Это веб-сайт , связанный с автором.

Существует также обфускатор 'Phoenix Protector', найденный здесь , который может запутывать код .NET, лично я его не пробовал, но звучит хорошо.

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

0 голосов
/ 25 января 2010

Вы можете написать приложение, которое будет размещать CLR, используя CLR COM api , таким образом вы можете сначала загрузить и декодировать сборку на уровне собственного кода. Если вы усиливаете встроенный загрузчик, используя несколько методов обратного инжиниринга , вы можете добиться достаточно хорошей безопасности.

0 голосов
/ 25 января 2010

Это программное обеспечение; все возможно. Вы можете зашифровать свои двоичные файлы, а затем расшифровать все или часть из них в своем приложении во время выполнения. Это не надежно, но решать вам, насколько суровым вы хотите быть.

...