使用dnspy反编译修改源码
目录
警告
本文最后更新于 2023-04-08,文中内容可能已过时。
解决一些混淆之后patch源码的问题。
# 前言
dnspy是csharp中反编译神器,只要你接触反编译相关的,那你一定离不开他。 官方的GitHub仓库已经不维护了,不过有人在官方基础上维护了另一个仓库。本质没变,都是反编译神器。
# 修改源码
一般情况下使用dnspy来改源码都是因为没有可编译的项目,你要是有可编译的项目那改项目就行了。
一个最简单的exe
|
|
执行后打印hello
字符串。
将其使用dnspy修改
不论是编辑方法、编辑类,都可以直接修改代码。
我改成输出hello bro
,点击编译,然后点击保存
点确定
然后再执行exe就会输出hello bro
了。
# 编辑IL指令
遇到了一个混淆之后的dll,想要在不反混淆的情况下修改dll中的一个方法体。
使用dnspy编辑方法体时,编译出错,报错内容大多是不识别Unicode字符串,导致编译不通过。
怎么解决?可以通过编辑il指令来达到修改代码逻辑的效果。
还拿前面的hello程序举例,编辑il指令,修改hello
为hello bro
点击确定,然后保存即可。混淆程序保存的时候勾上这几个选项可能会有所帮助。
文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。
如果你觉得这篇文章对你有所帮助,欢迎赞赏或关注微信公众号~