目錄
- 前言
- 一、使用 ildasm 反編譯 dll 檔案
- 二、使用 ilasm 將il檔案編譯成 dll 或 exe 檔案
前言
文字講述怎麼透過 ildasm 工具將 dll 檔案進行反編譯為 il 檔案,修改 il 檔案後再如何透過 ilasm 工具將 il 檔案反編譯成 dll 或 exe 檔案。ildasm工具:用於將dll檔案反編譯成可讀的 il 檔案(il是.NET框架中中間語言的縮寫)
ilasm工具:用於將il檔案編譯成可執行的dll或exe檔案
首先你安裝了 Visual Studio 開發工具它會自帶這兩個工具,不安裝的話可能會找不到,這兩個工具和.NET框架開發語言的編譯和反編譯有關。
一、使用 ildasm 反編譯 dll 檔案
1.雙擊ildasm.exe執行ildasm工具。
ildasm 工具位置:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe
2.把要反編譯的 dll 檔案開啟或拖入執行的 ildasm 裡
點選節點可以看到所有的類和方法
3.如果 il 檔案拖到 ildasm 裡提示 “受保護的模組 - - 無法進行反編譯”
簡單來說就是你的 il 檔案裡有 SuppressIldasmAttribute 相關程式碼,ildasm 檢測到了這個程式碼就不反編譯了。
解決辦法:先把 ildasm.exe 備份一下,然後使用 WinHex 把 ildasm.exe裡的 SuppressIldasmAttribute 去除。
操作步驟:
(1)下載WinHex WinHex (連結:https://pan.baidu.com/s/17LYCOuPJaxo_70q4fua4eQ 提取碼:ej5b)
(2) 把C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\下的 ildasm.exe 拖進 WinHex 裡,搜尋SuppressIldasmAttribute 字串,然後把 SuppressIldasmAttribute 隨便改成其他的字串,比如aaa啥的,下圖改成了TianFangIldasmAttribute 。
(3)儲存下,然後再把 il 檔案拖到 ildasm 裡就不會提示“受保護的模組 - - 無法進行反編譯”了。
4.把要反編譯的 dll 檔案轉儲為il檔案點選檔案選擇轉儲,點選確定,選擇轉換後位置和輸入轉換後的檔名(最好和dll檔名保持一致)。儲存後就得到了一個反編譯後的 il 檔案格式的檔案,你可以用常見的文字編輯器(記事本)開啟並進行編輯和修改。
二、使用 ilasm 將il檔案編譯成 dll 或 exe 檔案
透過上面的步驟得到了反編譯的 il 檔案,將修改好了 il 檔案,可以透過使用 ilasm 工具將 il 檔案編譯成 dll或 exex 檔案。介紹下 ilasm 工具位置:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe
1.透過cmd 命令列進入il 檔案所在目錄,然後在cmd中輸入類似如下命令轉換為dll檔案:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ilasm.exe SDKDemo.il /output=SDKDemo.dll /dll
備註:該命令呼叫 ilasm.exe 程式把當前目錄的 SDKDemo.il 檔案編譯成SDKDemo.dll並輸出到當前目錄,也可以改成需要的檔名和輸出檔名。最終將得到了編譯好後的 dll 檔案。