dnspy修改任意内容就编译报错的解决方法 .NET软件反编译

  • 1.打开dnspy.exe
  • 2.点击文件-->打开,选择要调试的dll,点击调试-->启动调试,选择要调试的应用程序,一般为.exe;或者点击调试-->附加到进程,选择正在运行的程序
  • 或直接选.exe文件
  • 3.找到要修改的地方,右键 编辑方法
  • 4.点下面编译,什么也没报错,并退出编辑即正常。可以在主窗口看到改后的代码。此时调试程序还是原来的。
  • 5.点击菜单栏-->文件->保存模块 或者全部保存.(如果为dll,使用新的dll替换老的dll)保存为新.exe文件,运行它就是改后的软件了。

参考:使用反编译工具dnspy动态修改代码_dnspy无法编译_Bird鸟人的博客-CSDN博客

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

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

1.要减少修改范围。比如只改方法就可以,就不要修改类,因为类需要更多的。

2.少引用

3.无关的全删了

复制代码
private bool LicenseCheck()
{

	return true;
}
相关推荐
前端一课8 小时前
【前端每天一题】🔥 第 17 题:什么是浅拷贝与深拷贝?如何实现深拷贝?
前端·面试
前端一课8 小时前
【前端每天一题】🔥 第 20 题:从输入 URL 到页面渲染全过程
前端·面试
前端一课8 小时前
【前端每天一题】🔥 第 12 题:== 与 === 的区别?为什么 [] == ![] 是 true?
前端·面试
前端一课8 小时前
【前端每天一题】🔥 第 13 题:原型链查找规则是什么?为什么对象能访问到方法?
前端·面试
前端一课8 小时前
【前端每天一题】🔥 第 11 题:this 的指向规则(前端高频必考题)
前端·面试
一 乐8 小时前
餐厅管理智能点餐系统|基于java+ Springboot的餐厅管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
北极糊的狐8 小时前
父组件向子组件传参时,传递数组和对象类型的参数的方法
前端·javascript·vue.js
前端一课9 小时前
【前端每天一题】🔥 第 9 题:防抖(debounce)与节流(throttle)的区别?如何实现?
前端·面试
前端一课9 小时前
【前端每天一题】🔥 第 10 题:浅拷贝 vs 深拷贝?如何手写深拷贝?
前端·面试
大柏怎么被偷了9 小时前
【Linux】进程替换
linux·运维·服务器