[英]How do I decompile a .NET EXE into readable C# source code?
幾年前我為一個客戶寫了一個 C# 的應用程序,但我已經沒有源代碼了。 我所擁有的只是部署在客戶 PC 上的 EXE。 有沒有辦法從 EXE 生成 C# 源代碼?
Reflector及其插件FileDisassembler 。
反射器將允許查看源代碼。 FileDisassembler 將允許您將其轉換為 VS 解決方案。
當 Red Gate 說不再有免費版本的 .Net Reflector 時,我開始使用ILSpy和 Telerik 的JustDecompile 。 我發現 ILSpy 比 JustDecompile(仍處於 Beta 版)更准確地反編譯。 Red Gate 改變了他們的決定,仍然有一個免費版本的 .Net Reflector,但現在我喜歡 ILSpy。
從 ILSpy 網站( https://github.com/icsharpcode/ILSpy/ ):
ILSpy是開源的 .NET 程序集瀏覽器和反編譯器。
更新:
2012年4月15日,ILSpy 2.0發布。 與 1.0 版相比的新特性:
更新:
Reflector 通常不再免費,但他們確實向開源開發人員免費提供: http : //reflectorblog.red-gate.com/2013/07/open-source/
但是像 DevExtras 和 JetBrains 這樣的一些公司已經創建了免費的替代品:
Reflector 和來自 Denis Bauer 的File Disassembler插件。 它實際上從程序集生成源項目,其中 Reflector 本身僅顯示反匯編的源。
Telerik JustDecompile是免費的,並且具有從 .NET 程序集創建項目的功能。
我很驚訝沒有人提到微軟的ildasm 。 它可能不如 ILSpy 或 Reflector 漂亮,但它隨 Visual Studio 一起提供,因此許多開發人員已經擁有它。
運行它(假設 VS 2013,其他版本應該類似):
現在您可以瀏覽 DLL 結構。 雙擊班級成員以查看 IL。 使用 File > Dump 將 IL 導出到文件。
你想要反射器。
現在有各種 .NET / C# 反編譯器可用(2022):
我更喜歡 ILSpy,因為它是免費的,OSS,非常快(與其他軟件相比),維護得很好,它甚至被 Visual Studio 使用,並且反編譯代碼是准確的。 這篇博文在 .NET 反編譯器的叢林中詳細解釋了所有這些 .NET 反編譯器。
我很驚訝沒有人提到dnSpy 。 dnSpy是一個調試器和 .NET 程序集編輯器。 即使您沒有任何可用的源代碼,您也可以使用它來編輯和調試程序集。
主要特點:
它是開源的,也是 dot net 中使用最廣泛的逆向工程工具之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.