Как мне декомпилировать .NET EXE-файл в читаемый исходный код на C #?
-
05-07-2019 - |
Вопрос
Пару лет назад я написал приложение на 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, создали бесплатные альтернативы:
Reflector и Файловый дизассемблер от Дениса Бауэра. Он фактически создает исходные проекты из сборок, где Reflector самостоятельно отображает только разобранный источник.
ДОБАВЛЕНО: мой последний фаворит - это dotPeek JetBrains .
Telerik JustDecompile бесплатен и имеет функцию для создания проектов из сборок .NET.
Я удивлен, что никто не упомянул ildasm Microsoft. / а> . Он может быть не таким красивым, как ILSpy или Reflector, но он поставляется с Visual Studio, так что многие разработчики уже имеют его.
Для его запуска (при условии, что VS 2013 должен быть аналогичным для других версий):
<Ол>Теперь вы можете перемещаться по структуре DLL. Дважды щелкните по ученикам, чтобы увидеть IL. Использовать файл > Дамп для экспорта IL в файл.
Вам нужен отражатель .