最近研究了一下*狐的天龙**的打包文件axp格式,其实网上也有一些同学的分析,不过不是很完整。
过程:
1、OD加载游戏,通过对文件I/O的API下断点,定位游戏加载的打包文件
2、对程序读入的文件数据缓冲区下内存断点,定位索引和偏移的计算算法
3、通过IDA提取文件偏移和hash计算的代码,通过内嵌汇编测试程序
4、将代码还原成c代码

整个过程没有太大的技巧,关键是耐心和细心的考验,文件头和索引头还有一些字段无法确定其作用,许多地方是都是猜测,无法保证正确性。后还原时代码果如暴雪的mpq文件的hash算法几乎一样。具体文件格式和hash算法代码可以参考程序中的结构体的定义和代码。

收获:对汇编语言的符号扩展和c中有符号、无符号的处理和理解,这里调bug耽误很多时间

最后贴上资源提取程序代码。


                                                        by EvilLord2009@gmail.com

上传的附件 AXPUnpack.rar