本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、做者及网址,谢谢!html
本文使用的工具下载地址为:git
或 dnSpy官方下载地址:github
软件界面以下:函数
该软件分别64位版本及32位版本,分别为dnSpy.exe 及 dnSpy-x86.exe,调试时请注意调试所对应软件版本。工具
如今进入话题:post
1、首先编写一个Hello World的控制台运行程序,以下图所示:this
代码以下:spa
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(); } } }
2、编译并运行,以下图所示:调试
在这里程序内部的str变量为“Hello World!”,如今,须要使用dnSpy工具,将内部str的变量改变并在线调试。code
3、使用dnSpy工具对程序进行反编译:
①使用dnSpy工具对刚才生成的ChangeString.exe进行反编译,以下图所示:
②在Main函数内右键点击菜单,在弹出的上下文菜单中选择“编辑方法(C#)”,以下图所示:
③将str变量的内容改成“Just For Test”,并点击“编译”按钮,以下图所示:
④点击“所有保存”按钮,在弹出的界面保持默认值并点击“肯定”按钮,以下图所示:
⑤保存完成后,点击“启动”按钮,在弹出的界面保持默认值并点击“OK”按钮,接着自动启动应用程序,以下图所示:
程序成功地运行!
注意:
编译时请注意如下事项,不然将不能进行编译:
①还有其余DLL模块的,必须把它包含进来;
②若有其余反编译后有不能识别的字符,请手工修改OK以后再进行编译。
另外,这个程序不只对EXE有效,一样对DLL有效,请自行试验,谢谢!
出处:http://www.cnblogs.com/cncc/p/7873834.html