52

记一次Net软件逆向的过程(经典) - 鲲逸鹏

 4 years ago
source link: https://www.cnblogs.com/dotnetcrazy/p/10142315.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1.先看下目录结构:

1127869-20190621110153275-1788693823.jpg

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

1127869-20190621110220155-893793148.jpg

混淆与反混淆

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

1127869-20190621110315380-416135572.jpg

4.用de4dot跑一波

1127869-20190621110412999-1446236972.jpg

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

1127869-20190621110431282-1357123417.jpg

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

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

7.在程序入口处下个断

1127869-20190621110600451-1289589035.jpg

8.单步走一波

1127869-20190621110639744-396452081.jpg

9.F11到了程序入口处

1127869-20190621110741586-884328431.jpg

10.核心点

1127869-20190621110801468-1362629601.jpg

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

1127869-20190621110820950-1153565436.jpg

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

1127869-20190621110836733-1503092972.jpg

13.验证框

1127869-20190621110949757-9756304.jpg

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

1127869-20190621111008570-56685468.jpg

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

1127869-20190621111049781-792780743.jpg

16.调试修改看看

1127869-20190621111110254-395868053.jpg

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

1127869-20190621111126943-1951512169.jpg

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

1127869-20190621111142716-412215897.jpg

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

1127869-20190621111215427-1627422552.jpg

20.那就换个新的突破点

1127869-20190621111241881-1276274186.jpg

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

1127869-20190621111307981-1335773889.jpg

22.废掉验证,然后编译

1127869-20190621111326177-463761774.jpg

23.修改完毕

1127869-20190621111342716-591610386.jpg

24.保存下dll

1127869-20190621111355583-1779196605.jpg

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

1127869-20190621111421785-1881605633.jpg

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

1127869-20190621111445712-1309046032.jpg

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

1127869-20190621111615906-760100192.jpg

27.去资源列表里面找dll

1127869-20190621111640803-850325631.jpg

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

1127869-20190621111709715-1523895569.jpg

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

1127869-20190621111736733-1460751656.jpg

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

1127869-20190621111835007-267911604.jpg

30.reflexil保存下

1127869-20190621111907866-1923824074.jpg

31.保存替换

1127869-20190621111922527-420640914.jpg

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

1127869-20190621111935345-129610345.jpg

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK