本帖最后由 千印莱菲 于 2012-3-19 21:58 编辑
笔者采用台湾繁体中文版进行测试,对安装加密过程进行了分析。
1. 安装机制
当运行Diablo III Setup.exe程序后,安装程序向一下地址获取安装配置文件:
根据配置文件内容,和笔者对安装程序的抓包,当点击安装按钮后,程序向以下地址获取进一步信息:
正常情况下,安装程序会提示:“天际异火仍未降临,暗黑破坏神III尚未面世。”
这是由于上面第二个地址d3-authenticationcode-zhTW.txt文件中,MSG命令行的作用。根据笔者分析,d3-authenticationcode-zhTW.txt为安装解密代码,负责将安装目录下的三个MPQE文件解密成以下几个MPQ文件:
ClientData.mpq、CoreData.mpq、HLSLShaders.mpq、Base-Win.mpq、OpenGLShaders.mpq、Base-OSX.mpq、Sound.mpq、Texture.mpq、zhTW_Audio.mpq、zhTW_Text.mpq和zhTW_Cutscene.mpq
并将以上文件释放咋安装目录Data_D3/PC/MPQs/下然后安装程序会继续安装游戏。
2. 加密机制
笔者建立了本地服务器,将上述的所有地址修改hosts文件设置为127.0.0.1,并在本地重建了diablo3_zhtw_disk_encrypted_win.blob、diablo3_zhtw_web_unencrypted_win.blob、d3-authenticationcode-zhTW.txt三个关键文件。
并将前两个blob文件中eula项设置为true(默认为false),将d3-authenticationcode-zhTW.txt中的MSG内容清空。
再次运行安装程序,点击安装,提示输入验证金钥,当输入的文字为32位时(数字1不能输入),提示可继续安装,并看到安装过过程图片。如下图:




笔者在本地服务器d3-authenticationcode-zhTW.txt文件中输入32位随机数列后,再次打开安装程序,不再提示输入验证金钥。
因此,d3-authenticationcode-zhTW.txt为安装所需的解密代码,解密代码为32位,负责将MPQE文件解密。
参考星际争霸2的安装程序,以上推论是正确的,现访问以下地址即可看到星际争霸2自由之翼台服的验证金钥:
3. MPQE加密机制
笔者用UE打开了文件目录下的三个MPQE文件,其文件头一致,PE结构一致,通过分析断点,而且是以12位做一次换算。通过文件的对比,MPQE所用的salsa20算法,对字节进行了加密,但没有压缩。(有兴趣者可自行对比Beta和正式文件每12位数据)
4.总结
1. 通过架设本地服务器,修改文件信息,可看到安装界面以及安装过程截图。
2. 若计算出32位验证金钥即可安装暗黑破坏神3程序。
5.说明
本文完全是抛砖引玉,作者没有对MPQE文件逆向解包,无破解意向。
本文是原创,百度暗黑3吧首发,欢迎转载,转载请注明原地址和作者。
感谢原作者 !
|