【发布时间】:2014-04-30 16:24:41
【问题描述】:
几个月前我已经问过类似here 的问题,但是我的更新中使用的解决方案当然不好,因为我不知道我想要的文件从哪个偏移开始,该代码读取整个文件直到它找到了想要的字符串,这很不方便。这就是为什么我搜索了一个用 Java 编码的 ISO9660 文件阅读器,我遇到了这个 project,它可以完美读取 ISO9660 文件,但是我希望能够打开一些文件格式,比如 bin 和 img .
不幸的是,代码不起作用,因为它期望 ISO9660 标头 \x01CD001\x01 位于标准 here 和 @987654324 定义的前缀偏移量(32768,就在前 16 个扇区之后,保留用于其他目的) @:
7.前十六个扇区是空的
前 16 个扇区(扇区编号 0 到 15,包括)只包含零。 ISO9660 没有定义这些扇区的内容,但对于 DOS,它们显然总是写为零。它们显然是保留给可以从 CD-ROM 引导的系统使用的。
就我而言,我有img 和bin 磁盘映像,它们的\x01CD001\x01 标头位于第18 个扇区结束后792 个字节的偏移量37656 处。这会使代码抛出错误。
既然有软件可以读取bin 和img 文件的内容而不需要cue 或ccd 文件,那么在这种情况下填写标题的规则是什么?它是标准还是他们通过字节粗暴地搜索标头?如果这是一个标准,我在哪里可以找到任何类型的文档/实现?
更新:我发现这些文件的扇区大小不同:2352 字节/扇区,因为它们是 CD-R 的原始副本。
【问题讨论】:
-
file命令对这些文件有什么说明(前提是您使用 Linux 或 Mac OS X 系统)? -
@fge 它只是说
data -
嗯,是的,这并没有真正的帮助......