Можно ли декомпилировать все приложение .NET? - PullRequest
5 голосов
/ 23 июня 2010

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

однако мой вопрос - реально ли декомпилировать все приложение?

Я имею в виду - создать работоспособное решение VS , чтобы пират мог просто нажать F5 и получить точно такой же результат, как если бы автор на его машине?

Ответы [ 6 ]

4 голосов
/ 23 июня 2010

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

http://www.denisbauer.com/home/reflectorfiledisassembler

http://filegenreflector.codeplex.com/

Но я не уверен, что смогу создать проектфайл.

1 голос
/ 07 июля 2012

Да, вы просто экспортируете из Reflector и получаете готовый для запуска проект для своей сборки.Я сделал это пару раз.Обычно мне приходится переносить проект на мою версию VS, и иногда требуется несколько небольших исправлений, но в целом это работает.

1 голос
/ 23 июня 2010

В наши дни существует множество обфускаторов, защищающих ваши .NET-приложения от декомпиляции. Одним из таких обфускаторов является http://www.red -gate.com / products / smartassembly / index.htm . Они пытаются превратить ваш хорошо структурированный код .NET IL в код spegatti (который все еще работает), чтобы декомпиляторы не могли генерировать оригинальный код. Это не значит, что пираты не могут получить перекомпилируемый код на 100%, но им будет нелегко декомпилировать при использовании обфускатора.

1 голос
/ 23 июня 2010

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

К счастью, я не беспокоюсь об этом , что много .

1 голос
/ 23 июня 2010

Это действительно зависит от того, какой код вы пишете. Если вы используете много новых функций в C # 3 и выше, таких как лямбда-выражения, автоматические свойства и yield, декомпилированный исходный код не будет работать и для его компиляции потребуется немало усилий.

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

1 голос
/ 23 июня 2010

Для небольшого применения это возможно и возможно.Вы должны декомпилировать классы один за другим и копировать / вставлять код в Visual Studio.

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

...