dnSpy反编译工具是一款针对.net程序打造的逆向编程工具,用户可以使用这款软件对.net文件进行分解,然后可以向文件中添加插件,扩展文件功能,这款软件界面简介,操作也非常简单,有需要的朋友欢迎来体验软件。
dnSpy是一款针对.net程序的逆向工程工具。该项目包含了反编译器,调试器和汇编编辑器等功能组件,而且可以通过自己编写扩展插件的形式轻松实现扩展。该项目使用dnlib读取和写入程序集,以便处理有混淆代码的程序(比如恶意程序)而不会崩溃。
一、首先编写一个Hello World的控制台运行程序,如下图所示:
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ChangeString
{
class Program
{
static void Main(string[] args)
{
string str = "Hello World!";
Console.WriteLine(str);
Console.ReadKey();
}
}
}
二、编译并运行,如下图所示:
在这里程序内部的str变量为“Hello World!”,现在,需要使用dnSpy工具,将内部str的变量改变并在线调试。
三、使用dnSpy工具对程序进行反编译:
①使用dnSpy工具对刚才生成的ChangeString.exe进行反编译,如下图所示:
②在Main函数内右键点击菜单,在弹出的上下文菜单中选择“编辑方法(C#)”,如下图所示:
③将str变量的内容改为“Just For Test”,并点击“编译”按钮,如下图所示:
④点击“全部保存”按钮,在弹出的界面保持默认值并点击“确定”按钮,如下图所示:
⑤保存完成后,点击“启动”按钮,在弹出的界面保持默认值并点击“OK”按钮,接着自动启动应用程序,如下图所示:
程序成功地运行!
注意:
编译时请注意以下事项,否则将不能进行编译:
①还有其他DLL模块的,必须把它包含进来;
②如有其他反编译后有不能识别的字符,请手工修改OK之后再进行编译。
另外,这个程序不仅对EXE有效,同样对DLL有效,请自行试验,谢谢!
本教程带你怎么使用调试、逆向.net的神器dnSpy,将给出一个简单的示例程序,并完整地介绍如何逆向,让你快速入门。
1、首先在9663下载dnSpy软件,将压缩包解压至非中文路径下;
2、本站为大家带来的是dnSpy(Net反编译工具)绿色版,打开即可使用,并且提供了x32/x64两种操作系统,用户可自行选择,这里以x64举例,打开dnSpy文件夹,双击打开dnSpy.exe应用程序;
3、示例程序是编写一个winform的登录程序, LoginTest.exe,输入正确的账号密码之后,跳转到主界面,否则提示账号密码错误。
(1)登录主界面
(2)登录错误提示
(3)登录成功后进入主界面
4、loginFrm源码:
5、mainForm源码:
6、当我们忘记了账号密码,或者这个程序我们本来就不知道密码,那该怎么办呢?没事,我们直接来改造它,运行LoginTest.exe。
(1)启动dnSpy,[文件]->[打开],找到 LoginTest.exe 打开,dnSpy 会自动反编译,可以直接打开反编译后的源码:
(2)在源码上右键修改,改成如下代码(右键可以看到断点等其他调试功能,可以像VS等IDE一样调试)
(3)重新编译后,[文件]->[全部保存] 保存成新的可执行文件(可以看到重新编译后注释的代码全部被优化掉了)
7、运行逆向修改后的程序 ModifyLoginTest.exe。
(1)输入修改后的账号密码
(2)主界面变为修改后的账号密码
1、无需设置
由于它是一个便携式工具,它不需要您将其安装在目标计算机上,因为只需拆包其存档并启动可执行文件即可完全访问其功能。
您还可以从可移动存储介质(如USB闪存驱动器或外部HDD)运行它。此外,它不会修改系统中的注册表项,也不会在您的PC上生成其他文件或文件夹,但未经您的明确许可。
2、.net反汇编程序
如果您需要一个高效的工具,可以通过为您提供各种有用的工具来帮助您反编译.net程序集,您可以转到dnSpy。它配有一个反编译器,一个调试器,一个十六进制编辑器和一个程序集编辑器,让你以有效的方式处理程序集。
主窗口附带了一个Assembly Explorer窗格,您可以在其中访问所需程序集的树视图。您可以通过从计算机指定适当的文件或使用“从GAC打开”选项打开程序集,该选项为您提供全局程序集缓存中可用的条目列表。
3、.net程序集的可靠反向工程工具
所有考虑的事情,dnSpy是一个方便的应用程序,使您能够以有效的方式逆向工程.net程序集,为您提供广泛的有用工具,包括反编译器,程序集编辑器和调试器。它不需要安装,具有全面,平滑的用户界面,并为您提供了一个标准配置窗口,您可以在其中调整各种组件的设置。
4、综合界面
dnSpy配备了一个时尚,全面的用户界面,包含广泛的有用功能,它们整齐地组织在主窗口的标准菜单中。
更重要的是,它具有标准配置窗口,您可以在其中调整各种组件的设置,如其反编译器,调试器或十六进制编辑器,但也可以修改显示或其他参数。
新功能:
在 File 菜单下添加了一个新的comm和以管理员身份重新启动dnSpy。这在调试需要提升的文件时很有用
将 .NET 运行时添加到 File -> Open List... 对话框中的预定义程序集列表。 (经过 )
添加了一个新的分析器节点,显示使用分析器组件分析的类型的所有子类型
在启动调试对话框中添加了一个附加字段,允许用户自定义程序启动时使用的环境变量
在 Windows 11 上运行 dnSpy 时,所有窗口现在都有圆角以匹配该操作系统上的其他应用程序
改进和错误修复:
分析器组件中添加了对静态接口成员的支持。现在应该可以正确检测用法和实现。
修复了伪自定义属性跳转到参考的问题,该问题有时会阻止该功能工作
改进的 XAML 语法突出显示
改进了对具有特殊字符和显式接口实现的成员的 XML 文档查找
改进了主文本视图以外的控件的文本渲染性能和效率
修复了导致表流标头结构中的 m_ulExtra 字段具有不正确值的错误。
修复了当文件是非 .NET PE 文件时阻止 Show Data in Hex Editor 通信和显示在 PE 图像节标头节点上的错误。
更新翻译:
ILSpy反编译器
修复了具有无效泛型参数定义的嵌套类型发生的反编译器崩溃问题
强制 goto 语句的 C# 代码标签始终使用填充为 4 个字节的 IL 偏移量
修复了反编译非常大的方法体时发生的堆栈溢出,导致 dnSpy 完全崩溃
改进了方法调用的 in 参数的h和ling