.net逆向之:trycatch代码块和谐方法

本帖最后由 laohuang112 于 2020-3-16 16:15 编辑

在用dnSpy逆向时常常会遇到try-catch异常捕捉代码块,如果该dll可以脱壳当然直接修改代码再回编译即可。但也经常会遇到少数一两个dll常规脱壳手段脱壳之后,软件无法正常运行,此时就需要直接对IL指令进行修改。
新手一枚,老鸟路过,敬请手下留情。
工具:dnSpy v6.1.3,最新发布版,https://github.com/0xd4d/dnSpy/releases
例如dnSpy打开某dll文件,找到license计算入口代码如下:

这里面的代码都是计算license用的,和谐思路就是,直接全部删除,再给两个本地字段赋值即可完成和谐过程。

右键点击方法体任何地方,选择编辑IL指令,

弹出以下窗口,

点击红色框,异常处理程序,

右键点击红色框,选择删除异常处理程序,或删除所有异常处理程序,

之后将所有IL指令删除,在增加几个指令,给该方法的两个本地字段赋值,即可完成和谐过程,

如果不首先删除异常处理程序,那么这里是无法点击确认的,也就是无法保存。以上是针对代码中有trycatch的和谐方法,具体软件名就不放出来了,纯粹探讨方法。

THE END
喜欢就支持以下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称