仙剑5前传发售已有一段时间了,该做的工具差不多都做了,因为这学期课程较松的缘故,平时我有较多的自由支配时间,除去考研复习,最近也研究了一下仙剑4音乐SMP的解密,贴上来就当是学习笔记给大家分享了。另外,SMP解密工具网上已经有很多了,所以只想要解密音乐的同学去其他网站上下载别人做的现呈工具吧,这里目的主要是分析一下SMP文件解密原理。
进入正题,用WinHEX查看smp文件,发现文件头标识RST与CPK文件的一致,往下看几乎没有明文,果断上OD。老规矩用CreateFileW断点,在游戏程序创建p01-1.smp文件句柄时断下
返回程序领空到790C8F处,F8单步一路跟下去,790CD8-790CEE这段读取了文件头,并验证文件标识是否为0x1A545352(即RST):
00790CD5 |> 8D5E 08 lea ebx, dword ptr [esi+8] 00790CD8 |. 68 80000000 push 80 00790CDD |. 53 push ebx 00790CDE |. 50 push eax 00790CDF |. E8 FC090000 call <ReadFile> 00790CE4 |. 8B03 mov eax, dword ptr [ebx] 00790CE6 |. 83C4 0C add esp, 0C 00790CE9 |. 3D 5253541A cmp eax, 1A545352 00790CEE |. 74 38 je short 00790D28