.NET dnSpy 程序集編輯器,反編譯器和調試器


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指令,本地人,異常處理程序

編輯IL1

編輯IL2

調試任何.NET程序集,不需要源代碼

DEBUG1

當地人的原始內容(例如解密的字節數組)可以保存到磁盤

調試保存

較小屏幕的優化

更VERT空間

多個選項卡和選項卡組

制表組

搜索程序集

搜索

裝配分析儀

分析儀

突出顯示的引用,關鍵字,使用Tab,Shift + Tab,Ctrl + Shift +向上,Ctrl + Shift +向下選擇下一個或上一個參考或Alt + Up / Down進行下一個定義

HILITE的關鍵字

HILITE,裁判

結構可視化器在花括號之間添加着色垂直導向線; 循環,try / catch和條件塊以不同的顏色顯示

結構可視化

當您使用這樣的方法時,結構可視化程序非常有用:

惡夢

轉到:入口點,模塊初始化程序,MD令牌,MD表行

去到EP

去到MD-令牌

去到MD-表行

將鼠標懸停在類型(類),方法,屬性,事件,字段上時,語法突出顯示帶有XML文檔注釋的工具提示

提示

背景圖像可以在文本編輯器中顯示

bgimg1

相同的圖像與左邊距和上邊距設置為75%

bgimg2

導出到項目反編譯所有選定的程序集並創建一個Visual Studio解決方案

出口到項目

命令行反編譯器,支持Windows,Linux,Mac

安慰

使用C#REPL 編寫腳本,可以使用調試器和其他擴展來控制C#

腳本

十六進制編輯器

16進制軟件

元數據編輯器,單擊令牌或按Ctrl + Shift + D

MD-ED1

MD-ED2

想要貢獻?

檢查問題的開放性問題,特別是對於抓取標簽的問題,因為它們應該更容易開始。

如果您發送PR,請嘗試使用與正在編輯的當前項目相同的編碼風格。這是一個簡短的列表:

  • 標准C#編碼約定除了:
  • 標簽,大小= 4
  • 打開花括號({)始終與ifwhile/ method-signature 在同一行
  • 使用var的大部分時間,除了基本類型,你可以使用原始類型(如int),而不是var
  • 只用'這個'。如果需要

翻譯dnSpy

如果您想幫助將dnSpy翻譯成您的母語,請點擊此處

維基

有關構建說明和其他文檔,請參閱Wiki

執照

dnSpy是根據GPLv3許可的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM