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