|
一个iso文件,打包了多个文件,其中有文件A,现在要获得文件A的内容,怎么办?
一种方法是先利用某工具挂载iso成为虚拟光盘,然后iso里的文件就如同磁盘上的文件,从中找文件A来读取其内容就行了。
另一种是不挂载ISO,而直接读出A的内容,这是可以办到的。
A的内容实际上占据iso内某片连续区域,这片区域从何处开始,长度多少,看iso文件的头部就可以确定。
知道了文件A在iso内的偏移和长度,那么打开(fopen)整个iso文件,指针定位(fseek)到适当的偏移,连续读取(fread)适当长度的内容就得到A的内容了。
这里直接读出A的内容,过程中并没有产生一个磁盘文件A让第三方去使用,但已经得到其内容了,可以作某些运用啦。非要一个文件A不可的话,把得到的文件内容再写出到磁盘形成文件A就是了。但这样就变成另一个问题了——怎样从iso里提取生成文件A?许多现成压缩解压工具(含命令行版本)都能直接从iso里析出其内任一文件或文件夹。
0PE提供的批处理可生成针对iso文件优化的grldr,此grldr对iso内文件是直接读取的,而不是先映射iso为虚拟光盘再从后者读取的,这样对于某些老机加快了PE启动速度。 |
|