早就有人叫我写个封包分析教程
我今天有点时间写个
http://blog.csdn.net/luozhuang/archive/2010/12/31/6110010.aspx
游戏文件黑盒分析吧。
黑盒来源于软件测试词语http://baike.baidu.com/view/51274.htm
也就是我们不分析任何程序汇编。
三大妈有个封包分析组,也是类似的。黑盒分析下资源文件
工具 大家可以找自己喜欢二进制编辑工具 比如winhex
这个封包是最简单的,因为没有任何压缩。。。
分析文件名:日文原版script.dat 文件
没有装游戏这里可以下载:
http://hotfile.com/dl/100048813/d53730d/script.dat.html
0000h: 50 41 43 4B 44 41 54 2E 01 04 00 00 01 04 00 00 PACKDAT.........
0010h: 69 39 35 5F 30 31 2E 74 78 00 00 00 00 00 00 00 i95_01.tx.......
0020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030h: 40 C0 00 00 00 00 00 20 62 00 00 00 62 00 00 00 @...... b...b...
0040h: 69 39 35 5F 30 32 2E 74 78 00 00 00 00 00 00 00 i95_02.tx.......
0050h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060h: A4 C0 00 00 00 00 00 20 94 00 00 00 94 00 00 00 ....... ........
应该知道的:
游戏汉化中的一个重要的步骤是对资源的解包以及封包。
这个游戏引擎名叫InnocentGrey
前8个byte(0x0-0x7)
PACKDAT->magic
magic 作为识别该引擎的表示,因为很多游戏都采用.dat后缀名。
01 04 00 00 我们没有知道确切意思标记为Unkown 未知吧
后面又来个01 04 00 00 请大家看看winhex 数据解释器
代表32bit数据类型的1025
可能就是说这个包里面有1025个文件?
其实可以比较下Crass输出结果,这个文件解包以后有1025个文件,符合我们分析结果。
0010h: 69 39 35 5F 30 31 2E 74 78 00 00 00 00 00 00 00 i95_01.tx.......
0020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
很明显是文件名 不说了
0030h: 40 C0 00 00 这是什么呢
winhex 数据解释器 显示为32bit的 49216
这又是什么意思?
Alt+G 把这个数据扔进去看看
很明显 跳转到这里:
C020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
C030h: 0C F6 1E 00 00 00 00 20 E6 00 00 00 E6 00 00 00 ....... ........
C040h: 81 40 94 92 8D 9C 89 BB 82 B5 82 BD 8A D4 8B 7B .@.............{
C050h: 94 FC 90 E1 82 C6 8E 76 82 ED 82 EA 82 E9 88 E2 .......v........
81 40这里明显肯定这个值是偏移地址,而且是对应于文件开头偏移。
C语言有个fseek函数
fseek( stream, 偏移地址, SEEK_SET);
00 00 00 20 我们没有知道确切意思标记为Unkown 未知吧
62 00 00 00这两个我简单说明下
这个引擎存在压缩格式
遇到压缩算法就必须给出 压缩前长度和解压缩后长度。
类似这样的调用:
uncompress(uncompressbuf,compresslen,uncompresslen);
这个文件没有压缩,所以这两个值完全一样的。
这个封包经过分析以后 格式如下
文件头:
char [8];//"PACKDAT." 50 41 43 4B 44 41 54 2E
32bit ?;
32bit 索引数目;
索引:
char [32];
32bit 偏移地址;
32bit ?
32bit 压缩/解压缩后大小;
32bit 压缩/解压缩后大小;
压缩/解压缩后大小 我没有继续辨认,这个可以从其他文件辨认,压缩后大小必然小于解压缩后大小。
将32bit 这些转换成程序格式:
8bit char-〉BYTE
16bit-〉short
32bit-〉int
现在可以提取/写回这个封包了。不管写代码还是手工都可以试试看吧。
加密部分:
剧本部分
加密比较简单 Xor FF
分享到:
相关推荐
怎样制作GAL器件的JED文件.pdf 可编程逻辑器件 在 固化 也称烧录或下载 之前要制做一份扩展名为 的文件 , 中文名称 叫 熔丝 图文件 。 该文件的制做需要有专用软件的支持 例 如 、 等国外知名的软件 , 国内常用的...
GAL ,GAL使用教程 也就一个GAL如何使用的教程,妈呀非得20个字符,太长,值得下载的
GAL器件及应用 GAL器件及应用 GAL器件及应用
GAL编程与应用 编程原理 技术规范 十七个应用应用范例
galok.exe 文件为解LATTES,NS,SGS,VLSI厂家的GAL,16V8,20V8A/B,22v10,18v10,20xv10等芯片 palceok.exe文件为解AMD厂家的PALCE16V8.20V8等芯片 使用说明 软件使用方法与编程方法一样,以解lattes的gal16v8b为列 键入 ...
stata命令:GWT转dta 或者GAL转dta
少见的实用开发低密度逻辑器件工具,并且有详尽的开发工具介绍和步骤。
梯度格型自适应滤波器算法(GAL)程序,大家参考着用。
详述了使用GAL16V8设计该一个二输入与门和异或门的电路的实验全过程。仅供实验参考。
2011-04-28 23:46 9,369 cpld的入门交流之一:GAL编程.txt 2011-04-28 22:55 56,320 EDA开发工具简介.doc 2011-04-28 22:32 278,016 ABEL语言.ppt 2011-04-28 22:34 186,241 ABEL_PLD_编程笔记.pdf 2011-04-28 22:33...
GAL可重编程逻辑阵列丛书。 目录 一、GAL器件原理及有关技术 二、GAL编程系统原理 三、GAL器件和应用 ....... 共185页
自制GAL编程器,介绍一种利用PCB并行机接口对GAL进行编程的编程器的制作方法
Atmel提供的GAL编译工具 Atmel提供的GAL编译工具
gal 16v8的控制程序 pld可编程控制器件 仅供参考
GAL编程器原理与应用技术,超星文件版本,文件比较老,但是很基础,很详细,适合初学
SPEC-MK2006GAL HDD规格
用可编程器件GAL16V8设计可变长度的序列信号发生器
GAL16V8中文资料,全中文 GAL,通用阵列逻辑,英文全称:generic array logic。 GAL器件是从PAL发现过来的,其采用了EECMOS工艺使得该器件的编程非常方便,另外由于其输出采 用了逻辑宏 单元结构(OLMC—...
Gal2Renpy说明文档(Documentation):Gal2Renpy是一个游戏剧本解析器,用于将自定义格式的游戏剧本转换为游戏引擎ren'py的脚本,目的是将剧本文件和脚本代码完全分离,让剧本写手能够安于剧本创作。Gal2Renpy拥有清晰...
GAL(读为“盖尔”)是一种随机逻辑器件,该原件无固定逻辑功能,需通过编程操作(也称固化或烧录)来行到所需要的逻辑功能。