https://github.com/0xd4d/dnSpy

 https://github.com/0xd4d/dnSpy/releases/

dnSpy是反向工程.NET程序集的工具。它包括一个反编译器,一个调试器和一个程序集编辑器(和更多),可以通过编写自己的扩展名来轻松地扩展。它使用dnlib来读取和写入程序集,因此它可以处理混淆的程序集(例如恶意软件)而不会崩溃。

最新发布

最新版本: .NET dnSpy 程序集编辑器,反编译器和调试器

或者从源代码构建,请参阅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 dnSpy 程序集编辑器,反编译器和调试器

编辑任何类型(类),方法,属性,事件,字段

.NET dnSpy 程序集编辑器,反编译器和调试器

添加,删除,重命名任何类型(类),方法,属性,事件,字段

.NET dnSpy 程序集编辑器,反编译器和调试器

编辑,添加,删除.NET资源并将其保存到磁盘

.NET dnSpy 程序集编辑器,反编译器和调试器

IL编辑器允许在IL级编辑方法体:IL指令,本地人,异常处理程序

.NET dnSpy 程序集编辑器,反编译器和调试器

.NET dnSpy 程序集编辑器,反编译器和调试器

调试任何.NET程序集,不需要源代码

.NET dnSpy 程序集编辑器,反编译器和调试器

当地人的原始内容(例如解密的字节数组)可以保存到磁盘

.NET dnSpy 程序集编辑器,反编译器和调试器

较小屏幕的优化

.NET dnSpy 程序集编辑器,反编译器和调试器

多个选项卡和选项卡组

.NET dnSpy 程序集编辑器,反编译器和调试器

搜索程序集

.NET dnSpy 程序集编辑器,反编译器和调试器

装配分析仪

.NET dnSpy 程序集编辑器,反编译器和调试器

突出显示的引用,关键字,使用Tab,Shift + Tab,Ctrl + Shift +向上,Ctrl + Shift +向下选择下一个或上一个参考或Alt + Up / Down进行下一个定义

.NET dnSpy 程序集编辑器,反编译器和调试器

.NET dnSpy 程序集编辑器,反编译器和调试器

结构可视化器在花括号之间添加着色垂直导向线; 循环,try / catch和条件块以不同的颜色显示

.NET dnSpy 程序集编辑器,反编译器和调试器

当您使用这样的方法时,结构可视化程序非常有用:

.NET dnSpy 程序集编辑器,反编译器和调试器

转到:入口点,模块初始化程序,MD令牌,MD表行

.NET dnSpy 程序集编辑器,反编译器和调试器

.NET dnSpy 程序集编辑器,反编译器和调试器

.NET dnSpy 程序集编辑器,反编译器和调试器

将鼠标悬停在类型(类),方法,属性,事件,字段上时,语法突出显示带有XML文档注释的工具提示

.NET dnSpy 程序集编辑器,反编译器和调试器

背景图像可以在文本编辑器中显示

.NET dnSpy 程序集编辑器,反编译器和调试器

相同的图像与左边距和上边距设置为75%

.NET dnSpy 程序集编辑器,反编译器和调试器

导出到项目反编译所有选定的程序集并创建一个Visual Studio解决方案

.NET dnSpy 程序集编辑器,反编译器和调试器

命令行反编译器,支持Windows,Linux,Mac

.NET dnSpy 程序集编辑器,反编译器和调试器

使用C#REPL 编写脚本,可以使用调试器和其他扩展来控制C#

.NET dnSpy 程序集编辑器,反编译器和调试器

十六进制编辑器

.NET dnSpy 程序集编辑器,反编译器和调试器

元数据编辑器,单击令牌或按Ctrl + Shift + D

.NET dnSpy 程序集编辑器,反编译器和调试器

.NET dnSpy 程序集编辑器,反编译器和调试器

想要贡献?

检查问题的开放性问题,特别是对于抓取标签的问题,因为它们应该更容易开始。

如果您发送PR,请尝试使用与正在编辑的当前项目相同的编码风格。这是一个简短的列表:

  • 标准C#编码约定除了:
  • 标签,大小= 4
  • 打开花括号({)始终与ifwhile/ method-signature 在同一行
  • 使用var的大部分时间,除了基本类型,你可以使用原始类型(如int),而不是var
  • 只用'这个'。如果需要

翻译dnSpy

如果您想帮助将dnSpy翻译成您的母语,请点击此处

维基

有关构建说明和其他文档,请参阅Wiki

执照

dnSpy是根据GPLv3许可的

相关文章: