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

偶尔来避难的地方~

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  94 随笔 :: 0 文章 :: 257 评论 :: 0 Trackbacks

在WOF的OPEN BETA客户端里面,我看到很多TGL文件。看同事在玩这个游戏,我觉得画面挺精致的,于是想把它的图像文件解开。
用HEDIT打开一个TGL文件,一开始有个DFX的头标记。跳过一堆很多00的数据之后,我看到了78 9C,再根据游戏目录下的ZLIB的DLL,基本可以确定后面就是压缩过的图像数据。
从78 9C往前看,有两个BYTE[4]的数字,前面的一个比后面的大,而且后面一个等于后面78 9C开头的数据的长度。推断这两个分别是压缩前和压缩后的数据长度。
然后,我就写了个小程序解开了TGL。它里面压缩的图像数据经过检查,是DDS文件,也就是DIRECTX可以使用的一种贴图格式。用DXSDK的贴图工具即可打开。
经过仔细推敲,TGL文件的格式也基本解开,如下所描述
//文件头格式
char[4] sign; //文件标记
int specialflag;  //特殊标记(据猜测用来表示后面需要单独指定每帧的显示时间)
int unknown;    //未知(据猜测,用来指定后面的SIZE的个数)
struct SIZE{long x; long y;} sizes[4];    //图像大小描述 (据猜测用来指定图像的实际大小,文件大小,开始点和结束点)
int frameCount;   //图像帧数
int frameDispalyTime; //据猜测是图像每帧显示时间
struct RECT { long left;long top;long right;long bottom;} rects[frameCount];    //图像的显示RECT(据猜测用来确定每帧图像在实际大小里面的显示RECT)
if( specialflag == 1 ){ int frameDisplayTime[frameCount];} // 如果标记是真,这里就是每帧的单独显示时间(猜测)

根据帧数,后面有帧数个图像块,他们的格式如下:
// 图像块格式
int blockflag; //标记块是否有效,一般为1有效
int originSize; // 图像块的原始大小
int compressedSize; // 图像块的压缩后的大小
byte[compressedSize] data; //图像块压缩数据

用这个格式就可以解出TGL里面的图像了。我为了省力,直接用HGE来进行DDS的显示,做了一个TGL查看器。下面就是程序下载。

/Files/johndragon/tglviewer.zip
查看器使用方法:直接将TGL文件拖放到窗口上即可。
posted on 2010-01-25 13:27 饭中淹 阅读(4596) 评论(19)  编辑 收藏 引用 所属分类: 数据算法分析

评论

# re: WOF(名将三国)的TGL文件格式 2010-01-25 13:45 饭中淹
下期预告:WOF(名将三国)MOTIONDATA中的PKX文件的解析  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-01-25 14:28 Kevin Lynx
占位置。学下破解思路。
PS,你那个工具怎么用?貌似需要将TGL文件放在同目录且改名为stand_1.tgl ?  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-01-25 17:11 支持
多谢分享  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-01-25 17:53 饭中淹
@Kevin Lynx
有使用方法- -
你看漏了  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-01-26 08:53 Kevin Lynx
@饭中淹
- -
诡异。。我还以为你发漏了。我还用OD反汇编查找了下字符串。  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-01-26 21:48 求助
能帮忙破解下QQ飞车的data.vfs文件吗?data.vfs是飞车里的唯一一个图像、数据保存文件。只要能解压就行。  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-01-26 23:32 Randy
vfs 虚拟文件系统,被评价为最不安全的资源打包方式。但是没有人care这个。  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-01-27 03:39 驯鹿
膜拜一下破解党

顺便期待阁下的下一篇大作  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-01-27 08:28 饭中淹
@求助
如果要逆向就不破了,那是违反用户协议的  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式[未登录] 2010-02-20 23:07 菜鸟
byte[compressedSize] data; //图像块压缩数据
您好,请问下这里的data图像块压缩数据需要解压吗?如果需要解压,那么请问如何解压!  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-02-21 17:37 饭中淹
@菜鸟
使用ZLIB解压
  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式[未登录] 2010-02-22 00:51 菜鸟
@饭中淹
谢谢饭哥。。。不过我不是使用的c/c++,使用的是其他语言,我先试试去,多谢提点。  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式[未登录] 2010-02-28 13:53 123
我拖放了 怎么没反应。。就是一直白屏  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式[未登录] 2010-02-28 13:57 123
- -名将三国能成功,但是快乐西游(9城的另一个游戏)里面也有好多tgl文件,我拖进去却没反应啊。能帮下吗?谢谢大虾  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-04-30 14:24 flashria
你好 请问能提供个导出png 或 jif的功能吗?  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2010-07-01 22:12 escqs
能提供源码吗?  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式[未登录] 2011-03-17 01:12 123
请问这东西怎么使用?  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2011-04-10 00:38 不会用
我拖放了 怎么没反应。。就是一直白屏楼主能解释下吗?我菜鸟的  回复  更多评论
  

# re: WOF(名将三国)的TGL文件格式 2011-06-24 07:41 Gubot
@不会用
该文件是非标准文件,在游戏开发的过程中由关卡编辑器产生,不同的游戏有不同的关卡编辑器,生成的TGL文件格式不一样,当然不可能用一种工具来打开了。
  回复  更多评论
  


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