[工具教程]使用反编译工具dnspy动态修改代码

作者 : gm 本文共861个字,预计阅读时间需要3分钟 发布时间: 2022-10-15 共403人阅读

[工具下载地址]dnSpy(.Net反汇编/编译工具)

 

1.打开dnspy

bin目录下有dnspy.exe和dnspy_x86.exe,若是32位程序则选择_x86.exe

2.点击文件—>打开,选择要调试的dll

3.点击调试—>启动调试,选择要调试的应用程序,一般为.exe;

或者点击调试—>附加到进程,选择正在运行的程序

4.选择要编辑的文件,右键

[工具教程]使用反编译工具dnspy动态修改代码-1

5.选择编辑类或者编辑方法,然后进行你想要的编辑,编辑完成后点击编译

建议选择编辑方法,因为这样在编译的时候只会编译这个方法单元,而不会编译这个类,若编辑整个类,编译的时候会报比较多的错误,需要修复

[工具教程]使用反编译工具dnspy动态修改代码-2

我在代码中添加了一句 int x=0; ,然后选择编译,但是可以看到下方报错了,这是由于没有引入该类所引用的依赖项导致

很多人都会卡在这一步,编译不过,报一些奇奇怪怪的错误,以下是我的一些经验:

上面这个错误是缺失dll,既红框圈出的Newtonsoft.dll,所以我们需要引入这个dll,菜单栏—>打开—>选择需要的dll,引入即可

如果还是报错,可以查看该dll引用的dll, 如果还有dll没引入,选择dll引入

或者看dnspy的提示,标红的代码就是出错的地方,可以尝试手动修改错误,就像是在VS上开发一样

有时候错误会很奇怪,明明有这个变量,却提示没有,这时可以对比下真正的源代码,你会发现,反编译后的代码是错的,会自动添加一些莫名其妙的逻辑,尤其是在使用匿名函数的时候,这个时候就需要我们手动删除这些错误的逻辑,是的没错,你不太可能用dnsny对应用程序做大量的修改,hook整个程序(如果有大神这么干了,请告诉我怎么做!) ,一般只是做一些外科式手术般的改动,既修改一些关键地方,做一些小的改动,那么就可以尝试删除一些错误的代码和无关的代码,使编译能通过!

6.保存

点击编译后如果没有错误了,则已经成功,但是没有任何提示

但实际上已经保存在右侧菜单栏中了,可以看到有两个同名的dll

点击菜单栏—>文件->保存模块或者全部保存,即可

7.然后使用新的dll替换老的dll,就可以测试了

 

 

 

声明:
本站网游单机网-藏宝湾(www.jiaobenwang.com/www.cangbaowan.top)所有源码都来源于网络收集修改或者交换!本站所有程序、源码只供大家学习和研究软件内含的设计思想和原理之用,请下载后24小时内删除!。请大家不要用于商用及违法使用,否者如引起一切纠纷与本网站无关,后果自负!!
如果侵犯了您的权益,请及时告知我们(QQ: 18001103 email:[email protected]),我们即刻删除!
如遇到资源失效,请在此贴下方评论区留言,我们将尽快补充资源!
如遇资源实在不会架设,可以换其他游戏或者版本试试,不要纠结一个版本。


网游单机网-脚本王 » [工具教程]使用反编译工具dnspy动态修改代码

常见问题FAQ

什么叫一键端?
一般是虚拟机VM一键端或者windows一键启动服务端,适合新手!对于一键端来说,如果这个端是linux系统的,因为linux系统大家不熟悉,架设有点麻烦,所以很多人分享了自己架设服务端的linux系统镜像,这种叫VM一键端(虚拟机一键端)。 还有一种一键端是win系统的,大部分都是做好了启动服务端的快捷方式之类的,这种端实际和手工端相差不大了。win系统的一键端实际就是手工端!我个人认为如果端本身就是win系统的服务端,那就没必要去弄vm一键端了!
什么是手工端?
游戏服务端需手工安装配置,可以开服,适合老手,推荐方式!架设更有乐趣!
网单游戏有哪些架设方式?
1、单机玩耍,那么你只需要在你的电脑上 安装虚拟机软件+安卓模拟器即可。把服务端 运行在虚拟机的系统里面(如果是win服务端,也可以直接在电脑上运行服务端),客户端在安卓模拟器运行即可。各种VM一键端 基本就是用这种方式进行玩耍的!
2、局域网手机玩耍,局域网内,手机通过wifi连接你电脑上安装的服务端,离开这个wifi你就玩不了,这种方式虽然是局域网内可玩,但和外网架设实际上是一回事,都需要按照教程修改服务端、客户端。
3、外网玩耍,俗称开服,服务端架设在外网云服务器上,云服务器具有固定IP地址,通过手机安装客户端即可玩耍。

发表评论