主题 : 【文件分析】根据关键字所在位置来推测关键字所在的文件 (追加读取顺序分析
腰间盘突出的
级别: 论坛版主

UID: 18504
精华: 18
发帖: 2821
威望: 38 星
金钱: 298018 浮游币
贡献值: 8802 点
好评度: 10244 点
人气: 1301 点
在线时间: 1454(时)
注册时间: 2005-03-08
最后登录: 2024-09-26
楼主  发表于: 2007-01-31 10:08

【文件分析】根据关键字所在位置来推测关键字所在的文件 (追加读取顺序分析

本文将以 11700 的 SPAWN 直读光盘镜像文件,来测试用

一个常见的不重复出现的词组作为搜索关键字,来找到这

关键字所在的文件名。


这里将关键字为主菜单中的 (arcade mode 街机模式)。

用 winhex 打开光盘镜像文件,搜索这个关键字(arcade mode),

先后找了到两个包含关键字的地址。

0xEFD9458 arcade mode
0xF358288 arcade mode


下面来进行根据关键字地址找到所在文件的分析。

第一次出现位置:

EFD9458 arcade mode

减去 ----( 所在位置减去 ip 起始位置 )

101418 sega sega (IP.BIN)

等于 ----( 等于中间差距 )

EED8040

除以 ----( 除以扇区大小 2352 的十六进制 )

930

等于 ----( 等于中间扇区数 )

19FF2

( 十六进制换算到十进制 )

106482

( 当然这个值还不能用,要补上ip位置前的数值 )

106482+11700=118182


在 ISOBUSTER 中 可以看见离 118182 最近的文件就是

GAME.BIN LBA地址 103637 大小 89.37MB 93710472字节

直到 LBA 149394 处才结束,118182刚好处在这个文件中

并且用 ISOBUSTER 的扇区浏览功能在 118182处同样看见

这个关键字。经查证在这个文件中出现了这个语句。



第二次出现位置:

F358288 arcade mode

减去 ----( 所在位置减去 ip 起始位置 )

101418 sega sega (IP.BIN)

等于 ----( 等于中间差距 )

F256E70

除以 ----( 除以扇区大小 2352 的十六进制 )

930

等于 ----( 等于中间扇区数 )

1A608

( 十六进制换算到十进制 )

108040

( 当然这个值还不能用,要补上ip位置前的数值 )

108040+11700=119740


经验证这个地址也包含在 GAME.BIN 中,看来这个大文件中包含

了很多重要的信息,以后谁要是想修改啊汉化啊什么的,一定要

重点看这个文件哦!!


可惜的是这个游戏使用的贴图文件 *.TEX 我不知道用啥工具能够

查看否则就有的玩了! 哈哈哈哈哈!!!(一不小心,把我做这

个研究的目的吐露了出来!!) 哈哈哈哈 !!



Q:为什么不直接用所在位置除以扇区大小,而要这么麻烦呢?

A:因为镜像中除了数据信息外,还包含有镜像信息,区段信息

等内容,其结果会很不精确的。



这只是一个例子,除了这个关键字方法外,您还可以根据一个

已知的地址信息来反推这个地址,是在光盘的哪个文件中,您

了解这个算法,在进行游戏修改方面会很有帮助的。


2007-01-30
GLF999



PS:其实早先 YZB曾经问过我怎么根据已知的地址,来找到这个地址

是在哪个文件中。当时没有想到还要补上一个区段信息,所以没有能

准确计算出来,我也就没好意思说。

直到今天晚上(2007-01-30)有空研究这个游戏的文件,才又进行了

深入的分析。实在是抱歉希望不是很迟!!
[ 此贴被glf999在2007-01-31 15:29重新编辑 ]
俺是东北人,虽有些胖但俺是个汉子.
没念过啥书,看见不对的老想说几句.
有一点算热血男儿吧,可有人却说是"死老百姓"

禁止虐杀 狗狗
有此癖好的人禁止下载我所提供的一切软件
无论您是何原因 决不原谅
YZB
级别: 超级版主

UID: 12451
精华: 6
发帖: 19097
威望: 173 星
金钱: 2014 浮游币
贡献值: 10169 点
好评度: 54867 点
人气: 4322 点
在线时间: 19719(时)
注册时间: 2004-10-02
最后登录: 2024-11-28
沙发  发表于: 2007-01-31 15:59

我以前弄的那2001就是照1ST排的,哪到在第3关的过场还是会退出