饭中淹的避难所~~~~~

偶尔来避难的地方~

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  94 随笔 :: 0 文章 :: 257 评论 :: 0 Trackbacks
照例,是用HEDIT打开一个PKX文件来看。
开头是一句话,这个文件格式是一个叫做ZERO的程序员创建的,仰视ZERO三秒!接下来继续。
从MOTIONDATA这个文件夹来看,这里面都是动画动作相关的数据。在HEDIT里面,可以看到PKX里面有很多动作的名字。然后,跳过这些动作名字,可以看到熟悉的"DFX"三个字母,那些都是TGL文件。
取得DFX的OFS,在前面的表里查找,不过令人失望,里面找不到。
拉到文件尾,很多包裹文件都把文件列表放在文件尾。这时,我们看到了以字母顺序排列的动作表。从第一个名字向上找,找到一个DFX,就是TGL文件,我们按照TGL文件格式往下推导,结束点正好在第一个名字前面。所以我们可以得到文件列表数据接口的起点,就是名字的第一个字节开始。
我继续往下找到第二个名字,计算下两个名字的距离是284字节。根据名字长度没有标记来判断,这个文件列表是固定长度的数据结构。
继续,根据文件头上那个表的第一个元素的名字猜测,他的数据在第一个DFX文件处。我找到第一个元素的文件列表中的数据,对比他的DFX文件数据的OFS和LENGTH,发现它的OFS和LENTH保存在文件列表数据结构的第0x104位置。从那里开始,顺序存储着64位的Ofs和32位的原始大小,以及32位的压缩后大小。当然这只是猜测。
接下来,我计算了下尾部的所有文件列表数据的长度,除以单个列表数据结构长度,得到了一个文件数目。然后,回到头部,来寻找这个数据。
很显然,肯定有这个数据的。最终我在 ofs为0x108的地方找到了,是一个32位的整数。而他前面,是64位的包文件总长度。用这两个,加上文件列表的数据结构长度,就可以定位到文件列表的位置了。
好了,有了以上数据,PKX文件就可以解开了。不过仍然还有很多数据是未知含义的,不过这不影响我们解开PKX文件。下面是文件格式的整体描述:

@packinfo(0x100) {
int64 = packsize
int32 = filecount
int32 = 0
int32 = 2
} * 1
@filedata {}
@infotable(packsize-filecount*284) {
char[10] = name
@filepos(+0x104) { 
int64 = offset
int32 = originsize
int32 = compresssize
}
} * filecount
这次挺简单的,就没工具了。最后再说下,解出来的是TGL文件。
posted on 2010-01-27 10:42 饭中淹 阅读(2656) 评论(10)  编辑 收藏 引用 所属分类: 数据算法分析

评论

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-01-27 16:22 驯鹿
首先感谢您的经验分享

可以拜托您制作一个直观的图片解压和打包工具么?= =

16位编辑软件个人实在接触的太少...  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-01-27 17:41 饭中淹
@驯鹿
那要知道各个字段的意思了,有些字段需要逆向才行。
不想去破解那么深入。能看到图就好了。  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-01-27 20:32 驯鹿
总之受教了

多谢分享经验知识  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-01-28 14:37 请赐教
文件格式如何分析啊?
现在的游戏客户端数据都是好几百兆打成一个包,不好分析  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-01-28 17:53 178米饭
LZ能留个联系方式给我么  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-01-30 16:25 韩丶小俊
朋友能不能帮忙做个工具?
这个实在看不太懂  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-02-09 02:25 搞搞地震
按照你的方法解压出来的TPL好像什么看不了,不知道怎样才能看到那华丽的技能……。  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-02-09 02:41 搞搞地震
@搞搞地震
晕,文件后缀错了,更正过来后终于可以看见了- -!  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析[未登录] 2010-03-12 18:42 123
你好,名将的四神幻境开放后,不能同时4开了,只能双开,我原本想用虚拟机来继续实现4开,但是VM的虚拟机执行效率太低,XP mode好一些但是不带显卡驱动,无法打开游戏,转而测试沙盘也不行
经过测试,阻止4开的应该是wof.exe文件本身,因为用旧版wof.exe替换可以4开,但是不能登录,用ResHacker修改版本号也不行,不知道是不是服务器端MD5效验,
另外无法通过修改wof.exe的文件名来打开程序
似乎程序有一套放钩子的系统
LZ能否研究下,因为我刚刚接触这方面的知识,不是特别懂
如果有什么进展,希望能联系我
我的Email是 liaokai5289@126.com
谢谢!  回复  更多评论
  

# re: WOF(名将三国)MOTIONDATA中的PKX文件的解析 2010-03-18 11:10 请教下
请问下用什么来解文件?  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理