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

查壳

1.先看下目录结构:

记一次Net软件逆向的过程(经典)_第1张图片

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

记一次Net软件逆向的过程(经典)_第2张图片

混淆与反混淆

3.dnSpy打开后发现很多变量是乱码

记一次Net软件逆向的过程(经典)_第3张图片

4.用de4dot跑一波

记一次Net软件逆向的过程(经典)_第4张图片

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

记一次Net软件逆向的过程(经典)_第5张图片

程序调试

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

记一次Net软件逆向的过程(经典)_第6张图片

下断

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

7.在程序入口处下个断

记一次Net软件逆向的过程(经典)_第7张图片

8.单步走一波

记一次Net软件逆向的过程(经典)_第8张图片

9.F11到了程序入口处

记一次Net软件逆向的过程(经典)_第9张图片

10.核心点

记一次Net软件逆向的过程(经典)_第10张图片

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

记一次Net软件逆向的过程(经典)_第11张图片

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

记一次Net软件逆向的过程(经典)_第12张图片

13.验证框

记一次Net软件逆向的过程(经典)_第13张图片

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

记一次Net软件逆向的过程(经典)_第14张图片

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

记一次Net软件逆向的过程(经典)_第15张图片

16.调试修改看看

记一次Net软件逆向的过程(经典)_第16张图片

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

记一次Net软件逆向的过程(经典)_第17张图片

18.说明修改不彻底,后面程序还是通过ClassMain.boolrun来判断

记一次Net软件逆向的过程(经典)_第18张图片

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

记一次Net软件逆向的过程(经典)_第19张图片

20.那就换个新的突破点

记一次Net软件逆向的过程(经典)_第20张图片

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

记一次Net软件逆向的过程(经典)_第21张图片

22.废掉验证,然后编译

记一次Net软件逆向的过程(经典)_第22张图片

23.修改完毕

记一次Net软件逆向的过程(经典)_第23张图片

24.保存下dll

记一次Net软件逆向的过程(经典)_第24张图片

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

记一次Net软件逆向的过程(经典)_第25张图片

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

记一次Net软件逆向的过程(经典)_第26张图片

反编译

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

记一次Net软件逆向的过程(经典)_第27张图片

27.去资源列表里面找dll

记一次Net软件逆向的过程(经典)_第28张图片

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

记一次Net软件逆向的过程(经典)_第29张图片

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

记一次Net软件逆向的过程(经典)_第30张图片

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

记一次Net软件逆向的过程(经典)_第31张图片

30.reflexil保存下

记一次Net软件逆向的过程(经典)_第32张图片

31.保存替换

记一次Net软件逆向的过程(经典)_第33张图片

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

记一次Net软件逆向的过程(经典)_第34张图片

转载于:https://www.cnblogs.com/dotnetcrazy/p/10142315.html

你可能感兴趣的:(记一次Net软件逆向的过程(经典))