记一次Net软件逆向的过程(经典)

查壳

1.先看下目录结构:flex

2.查下,是什么语言 ==> Net的,那不用说了,确定能破解(毕竟是老本行嘛~)3d

混淆与反混淆

3.dnSpy打开后发现不少变量是乱码调试

4.用de4dot跑一波blog

5.生成了一个反混淆过的exedns

程序调试

6.更名后打开,乱码问题解决ip

下断

PS:刚开始你单步跟着后面走走`F11`,遇到系统方法就`F10`跳过,或者导航返回一步`←`,在跳进方法的下一行设置个断点`F9`,而后继续运行就好

7.在程序入口处下个断资源

8.单步走一波编译

9.F11到了程序入口处变量

10.核心点乱码

11.单步跟进去后发现程序动态加载了一个dll(至于我为何知道是验证dll,请继续日后看)

12.在方法尾部,发现有个返回的bool值,大胆推测下,就是关键性的验证了

13.验证框

14.顺便输入点东西(激活码长点)

15.激活窗口关闭后会返回一个验证失败的bool值

16.调试修改看看

17.调试已绕过,可是打开的时候闪退

18.说明修改不完全,后面程序仍是经过ClassMain.boolrun来判断

19.那就编辑一下,发现特殊符号编译不经过

20.那就换个新的突破点

21.发现验证方法,那就编辑下

22.废掉验证,而后编译

23.修改完毕

24.保存下dll

25.大部分软件这一步就搞定了,可是这边仍是不行

PS:老版本这一步就搞定了,新版本会始终从资源文件中释放dll

反编译

26.那就继续上大招:Reflector打开

27.去资源列表里面找dll

拖进dnspy发现,倒数第四个就是的了

28.那感情好啊,用咱们以前调试生成的破解版dll替换下资源项的值

29.用修改后的dll替换旧的资源值

30.reflexil保存下

31.保存替换

32.ok了(根目录木有vip那个dll哦)

相关文章
相关标签/搜索