-
-
[原创]Total Commander 8.52a 注册分析 及 Baymax补丁制作
-
发表于:
2016-6-9 14:33
12088
-
[原创]Total Commander 8.52a 注册分析 及 Baymax补丁制作
首先简单描述下该程序验证流程,然后主要谈下破解思路及补丁的制作。
软件KeyFile方式验证,启动时读取目录下的 wincmd.key,旧版本的Size为0x80,新版本为0x400。我们自己构造一个放于目录下。
wincmd.key 结构示意:
BLOCK0: 0x0 ~ 0x80 旧版本占位
BLOCK1: 0x80 ~ 0x100 待解密数据1
BLOCK2: 0x100 ~ 0x380 待使用
BLOCK3: 0x380 ~ 0x3F0 待解密数据2
BLOCK4: 0x3F0 ~ 0x400 哈希值MDX
wincmd.key 验证流程:
将 待解密数据1 进行解密,还原为 0x67 Byte数据,其格式为:
0x0 ~ 0x10 后0x57个数据的哈希值
0x10 ~ 0x13 订单号
0x13 ~ 0x17 用户数
0x17 ~ 0x19 区域简称
0x19 ~ End 用户名|公司|地址 字符串
这里看 v8.51a 的验证流程,这里验证 待解密数据1 用户数据的哈希值是否相同,若相同则解析用户数据并在软件中进行保存显示。
EDX 指向的地址即为Keyfile解密后的用户数据,EDX前0x10的数据为哈希值,偏移0x10处即为用户信息数据。
第一处验证:
004F5946 . 8D85 60FAFFFF LEA EAX, DWORD PTR SS:[EBP-5A0] ; 用户数据结算结果
004F594C . 8D95 70FEFFFF LEA EDX, DWORD PTR SS:[EBP-190] ; 用户数据解密后的数值
004F5952 . B9 10000000 MOV ECX, 10 ; 哈希长度0x10(MD变形算法)
004F5957 . E8 DCFD2000 CALL TOTALCMD.00705738 ; 比较用户信息的签名是否相同
004F595C . 0F84 AE000000 JE TOTALCMD.004F5A10
004F5962 . 33DB XOR EBX, EBX
004F5964 . 33D2 XOR EDX, EDX
提取特征码:B9 10 00 00 00 E8 ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 33 DB
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课