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
  • 打开花括号({)始终与ifwhile/ method-signature 在同一行
  • 使用var的大部分时间,除了基本类型,你可以使用原始类型(如int),而不是var
  • 只用'这个'。如果需要

翻译dnSpy

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

维基

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

执照

dnSpy是根据GPLv3许可的。

.NET dnSpy 程序集编辑器,反编译器和调试器的更多相关文章

  1. [连载]《C#通讯(串口和网络)框架的设计与实现》- 11.调试器的设计

    目       录 第十一章     调试器设计... 2 11.1         调试接口... 2 11.2         界面方式调试... 3 11.3         命令行方式调试.. ...

  2. C#调试器导航

    本快速入门演示如何在 Visual Studio 调试会话中导航,以及如何在会话中查看和更改程序状态. 本 快速入门适用于不熟悉用 Visual Studio 进行调试的开发人员,以及要详细了解在 V ...

  3. zend stuido 12.5的插件安装和xdebug调试器的配置和和配置注意

    参考: zend stuido 12.5的插件安装 zend 12.5 安装插件是按类别进行分类了的, 而且是在欢迎 界面就可以直接安装, 安装后,要重启zend才能生效 版式设计的一个基本点就是: ...

  4. OC编写使用调试器

    OC编写使用调试器 编写代码免不了,Bug.那么Debug就是程序员的必备技能了.本文和大家一起探讨,如何在应用开发编写代码过程中,使用日志项消息:以及使用动作.条件.迭代控制增强断点. 记录信息 在 ...

  5. iOS LLDB调试器

    随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器.它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.LLDB为Xcode提供了底层调试环 ...

  6. firebug调试js时提示调试器未激活处理办法

    firebug是web开发中最常用的分析调试软件,不过我今天使用在调试百度在线编辑器UEditor时一直提示调试器未激活. 从使用经验来看不应该啊,我都下了断点了为什么会提示调试器未激活呢!多次载入网 ...

  7. 在 Visual Studio 调试器中指定符号 (.pdb) 和源文件

    查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器上:加载符号自动或在要求.   内容 查找符号 (.pdb) 文件 查找源文件   查找符号 (.pdb) 文件 说明 在之前的 Vis ...

  8. 32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用

    32位汇编第一讲x86和8086的区别,以及OllyDbg调试器的使用 一丶32位(x86也称为80386)与8086(16位)汇编的区别 1.寄存器的改变 AX 变为 EAX  可以这样想,16位通 ...

  9. 17. Debuggers (调试器 5个)

    反编译是安全研究的重要组成部分. 它将帮助您解剖Microsoft补丁,以发现他们无法告诉您的默认修复的错误,或更仔细地检查服务器二进制文件以确定为什么您的漏洞利用不起作用. 许多调试器都可用,但ID ...

随机推荐

  1. centos7.5安装opendesktop

    1.下载地址 http://gnome-look.org/ 2.安装 chmod +x opendesktop-app-3.1.3-1-x86_64.AppImage ./opendesktop-ap ...

  2. POJ 3171.Cleaning Shifts-区间覆盖最小花费-dp+线段树优化(单点更新、区间查询最值)

    Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4721   Accepted: 1593 D ...

  3. 初始pip

    关于pip包括下面的东西还不是很懂,慢慢的了解,我的pip是从https://bootstrap.pypa.io/get-pip.py 粘贴并命名为 get-pip.py 后,执行 python ge ...

  4. python3下安装aiohttp遇到过的那些坑

    python3下安装aiohttp遇到过的那些坑 最近需要用到aiohttp这个库,在安装过程中遇到很多坑.google.baidu后,依然没有找到合适的解决方案. 后来通过去python官方的PyP ...

  5. 【java】线程安全的整型类AtomicInteger

    一.遇见AtomicInteger 在看项目代码的时候看到这个类,发现其功能很简单,就是一个整型变量的类型,出于好奇看了其类定义. 该类位于java.util.concurrent.atomic下,在 ...

  6. 解决Linux环境下安装xampp之后外部无法连接MySQL的问题

    在Linux系统下,开发PHP一般都是LAMP环境,对于开发环境来讲,没有必要花太大精力去单独配置LAMP环境,采用xampp一键安装包是一个很好的方式.在Linux系统上安装xampp的过程这里就不 ...

  7. 全网第二好懂的FFT(快速傅里叶变换)

    声明:本FFT是针对OI的.专业人员请出门左拐. Ⅰ前言 很久以前,我打算学习FFT. 然而,算法导论讲的很详细,却看不懂.网上博客更别说了,什么频率之类的都来了.我暗自下了决心:写一篇人看得懂的FF ...

  8. BZOJ 4025 二分图(时间树+并查集)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=4025 [题目大意] 给出一张图,有些边只存在一段时间,问在一个每个时间段, 这张图是否 ...

  9. [CODE FESTIVAL 2017]Poor Penguin

    题意:在一个$n\times m$的网格上,每个格子是薄冰或冰山(网格外什么都没有),有一片薄冰上站着一只企鹅,对于薄冰$(i,j)$,如果不满足($(i-1,j),(i+1,j)$都有东西或$(i, ...

  10. 【贪心】【后缀自动机】XIII Open Championship of Y.Kupala Grodno SU Grodno, Saturday, April 29, 2017 Problem E. Enter the Word

    题意:给你一个串,让你从左到右构造这个串,一次操作可以直接在当前串后面添加一个任意字符,或者拷贝当前串的任意一个子串到当前串的后面.问你最少要多少次操作才能构造出这个串. 从前向后贪心,从当前已构造的 ...