本文将以 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重新编辑 ]