Nisy 发表于 2009-11-9 13:01:31

黄河Flash播放器 V7.62 简单分析(十一种破解方案,初学者可检测下自己的爆破功底)

黄河Flash播放器 V7.62 简单分析

    这个软件破解不难,明码比较。该程序的验证思路比较典型,本文只谈针对脱壳版本的爆破方式,软件请自行下载。

先给出该程序的两处关键点:

---------------------------------------------------

注册时验证:

004BBB9D|.E8 1ADFFFFF   CALL 004B9ABC                  ;算法CALL
004BBBA2|.8B55 F4       MOV EDX,DWORD PTR SS:   ;真码
004BBBA5|.58            POP EAX                        ;假码
004BBBA6|.E8 3D91F4FF   CALL 00404CE8
004BBBAB|.75 34         JNZ SHORT 004BBBE1

---------------------------------------------------

启动时验证:
其中存放真码,存放假码

004C30A3      8B55 DC       MOV EDX,DWORD PTR SS:   // 真码给EDX
004C30A6      58            POP EAX                         // 假码POP到EAX
004C30A7|.E8 3C1CF4FF   CALL 00404CE8                   // 字符串比较函数
004C30AC|.75 1A         JNZ SHORT 004C30C8
004C30AE|.C605 38994C00>MOV BYTE PTR DS:,1
004C30B5|.8B45 08       MOV EAX,DWORD PTR SS:
004C30B8|.8B40 FC       MOV EAX,DWORD PTR DS:
004C30BB|.8B80 38030000 MOV EAX,DWORD PTR DS:
004C30C1|.33D2          XOR EDX,EDX
004C30C3|.E8 78E7F8FF   CALL 00451840
004C30C8|>33C0          XOR EAX,EAX

-----------------------------------------------

0分 -- 修改注册跳转:
004BBBAB|.75 34         JNZ SHORT 004BBBE1

-----------------------------------------------

以下为可以成功爆破的几种修改方式,我根据修改方法来给出相应的参考分数。

1分 -- 启动验证修改跳转法:
004C30AC75==> 74   

2分 -- 启动验证修改跳转距离法
004C30AD1A==> 00

3分 -- 修改比较寄存器法:

004C30A3      8B55 DC       MOV EDX,DWORD PTR SS:
004C30A6|.58            POP EAX
修改为:
004C30A3      58            POP EAX                                  ;00ACABE8
004C30A4      8BD0          MOV EDX,EAX
004C30A6      90            NOP

4分 -- 修改比较数据法:
004C30A5DC ==> E0

004C30A3      8B55 DC       MOV EDX,DWORD PTR SS:
修改为:
004C30A3      8B55 E0       MOV EDX,DWORD PTR SS:

5分 -- 堆栈数据利用法:
004C30A455 ==> 14
004C30A5DC ==> 24

004C30A3      8B55 DC       MOV EDX,DWORD PTR SS:
修改为:
004C30A3      8B1424      MOV EDX,DWORD PTR SS:

----------------------------------------------

6分 -- 明码比较软件自动保存真码法:
004BBBAC34==> 00
004BBBC7E8==> F4

004BBBC5      8B45 E8       MOV EAX,DWORD PTR SS:
修改为:
004BBBC5   |8B45 F4       MOV EAX,DWORD PTR SS:      // 保存真码

7分 -- 等价替换验证函数:关键数据利用法

第一处:
004C3464   .E8 ABFAFFFF      CALL 004C2F14          // 启动验证函数
修改为:
004C3464      E8 43FCFFFF      CALL 004C30AC

第二处:
004C30AC   /75 1A            JNZ SHORT 004C30C8
004C30AE   |C605 38994C00 01   MOV BYTE PTR DS:,1
004C30B5   |8B45 08            MOV EAX,DWORD PTR SS:
004C30B8   |8B40 FC            MOV EAX,DWORD PTR DS:
004C30BB   |8B80 38030000      MOV EAX,DWORD PTR DS:
004C30C1   |33D2               XOR EDX,EDX
004C30C3   |E8 78E7F8FF      CALL 00451840
004C30C8   \33C0               XOR EAX,EAX
修改为:
004C30AC      C605 38994C00 01   MOV BYTE PTR DS:,1
004C30B3      8B4424 04          MOV EAX,DWORD PTR SS:   // 修改空间不足 借用JNZ那行代码空间
004C30B7      90               NOP
004C30B8|.8B40 FC            MOV EAX,DWORD PTR DS:
004C30BB|.8B80 38030000      MOV EAX,DWORD PTR DS:
004C30C1|.33D2               XOR EDX,EDX
004C30C3|.E8 78E7F8FF      CALL 00451840
004C30C8      C3               RETN
004C30C9      90               NOP


8分 -- 等价替换启动验证函数:全局变量赋值法

修改为:
004C2F14/$C605 38994C00 01   MOV BYTE PTR DS:,1
004C2F1B|.8B4424 04          MOV EAX,DWORD PTR SS:
004C2F1F|.8B40 FC            MOV EAX,DWORD PTR DS:
004C2F22      8B80 38030000      MOV EAX,DWORD PTR DS:
004C2F28      B2 00            MOV DL,0
004C2F2A      8850 3E            MOV BYTE PTR DS:,DL
004C2F2D      C3               RETN
004C2F2E      90               NOP
004C2F2F      90               NOP


9分:将真码赋值到假码内存写ASM汇编代码实现

10分:将 strcmp 函数修改为 strcpy
...

其他的破解方式,比如SMC、Loader、注入等等,也要建立在对其验证流程的分析基础之上,有了分析结果,写代码就是手工活,所以我们这里暂不讨论。

该程序的破解方法应该还有,欢迎大家补充。这8种修改方法是本轮教学中为拓宽学员破解思路和修改方式的一个总结归纳,借此文来告诉初学者,学习软件破解要重过程,轻结果。不要为了破解而破解,不要为了发布破解而破解。

月无影 发表于 2009-11-9 20:02:01

感谢校长详细分析。慢慢吸收。

csbinghu 发表于 2009-11-9 20:25:37

感谢校长详细分析,让人非常受教

Nisy 发表于 2009-11-9 20:31:11

该帖 是作业贴 PYG学员需将本帖做成视频

yanhuohua999 发表于 2009-11-9 21:07:25

我一会根据校长和我自己的知识。。做成视频
1是学习新知识
2是巩固方法
3是加深记忆
4是备忘录呵呵

后两种有点看不懂啊~~怎么办啊

视频已经上传

[ 本帖最后由 yanhuohua999 于 2009-11-10 12:24 编辑 ]

zaas 发表于 2009-11-9 21:37:26

占位留影,待编辑

yayazhi 发表于 2009-11-9 21:50:05

收到,留作视频贴,也算是个小结。

assume 发表于 2009-11-9 21:50:35

晚上再好好总结吸收吸收

冬天的雷雨 发表于 2009-11-10 10:43:02

小弟向N大学习了/:014

cell 发表于 2009-11-10 12:54:50

后面的三种要好好吸收下。。争取晚上写好InstantDemo的作业后把N大的这个作业录好视频。。。
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 黄河Flash播放器 V7.62 简单分析(十一种破解方案,初学者可检测下自己的爆破功底)