[C#]使用dnSpy对目标程序(EXE或DLL)进行反编译修改并编译运行

本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢![http://www.cnc6.cn]

本文使用的工具下载地址为:

https://github.com/cnxy/dnSpy/archive/v4.0.0.zip

或 dnSpy官方下载地址:

https://github.com/0xd4d/dnSpy/releases/download/v4.0.0/dnSpy.zip

软件界面如下:

该软件分别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有效,请自行试验,谢谢!

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

vscode设置python3调试环境

汇总系列:https://www.cnblogs.com/dunitian/p/4822808.html#ai

1514
来自专栏淡定的博客

Webpack基本使用

662
来自专栏Linux驱动

QT-第一个程序 Hello QT , 以及QT creator介绍

第一个程序 - Hello QT 首先写main.cpp: #include <QApplication> #include <QMainWindow> #in...

3127
来自专栏葡萄城控件技术团队

Asp.Net MVC4入门指南(6):验证编辑方法和编辑视图

在本节中,您将开始修改为电影控制器所新加的操作方法和视图。然后,您将添加一个自定义的搜索页。 在浏览器地址栏里追加/Movies, 浏览到Movies页面。并进...

23510
来自专栏PhpZendo

MEAN.js 文档

请至 MongoDB 官网获取 MongoDB 手册,这对了解什么是 NoSQL 和 MongoDB 大有裨益。

521
来自专栏FreeBuf

Office文档嵌入对象点击执行的社工技巧

Microsoft Office相信大家都用过。Office在文档中嵌入对象极大的方便了我们的日常使用,但同时也为我们带来了众多安全问题。可以说,Office文...

886
来自专栏抠抠空间

DropZone(文件上传插件)

1800
来自专栏向治洪

React Native开发之ATOM开发实用技巧

前面对React Native开发工具Atom做了一个详细的介绍,详见RN开发IDE详解。 Atom作为一款前端开发利器,有很多的插件供我们选择,这里罗列常...

1768
来自专栏破晓之歌

完全媲美sublime的编辑器-Atom 原

前端可视化插件神器,配合谷歌浏览器一起使用。本质是监控文件修改,实时刷新浏览器,需要安装livereload插件和node.js插件,全局刷新

973
来自专栏吾爱乐享

php学习之html–精彩回顾(七)

1243

扫码关注云+社区