https://github.com/0xd4d/dnSpy
https://github.com/0xd4d/dnSpy/releases/
dnSpy是反向工程.NET程序集的工具。它包括一個反編譯器,一個調試器和一個程序集編輯器(和更多),可以通過編寫自己的擴展名來輕松地擴展。它使用dnlib來讀取和寫入程序集,因此它可以處理混淆的程序集(例如惡意軟件)而不會崩潰。
二進制
或者從源代碼構建,請參閱Wiki。
特征
- 開源(GPLv3)和免費永遠(:TM :)
- 裝配編輯器
- 使用C#或Visual Basic編輯任何方法,屬性和事件
- 代碼編輯器具有IntelliSense(代碼完成,簽名幫助,快速信息)
- 可以通過添加C#和Visual Basic代碼將整個類添加到程序集中
- 編輯類型(類),方法,屬性,事件和字段的所有元數據
- 添加,刪除,重命名任何類型(類),方法,屬性,事件,字段
- 編輯,添加,刪除.NET資源並將其保存到磁盤
- IL編輯器允許在IL級編輯方法體:IL指令,本地人,異常處理程序
- 調試器
- 調試任何.NET程序集,不需要源代碼
- 在任何程序集中設置斷點,包括框架程序集,GAC中的程序集和只存在於內存中的程序集
- 內存窗口
- 輸出窗口
- 附加到進程
- 當地人的窗口
- 本地人的原始內容(例如解密的字節數組)可以保存到磁盤
- 調用堆棧窗口
- 線程窗口
- 模塊窗口
- 模塊(例如,解密的內存模塊)可以保存到磁盤
- 異常設置
- 可以調試動態程序集
- 支持調試CoreCLR程序集
- 解碼到C#,Visual Basic,IL
- 主題:藍色,黑暗,淺色(和高對比度)
- 支持較小的屏幕(例如筆記本電腦)
- 線高可以針對較小的屏幕進行優化
- 空白和非字母數字線是正常高度的75%
- 行之間沒有額外的間距(每行保存1個垂直像素)
- 菜單和工具欄共享同一行
- 全屏模式(Shift + Alt + Enter)保存一些垂直像素
- 線高可以針對較小的屏幕進行優化
- 高DPI支持和每個監視DPI感知
- 翻譯成幾種語言
- 高度可擴展
- 編寫自己的擴展名並添加自己的功能
- 所有主要功能都已經是擴展(程序集編輯器,調試器,反編譯器)
- 多個選項卡和選項卡組
- 你的屏幕太大了?不要把它削減一半,添加另一個垂直的標簽組,一次讀兩個類!
- 文本編輯器中的選項卡和位置在您關閉dnSpy並在啟動時恢復時保存,以便您可以繼續停止
- 搜索程序集
- 搜索類型(類),方法,屬性,事件和字段
- 在代碼中搜索字符串或數字
- 裝配分析儀
- 查找類型(類),方法,屬性,事件和字段的用法
- BAML到XAML反編譯器
- 快速
- 突出顯示的引用,關鍵字
- 突出顯示插入符號下的引用,以便在代碼中更容易查看引用的所有用途
- 標簽,Shift + Tab,Ctrl + Shift +向上,Ctrl + Shift +向下移動到下一個或上一個引用
- Alt + Down和Alt + Up移至下一個或以前的定義(類型(類),方法,屬性,事件,字段)
- 結構可視化
- 在代碼塊的開始和結束之間顯示的垂直引導線
- 不同的顏色用於不同的塊,例如。循環,條件,方法等
- dnlib用於讀取和寫入程序集,因此可以處理混淆的代碼(例如惡意軟件)而不會崩潰
- 轉到命令:
- 入口點
- 匯編靜態初始化方法(<Module> .. cctor)
- 任何元數據令牌
- 任何元數據行
- 將鼠標懸停在類型(類),方法,屬性,事件,字段上時,語法突出顯示帶有XML文檔注釋的工具提示
- 方法,屬性和事件以源代碼順序或自定義用戶定義的順序進行反編譯
- 源代碼順序意味着相關方法通常彼此相鄰,就像程序員想要的一樣
- 背景圖像可以在文本編輯器中顯示
- 導出到項目反編譯所有選定的程序集並創建一個Visual Studio解決方案
- 可以同時導出多個程序集
- 創建Visual Studio解決方案(支持VS2005 - VS-latest)和項目文件
- 支持WinForms和WPF類(創建代碼隱藏的.cs / .vb文件和WinForms .resx / WPF .xaml文件)
- 將.NET資源轉換為.resx文件
- 從GAC開放
- 命令行反編譯器
- 支持Windows,Linux和Mac
- 語法高亮輸出到屏幕
- 使用C#REPL編寫腳本
- 從腳本調用公共dnSpy方法
- 腳本調試器和其他擴展
- 十六進制編輯器
- 方法令牌和地址顯示在注釋中,可以單擊以轉到原始元數據或IL字節
- 元數據編輯器
- Collapse Assembly Explorer節點命令快速折疊未使用的節點
- 和更多...
圖片時間!
在C#或Visual Basic中編輯任何方法,屬性或事件
編輯任何類型(類),方法,屬性,事件,字段
添加,刪除,重命名任何類型(類),方法,屬性,事件,字段
編輯,添加,刪除.NET資源並將其保存到磁盤
IL編輯器允許在IL級編輯方法體:IL指令,本地人,異常處理程序
調試任何.NET程序集,不需要源代碼
當地人的原始內容(例如解密的字節數組)可以保存到磁盤
較小屏幕的優化
多個選項卡和選項卡組
搜索程序集
裝配分析儀
突出顯示的引用,關鍵字,使用Tab,Shift + Tab,Ctrl + Shift +向上,Ctrl + Shift +向下選擇下一個或上一個參考或Alt + Up / Down進行下一個定義
結構可視化器在花括號之間添加着色垂直導向線; 循環,try / catch和條件塊以不同的顏色顯示
當您使用這樣的方法時,結構可視化程序非常有用:
轉到:入口點,模塊初始化程序,MD令牌,MD表行
將鼠標懸停在類型(類),方法,屬性,事件,字段上時,語法突出顯示帶有XML文檔注釋的工具提示
背景圖像可以在文本編輯器中顯示
相同的圖像與左邊距和上邊距設置為75%
導出到項目反編譯所有選定的程序集並創建一個Visual Studio解決方案
命令行反編譯器,支持Windows,Linux,Mac
使用C#REPL 編寫腳本,可以使用調試器和其他擴展來控制C#
十六進制編輯器
元數據編輯器,單擊令牌或按Ctrl + Shift + D
想要貢獻?
檢查問題的開放性問題,特別是對於抓取標簽的問題,因為它們應該更容易開始。
如果您發送PR,請嘗試使用與正在編輯的當前項目相同的編碼風格。這是一個簡短的列表:
- 標准C#編碼約定除了:
- 標簽,大小= 4
- 打開花括號({)始終與
if/while/ method-signature 在同一行 - 使用
var的大部分時間,除了基本類型,你可以使用原始類型(如int),而不是var - 只用'這個'。如果需要
翻譯dnSpy
如果您想幫助將dnSpy翻譯成您的母語,請點擊此處。
維基
有關構建說明和其他文檔,請參閱Wiki。
執照
dnSpy是根據GPLv3許可的。





























