传奇源码分析-客户端(传奇2文件格式分析)
2008-06-10 12:50
615 查看
传奇文件类型格式探讨(一):Wix文件:索引文件,根据索引查找到相应数据地址(数据文件)。// WIX 文件头格式 typedef struct tagWIXFILEIMAGEINFO{ CHAR szTmp[40]; // 库文件标题 'WEMADE Entertainment inc.' WIL文件头 INT nIndexCount; // 图片数量 INT* pnPosition; // 位置}WIXIMAGEINFO, *LPWIXIMAGEINFO; 我们下载一个Hedit编辑器打开一个Wil文件,分析一下。我们发现Wix文件中,0x23地址(含该地址)以前的内容是都相同的,即为:#INDX v1.0-WEMADE Entertainment inc.Ofs44 0x2C的地方:存放着0B 00 00 00,高低位转换后为:0xB转换十进制数为11(图片数量)Ofs48 0x30的地方:存放着38 04 00 00,高低位转换后为:0x438 = 1080, 这个就是图象数据的开始位置。 我们用Wil编辑打开对应的Wil文件,发现,果然有11张图片。另外我们发现,在Ofs = 44 -47之间的数据总是38 04 00 00,终于明白,所有的图片起始位置是相同的。 Wil文件: 数据文件。前面我们说了图象数据的开始位置为0x438 = 1080, 1080中有文件开头的44字节都是相同的。所以,就是说有另外的1036字节是另有用途。1036中有1024是一个256色的调色板。而Wil里面的图片格式都是256色的位图储存。我们看到图片位置数据为: 20 03 58 02, 转化为十六进制: 0x320, 0x258 刚好就是800*600大小的图片。07 00 D4 FF为固定值(标识)。图片起始位置为:Ofs 1088: 0x440 图片大小为480000起始位置:0x440 1088 终止位置:0x7573F 481087 为了验证数据是否正确,我们通过Wil工具,把第一幅图片导出来,然后用Hedit编辑器打开,经过对比,我们发现,数据一致。大小一致。 大家看到图片1的结束位置为0fs 481077,减去1080+1 = 480000刚好800*600大小。我们用Wil抓图工具打开看一下(确定是800*600大小): 我们导出第二张BMP图片图片的大小为:496* 361, 我们从Wix中读出第二张图片的索引位置:根据贴图,我们发现第二张图片的索引位置为: 40 57 07 00,转换为十六进制:0x75740,即为:481088,前面我们讲到第一张图片的结束位置是: 0fs 481077,从Wix中读出来的也刚好为第二张图片的起始位置:(我们分析Wil中的第二张图片,起始位置:0x75740 481088) : F0 01 69 01为图片长宽: 0x1F0, 0x169 为496* 361 。 07 00 D4 FF为固定值(标识)。 我们用工具打开第二张BMP图片,从起始位置,一直选取中至结束,发现刚好选496* 361字节大小。两边数据对比之后发现一致。知道了图片格式,我们可以写一个抓图片格式的程序了。
相关文章推荐
- 传奇源码分析-客户端(WindHorn简述和传奇文件格式分析)
- 传奇源码分析-客户端(WindHorn简述和传奇文件格式分析)
- 传奇源码分析-客户端(传奇2文件格式分析)
- 传奇源码分析-客户端(传奇2和3 文件格式分析比较)
- 传奇源码分析-客户端(传奇2和3 文件格式分析比较)
- HDFS源码分析之FSImage文件内容(一)总体格式
- ffmpeg源码分析--4.关于mpeg文件格式1总
- Wireshark的Pcap文件格式分析及解析源码
- 传奇源码分析-客户端(游戏逻辑处理源分析五 服务器端响应)
- 传奇源码分析-客户端(游戏逻辑处理源分析五 服务器端响应)
- 传奇源码分析-客户端(游戏逻辑处理源分析三)
- 7z文件格式及其源码的分析
- FLV文件格式分析(附源码)
- 基于TCP网络通信的自动升级程序源码分析-客户端接收文件
- 7z文件格式及其源码的分析(二)
- 传奇源码分析-客户端(游戏逻辑处理源分析二)
- lib文件格式分析,以及从lib文件提取obj的思路和源码
- 7z文件格式及其源码的分析(四)
- MP4文件格式分析及分割实现(附源码)
- Wireshark的Pcap文件格式分析及解析源码(转)