检查ISO是否有效

时间:2013-06-27 12:00:42

标签: iso

是否有任何C#方式检查ISO文件是否有效,即有效的Iso格式或任何其他可能的检查。 如果任何文本文件(或任何其他格式文件)重命名为ISO并将其提供给进一步处理,则该场景就像。我想检查天气这个ISO文件是否是有效的ISO文件?是否存在任何以编程方式存在的方式,如检查文件或文件头的任何属性或任何其他东西

感谢您提前回复

4 个答案:

答案 0 :(得分:4)

引用维基众神:

  

ISO映像文件没有标准定义。 ISO光盘映像   未压缩,不使用特定的容器格式;他们   存储的是光盘上数据的逐扇区副本   在二进制文件中。 ISO图像应包含二进制文件   光学媒体文件系统的图像(通常是ISO 9660及其版本)   扩展或UDF),包括二进制格式的文件中的数据,   完全复制,就像它们存储在光盘上一样。里面的数据   ISO映像将根据文件系统进行结构化   用于创建它的光盘上。

reference

答案 1 :(得分:2)

所以你基本上想要检测文件是否是ISO文件,而不是检查文件,看它是否有效(例如不完整,损坏,......)?

没有简单的方法可以做到这一点,并且肯定没有可以做到这一点的C#功能(我知道)。

解决此问题的最佳方法是猜测ISO中存储的每个块的字节数。 猜测,或者只是逐个尝试所有可能的情况,除非您有一个实际存储此信息的关联CUE文件。 PS。如果ISO附带了同名.CUE文件,那么无论如何你都可以99.99%确定它是一个ISO文件。

每个块的大小为2048(用户数据)或2352(原始或音频)字节。其他尺寸也是可能的!!!!我刚才提到了两个最常见的。在每块2352字节的情况下,用户数据从该块中的偏移量开始。通常为16或24,具体取决于模式。

接下来我会尝试检测CD / DVD文件系统。假设图像从扇区0开始(尽管你可以安全地实现一个假设为-150到16的扫描)。

您需要查看ISO9660和UDF的细节。第16,256等部门将是有趣的部门来检查!!

最重要的是,这不是一项容易的任务,您需要熟悉光盘布局和光盘文件系统(ISO9660,UDF,但可能还有HFS甚至是BD上的FAT)。

如果您正在深入研究这一点,我强烈建议让IsoBuster(www.isobuster.com)帮助您了解每个块的大小,有哪些文件系统,以检查不同的密钥块等。

答案 2 :(得分:1)

除了上面的答案(尤其是@peter的答案):我最近制作了一个非常简单的Python工具,用于检测截断/不完整的ISO图像。绝对验证(正如@Jake1164正确指出的那样是不可能的),但可能对某些场景有用。它还支持包含Apple(HFS)分区的ISO映像。有关更多详细信息,请参阅以下博文:

Detecting broken ISO images: introducing Isolyzer

该软件的Github回购在这里:

Isolyzer

答案 3 :(得分:0)

您可以运行md5sum命令来检查图像的完整性

例如,这是ISO的列表:http://mirrors.usc.edu/pub/linux/distributions/centos/5.4/isos/x86_64/

你可以跑:

md5sum CentOS-5.4-x86_64-LiveCD.iso

输出应该与1805b320aba665db3e8b1fe5bd5a14cc相同,您可以从这里找到:

http://mirrors.usc.edu/pub/linux/distributions/centos/5.4/isos/x86_64/md5sum.txt