您好,登錄后才能下訂單哦!
ILSpy反編譯工具的使用
本文導讀:ILSpy反編譯工具的使用。不過,ILspy需要在電腦上安裝.NET Framework 4.0。ILspy可以將一個dll文件轉換為C#或VB語言。ILspy對于單個文件可以保存為.cs文件或.vb文件,當文件較多時,可以選擇保存為項目文件。C#語句可被ILspy反編譯出來,并可支持yield return語句和 lambdas表達式的反編譯。
文件結構截圖
ILspy的界面截圖
ILSpy的界面與Reflector相似,左邊以樹型控件顯示程序集和它的類型,右邊是對應的源代碼。基礎的反編譯功能,與Reflector相比,絲毫不差,甚至有時候用Reflector無法反編譯(因為加密)的程序集,用ILSpy可以反編譯。
ILspy需要在電腦上安裝.NET Framework 4.0.
ILspy常用的幾個功能
基礎的類型反編譯功能都具備
現在只支持把源代碼反編譯為C#和IL語言,不支持VB。
ILSpy的代碼保存功能
當點擊一個類型時,選擇File->Save Code會反編譯當前的類型并保存到指定的文件中,當選擇程序集時,Save Code保存為一個項目(csproj)文件,并且把它所有的類型加到這個項目中。
ILSpy的調試器功能
這里要說的調試器,不是指Visual Studio的源碼級別的調試器,而是指程序集的調試器。Reflector有個Addin,可以直接附加在Visual Studio中,調試第三方的類型庫,而不需要把第三方的類型庫反編譯后,以源碼的形式添加到項目中。
ILSpy也有這個功能,直接對第三方的程序集進行調試,有兩種選項
如果第三方類型庫是可執行程序(EXE),可以用Debug an executable來啟動這個程序。
如果第三方類型庫是程序集(DLL),可以用Attach to running application來附加,以啟動程序集的調試。
從上圖中已經可以看出它的用法,和調試源代碼一樣。在需要監視變量值的方法的地方,設置斷點,當程序運行到此時,就可以通過監視窗體來觀察變量的值。
這兩者的區別是,Attach to a running application調試時,如果代碼經過編譯器優化,則監視器會無法得到它的值。
如圖所示,無法顯示正在調試的變量num的值,因為代碼已經經過優化。官方推薦的方式是Debug an executable
與在Visual Studio中調試.NET源代碼一樣,你可以Step into,Step over,continue,同時狀態欄會顯示就緒(stand by),運行中(running),正在調試(debugging)。
除了調試程序集的C#/VB形式的代碼之外,也可以以IL代碼形式調試,如下圖所示
ILSpy的debugger是以插件形式存在的,請確保包含ILSpy.Debugger的Plugin。
不過調試.NET程序集一定需要PDB文件才可以。然而ILSpy卻沒有產生PDB文件(no PDB files are generated),而且它不可以調試ASP.NET Web application和Web 服務。
軟件下載地址:http://down.51cto.com/data/2455152
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。