Как мне декомпилировать a.NET EXE в читаемый исходный код C#?
Я написал на C# приложение для клиента пару лет назад, но у меня больше нет исходного кода. Все, что у меня есть, это EXE, который я развернул на ПК клиента. Есть ли способ, которым я могу генерировать исходный код C# из EXE?
7 ответов:
отражатель и в FileDisassembler.
рефлектор позволит увидеть исходный код. FileDisassembler позволит вам преобразовать его в решение VS.
когда Red Gate сказал, что больше не будет бесплатной версии .NET Reflector, я начал использовать ILSpy и JustDecompile. Я нашел ILSpy для декомпиляции более точно, чем JustDecompile (который все еще находится в бета-версии). Red Gate изменили свое решение и до сих пор имеют бесплатную версию .Net Reflector, но теперь мне нравится ILSpy.
с сайта ILSpy (http://www.ilspy.net/):
ILSpy - это браузер и декомпилятор сборок .NET с открытым исходным кодом.
ILSpy Особенности
- просмотр Собрания
- IL разборка
- Декомпиляция на C#
- поддерживает лямбды и "доходность"
- показывает XML-документацию
- экономия ресурсов
- Поиск типов/методов/свойств (подстрока)
- гиперссылка на основе типа/метода / свойства навигации
- Базовый/Производный типы навигации
- навигация история
- BAML в XAML декомпилятор
- сохранить сборку как Проект C#
- найти использование поля/метода
- расширяемый через плагины (MEF)
обновление:
15 апреля 2012 года был выпущен ILSpy 2.0. Новые возможности по сравнению с версией 1.0:
- Списки Сборки
- поддержка декомпиляции выражения деревья
- поддержка поднятых операторов на nullables
- декомпилировать в Visual Basic
- поиск нескольких строк, разделенных пробелом (поиск "Assembly manager" в ILSpy.exe найдет AssemblyListManager)
- щелчок по локальной переменной выделит все остальные вхождения этой переменной
- Ctrl+F можно использовать для поиска в декомпилированном коде посмотреть
обновление:
- ILSpy 2.1 поддерживает асинхронную / ожидающую декомпиляцию
рефлектор больше не является бесплатным в целом, но они предлагают его бесплатно для разработчиков с открытым исходным кодом:http://reflectorblog.red-gate.com/2013/07/open-source/
но несколько компаний, таких как DevExtras и JetBrains создали бесплатные альтернативы:
отражатель и Файл Дизассемблер надстройка от Дениса Бауэра. Он фактически производит исходные проекты из сборок, где рефлектор сам по себе отображает только разобранный источник.
добавлено: мой последний любимый JetBrains' dotPeek.
Telerik JustDecompile является бесплатным и имеет возможность создавать проекты из сборок .NET.
Я удивлен, что никто не упомянул Microsoft ildasm. Это может быть не так красиво, как ILSpy или Reflector, но он поставляется с Visual Studio, поэтому многие разработчики уже имеют его.
чтобы запустить его (предполагая, что VS 2013, должен быть похож на другие версии):
- Выберите Пуск > Все Программы > Visual Studio 2013 > Инструменты Visual Studio.
- дважды щелкните на командной строке разработчика для VS2013.
- Run " ildasm" из результирующей командной строки.
- в инструменте выберите Файл > Открыть и откройте исполняемый файл или DLL.
теперь вы можете перемещаться по структуре DLL. Дважды щелкните на членах класса, чтобы увидеть IL. Используйте File > Dump для экспорта IL в файл.
вы хотите отражатель.