dnSpy 官網下載:https://github.com/0xd4d/dnSpy/releases
運行需要 .NET Framework 4 環境:https://dotnet.microsoft.com/download/visual-studio-sdks
具體操作步驟如下所示:
1.添加系統環境變量,COMPLUS_ZapDisable = 1 2.如果需要調試 IIS 進程,可進入 C:\Windows\System32\inetsrv 目錄執行 appcmd list wp 查看對應的應用程序池進程 ID 3.打開 dnspy,調試 --> 附加到進程 --> 選擇相應的進程 ID --> 附加 4.調試 --> 窗口 --> 模塊 --> 搜索要調試的程序集 --> 雙擊 5.在程序集資源管理器找到要調試的類打開,打斷點即可 6.右鍵要修改的類文件 --> 編輯類/方法 --> 修改類 --> 編譯 7.文件 --> 保存模塊 --> 選擇要保存的路徑 --> 保存 8.將保存的重新編譯的程序集替換到目標路徑即可 9.執行 iisreset(若為 IIS 應用)
cmd 命令
# 設置系統環境變量 setx /M COMPLUS_ZapDisable 1
獲取 IIS 應用程序池進程 ID
附加到進程並打斷點
修改代碼,重新編譯並保存模塊
關於異常捕捉中斷
調試過程中出現的異常,dnSpy 默認不會自動中斷的,需要自行設置異常中斷條件。比如:要捕捉
NullReferenceException
,那么請打開異常設置窗口(調試->窗口->異常設置)進行設置,如下圖所示:

關於反編譯修改代碼后無法保存
有時候會因為反編譯后某些字段不規范的原因無法保存,這時候可以嘗試使用 16 進制編輯保存

會直接跳轉到要光標部分位置,修改后 ctrl + s 保存即可