dnSpy进行反编译修改并编译运行EXE或DLL

软件界面如下:

 

 

该软件分别64位版本及32位版本,分别为dnSpy.exe 及 dnSpy-x86.exe,调试时请注意调试所对应软件版本。

 

现在进入话题:

 

一、首先编写一个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有效,请自行试验,谢谢!

posted @   MaxBruce  阅读(2010)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2022-03-15 VS2013中web项目中自动生成的ASP.NET Identity代码思考
2022-03-15 ASP.NET CORE[练习7]-Identity-用户登录、最简单的登录验证
点击右上角即可分享
微信分享提示