Я написав заявку на C # для клієнта пару років тому, але у мене більше немає вихідного коду. Все, що у мене є, це EXE, який я розгорнув на комп'ютері клієнта. Чи є спосіб я згенерувати вихідний код C # з EXE?
Я написав заявку на C # для клієнта пару років тому, але у мене більше немає вихідного коду. Все, що у мене є, це EXE, який я розгорнув на комп'ютері клієнта. Чи є спосіб я згенерувати вихідний код C # з EXE?
Відповіді:
Рефлектор та його надбудова FileDisassembler .
Рефлектор дозволить побачити вихідний код. FileDisassembler дозволить вам перетворити його у рішення VS.
Коли Red Gate сказав , що більше не буде представляти собою безкоштовну версію .Net Reflector, я почав використовувати ILSpy і Telerik в JustDecompile . Я виявив, що ILSpy декомпілюється точніше, ніж JustDecompile (який все ще знаходиться в бета-версії). Red Gate змінили своє рішення і досі мають безкоштовну версію .Net Reflector, але зараз мені подобається ILSpy.
З веб-сайту ILSpy ( https://github.com/icsharpcode/ILSpy/ ):
ILSpy - це браузер з відкритим кодом .NET- збірника з відкритим кодом та декомпілятор.
Оновлення:
15 квітня 2012 року було випущено ILSpy 2.0. Нові функції порівняно з версією 1.0:
Оновлення:
Reflector більше не безкоштовний, але вони пропонують його безкоштовно для розробників з відкритим кодом: http://reflectorblog.red-gate.com/2013/07/open-source/
Але кілька компаній, як DevExtras та JetBrains, створили безкоштовні альтернативи:
Рефлектор та надбудова розбірника файлів від Дениса Бауера. Він фактично виробляє вихідні проекти з збірок, де Reflector самостійно відображає лише розібране джерело.
ДОБАВЛЕНО: Мій останній улюблений - dotPeek JetBrains .
Telerik JustDecompile безкоштовний і має можливість створювати проекти з .NET збірок.
Я здивований, що ніхто не згадав ілдазм Microsoft . Це може бути не так красиво, як ILSpy або Reflector, але він поставляється з Visual Studio, тому багато розробників вже мають його.
Для його запуску (припустимо, VS 2013 має бути подібним для інших версій):
Тепер ви можете орієнтуватися в структурі DLL. Двічі клацніть на членах класу, щоб побачити ІЛ. Використовуйте Файл> Дамп, щоб експортувати IL у файл.
Ви хочете рефлектор .