Как мне декомпилировать .NET EXE-файл в читаемый исходный код на C #?

StackOverflow https://stackoverflow.com/questions/179741

Вопрос

Пару лет назад я написал приложение на C # для клиента, но у меня больше нет исходного кода.Все, что у меня есть, - это исполняемый файл, который я развернул на КОМПЬЮТЕРЕ клиента.Есть ли способ, которым я могу сгенерировать исходный код C # из EXE-файла?

Это было полезно?

Решение

Reflector и его надстройка FileDisassembler .

Reflector позволит увидеть исходный код. FileDisassembler позволит вам преобразовать его в решение VS.

Другие советы

Когда Red Gate сказали, что бесплатной версии .Net Reflector больше не будет, я начал использовать ИЛСпи и у Телерика Просто декомпилируйте.Я обнаружил, что ILSpy декомпилирует более точно, чем JustDecompile (который все еще находится в бета-версии).Red Gate изменили свое решение и по-прежнему имеют бесплатную версию .Net Reflector, но теперь мне нравится ILSpy.

С веб - сайта ILSpy (http://www.ilspy.net/):

ИЛСпи является открытым исходным кодом.Браузер NET assembly и декомпилятор.

Особенности ILSpy

  • Просмотр сборки
  • IL Разборка
  • Декомпиляция на C#
  • Поддерживает лямбды и "yield return"
  • Показывает XML-документацию
  • Экономия ресурсов
  • Поиск типов/методов/ свойств (подстрока)
  • Навигация по типу / методу/ свойству на основе гиперссылок
  • Навигация по базовым / производным типам
  • История навигации
  • Декомпилятор BAML в XAML
  • Сохраните сборку как проект C #
  • Найти использование поля / метода
  • Расширяемый с помощью плагинов (MEF)

Обновить:

15 апреля 2012 года был выпущен ILSpy 2.0.Новые функции по сравнению с версией 1.0:

  • Списки сборок
  • Поддержка декомпиляции деревьев выражений
  • Поддержка отмененных операций с нулевыми значениями
  • Декомпилировать в Visual Basic
  • Поиск нескольких строк, разделенных пробелом (при поиске "Assembly manager" в ILSpy.exe вы найдете AssemblyListManager)
  • Щелчок по локальной переменной выделит все другие вхождения этой переменной
  • Ctrl + F можно использовать для поиска в представлении декомпилированного кода

Обновить:

  • ILSpy 2.1 поддерживает асинхронную / ожидающую декомпиляцию

Reflector больше не является бесплатным в целом, но они предлагают его бесплатно для разработчиков с открытым исходным кодом: http://reflectorblog.red-gate.com/2013/07/open-source/

Но несколько компаний, таких как DevExtras и JetBrains, создали бесплатные альтернативы:

DevExtras CodeReflect

JetBrains DotPeek

Reflector и Файловый дизассемблер от Дениса Бауэра. Он фактически создает исходные проекты из сборок, где Reflector самостоятельно отображает только разобранный источник.

ДОБАВЛЕНО: мой последний фаворит - это dotPeek JetBrains .

Telerik JustDecompile бесплатен и имеет функцию для создания проектов из сборок .NET.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top