想不想对.net语言编写的EXE或DLL文件进行反编译处理?现在好用的NET程序反编译工具屈指可数,其中dnspy算是比较好用的一款了。dnspy是一款免费开源的NET程序反编译工具,有了它您只需点点鼠标即可轻松对net程序进行反编译了。
界面预览图:
dnSpy 是一个免费开源的.NET程序调试器与.NET汇编编辑器,有了dnSpy 就算您没有任何可用的源代码,也可以使用它来编辑与调试程序集。
有时您可能唯有软件,但是无程序代码。这个时候软件的继续开发与调试与问题排查就成了问题,dnspy可以解决以上问题,它是反编译工具,用于调试没有源码的.net程序。说白了就是说开发人员可以使用dnSpy 反编译.NET代码,了解.NET程序是怎么工作的,分析依赖关系、检测混淆等。
dnSpy对Unity3D游戏Dll文件反编译非常实用,它的优势在于,它可以在完全没有源码的情况下即时调试程序,甚至还可以修改程序,dnSpy 比ilspy与.NET Reflector更好用。可以将.NET开发的Exe与Dll程序反编译为C#代码,同时支持断点调试与代码二次编辑,如果您唯有编译后的程序集,在没有源码的情况想还原C#源码,dnSpy绝对是首选。
功能特点:
=========调试器=========
支持.NET Framework、.NET与Unity游戏程序集,不需要源代码
设置断点并单步执行任何程序集
当地人,手表,汽车窗户
变量窗口支持保存变量(例如,解密字节数组)到磁盘或查看他们在十六进制编辑器(内存窗口)
对象id
可以同时调试多个进程
模块加载时断开
跟踪点与条件断点
导出/导入断点与跟踪点
调用堆栈、线程、模块、进程窗口
在抛出异常时中断(第一次机会)
变量窗口支持计算C# / Visual Basic表达式
动态模块可以被调试(但动态方法不能被调试,这是于编译器的限制)
输出窗口记录多种调试事件,默认情况下显示时间戳:)
可以调试在运行时自行解密的程序集,dnSpy将使用内存中的映像。您还可以强制dnSpy一直使用内存中的映像而不是磁盘文件。
公共API,您可以编写扩展或使用C#交互窗口来控制调试器
=========编辑器=========
所有元数据都能编辑
使用IntelliSense在C#或Visual Basic中编辑方法与类,不需要源代码
在C#或Visual Basic中添加新方法、类或成员
用于低级别IL方法体编辑的IL编辑器
可以编辑低级元数据表。这在内部使用十六进制编辑器。
=========十六进制编辑器=========
点击反编译代码中的地址,在十六进制编辑器中转到其IL代码
与上面相反,在十六进制编辑器中的IL主体中按F12以转到反编译代码或位的其他高级表示。找出补丁修改了哪个语句是很不错的。
突出显示.NET元数据结构与PE结构
工具提示显示有关所选.NET元数据/ PE字段的详细信息
进入位置,文件,RVA
转到.NET元数据标记、方法体、#Blob / #Strings / #US堆偏移量或#Blob堆索引
跟随参考(Ctrl+F12)
=========其他=========
BAML反编译器
蓝色、浅色与深色主题(与深色高对比度主题)
书签
C#交互式窗口可用于编写dnSpy脚本
在程序集中搜索类、方法、字符串等
分析类与方法的使用情况,查找调用者等
多个选项卡与选项卡组
引用被突出显示,使用Tab / Shift+Tab移动到下一个引用
转到入口点与模块初始化器命令
转到元数据标记或元数据行命令
代码工具提示(C#与Visual Basic)
导出到项目
dnspy反编译net程序教程:
=========反编译=========
运行软件,依次点击文件-打开-找到对应的DLL/exe文件就OK了。或者直接将dll/exe文件直接拖动过来也可以。
=========修改代码=========
在代码处,右键点击----编译方法。会弹出一个窗口,小伙伴们可以在上面进行修改。
注意:选择编辑类也可以的,但是为了免除不需要要的麻烦,选择编辑方法。意思是编辑当前方法,开销最小。
=========导出编译=========
修改完,点击下面的编译就可以。如果没有生成DLL文件,依次点击文件-保存模块,会弹出一个窗口。
可以选择另一个路径,默认是覆盖,随后点击确定,则一个新的dll就生成了。
=========调试=========
dnspy的调试方法与vs类似,打断点,选择.exe可执行文件。
点击F5,开始调试
下面的调试信息可以看到实际的值
注意事项:
dnspy软件分32位与64位,两个版本,压缩包中同时进行了打包,请根据需要选择使用,绿色版本不需要安装,找到dnSpy.exe双击即可启动。
运行本.net反编译、反汇编软件,需要你电脑上安装使用.NET Core,,如果dnSpy.exe无法启动,请尝试:
安装VC依赖项:https://support.microsoft.com/help/2977003/the-latest-supported-visual-c-downloads
Windows 7:必须安装KB2999226与KB2533623