編譯和反編譯
.NET 中的編譯是把開發人員寫的 C# 代碼轉化為計算機可理解的代碼的過程,也就是中間語言代碼(IL代碼)。在這個過程中,C# 源代碼被轉換為可執行文件(exe或者dll 文件)。
反編譯則和編譯相反,它是把可執行文件的 IL 代碼轉換為源代碼,這樣可以對軟件方便進行分析,理解以及修改。
下面是幾個流行的 .NET 反編譯工具。
Ildasm.exe
Ildasm.exe 是一個免費的反編譯工具,當您安裝了 Visual Studio 開發工具之后,Ildasm.exe 會自動安裝。
你可以在下面的目錄中找到這個工具。
C:Program Files (x86)Microsoft SDKswindowsv7.0Abin
IlSpy .NET
ILSpy 是一個開源免費的反編譯工具, 在 github 上面有 15k 的 star。
可以反編譯 C# ,包括整個項目的反編譯,并且 ILSpy 支持集成在 Visual Studio 開發工具中。
另外 ILSpy 也上架了微軟應用商店。
Github:https://github.com/DNSpy/dnSpy
DnSpy
DnSpy 也是一個開源免費的 .NET 反編譯工具,支持 C#、VB、F# 代碼等,支持 .NET Core 和 .NET Framework。
DnSpy 擁有現代化的 UI 界面,包括藍色、淺色和深色主題。
Github: https://github.com/dnSpy/dnSpy
JetBrains dotPeek
dotPeek 可以把任何 .NET 程序集反編譯為等效的 C# 代碼,由 JetBrains 公司開發,軟件是免費的并且功能豐富。
同時 dotPeek 也支持和 Visual Studio 一樣的一組顏色主題。
還可以可視化查看程序集之間的依賴關系。
您最喜歡使用哪個反編譯工具呢?
文章來源于半棧程序員 ,作者等天黑