dnSpy工具可以在网上自行下载

软件界面如下:

现在进入话题,首先编写一个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之后再进行编译。

C#基础知识之dnSpy反编译的更多相关文章

  1. 用 dnSpy 反编译调试 .NET 程序

    dnSpy 官网下载:https://github.com/0xd4d/dnSpy/releases 运行需要 .NET Framework 4 环境:https://dotnet.microsoft ...

  2. Android安全攻防战,反编译与混淆技术完全解析(下)

    在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码.反编译资源.以及重新打包等内容.通过这些内容我们也能看出来,其实我们的程序并没有那么的安全.可能资源被反编译影响还不是很 ...

  3. Android安全攻防战,反编译与混淆技术全然解析(下)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/50451259 在上一篇文章其中,我们学习了Android程序反编译方面的知识,包括 ...

  4. [C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护)

    [C#防止反编译].NET 产品版权保护方案 (.NET源码加密保护) 标签: .net加密产品c#dll工具 2011-03-24 21:06 27009人阅读 评论(13) 收藏 举报 分类: C ...

  5. NX二次开发-C#使用DllImport调用libufun.dll里的UF函数(反编译.net.dll)调用loop等UF函数

    在写这篇文章的时候,我正在头晕,因为下班坐车回家,有些晕车了.头疼的要死.也吃不下去饭. 版本:NX11+VS2013 最近这一年已经由C++过度到C#,改用C#做应用程序开发和NX二次开发. C#在 ...

  6. 客户的一个紧急bug,我用了两种方式进行 C# 反编译修改源码

    一:背景 1. 讲故事 周五下午运营反馈了一个紧急bug,说客户那边一个信息列表打不开,急需解决,附带的日志文件也发过来了,看了下日志大概是这样的: 日期:2020-11-13 12:25:45,92 ...

  7. APK反编译之一:基础知识—APK、Dalvik字节码和smali文件

    refs: APK反编译之一:基础知识http://blog.csdn.net/lpohvbe/article/details/7981386 APK反编译之二:工具介绍http://blog.csd ...

  8. APK反编译之一:基础知识

    作者:lpohvbe | http://blog.csdn.net/lpohvbe/article/details/7981386 这部分涉及的内容比较多,我会尽量从最基础开始说起,但需要读者一定的a ...

  9. Java 7 中的Switch 谈 Java版本更新和反编译知识

    Java 7 中的Switch 谈 Java版本更新和反编译知识          学习编程,享受生活,大家好,我是追寻梦的飞飞.今天主要讲述的是Java7中的更新Switch实现内部原理和JAD反编 ...

随机推荐

  1. JSON.stringify方法报错:Converting circular structure to JSON

    别以为JSON.parse(JSON.stringify(data))做深拷贝无敌,对于以下这种情况,当你需要保留父级对象,即 对象存在循环引用,就会报错. var a = [ { "id& ...

  2. WIN10下安装Linux子系统并安装xface4界面

    WIN10下安装Linux子系统并安装xface4界面,使用win10自带的远程桌面工具登陆成功. 成功截图: 安装步骤 1.安装[适用于Linux的Windows子系统]组件 2.win10应用商店 ...

  3. Fatal error: Class 'think\db' not found

    在model层写了一个查询语句结果报错 Fatal error: Class 'think\db' not found   $list= Db::table('m_my_reserve_assess' ...

  4. JavaScript-Load-Image

    如何将图片显示为canvas https://github.com/blueimp/JavaScript-Load-Image/blob/master/js/load-image-scale.js h ...

  5. CListCtrl死锁的问题

    ON_COMMAND(ID_DELETE_1,OnDelete)在响应删除事件的时候 控件应该内部有锁,在这个时候调用GetItemCount()函数会阻塞

  6. Fresnel integral菲涅尔积分的一丢丢探讨

    起因源于导师的关于回旋曲线的一点问题 其中最后得到的曲率公式中的c,s’和s定义不明确 于是开始从头从(2.1)式中的积分入手探究 维基百科中Fresnel integral的S(x)与C(x)的定义 ...

  7. mac 外接显示屏的坑

    概述 工作中使用 Mac 外接显示屏,有时会出现闪屏然后黑屏的现象,之前都没有找到原因,今天终于找到了,记录下来,供以后参考,相信对其他人也有用. 参考资料: Macbook外接显示器设置教程 问题 ...

  8. 激活Win Server 2008 R2 Datacenter

    直接手撸KMS命令 管理员打开cmd输入: slmgr /skms kms.03k.org 然后用这个Key: 74YFP-3QFB3-KQT8W-PMXWJ-7M648

  9. Django框架效率问题的解决方法和总…

    由于项目的需要,学习了Django框架,Django框架的MTV很清晰,通过MTV能够很好地了解Django框架的内部机理.但是在使用过程中发现了一个严重的问题,就是当有大量IO(写数据库操作)的时候 ...

  10. tensorflow学习之tf.assign

    tf.assign(ref, value, validate_shape=None, use_locking=None, name=None), 函数功能是将value赋值给ref ref必须是tf. ...