国庆没什么事,一直在研究脚本。昨天有一个同行想要一个MOV的批量提取脚本,我试着自己写了一个DOC的脚本(不考虑碎片),已经实现了DOC的批量提取,不过遗憾的是脚本以SEC为单位,速度比较慢。一直想着如何做到簇级提取(这样似乎能快一些),不过却遇到一些麻烦:
1、对于DOC来说它的头所在的位置是固定的(OFF:512=0),这个使用脚本可以很轻松的定位,因为它总是位于簇首
2、DOC的文件尾虽然也是固定的,但是对于簇而言它是随机的,文件大的可能会位于簇尾,文件小的可能位于簇首或簇中间,这可是个麻烦
3、为了解决2带来的麻烦,试着通过偏移值/512再取余数来比较以判断其是否位于一个簇首,如果是就移一个簇,否则移动一个SEC,直到能整除为止。可是WINHEX脚本不支持MOD,只好放弃
目前对于批量提取如何能够提高速度,还是没有好的办法,难道不考虑簇,通过文件结构来提取文件才可以吗?(这种情况好像是目前大多数软件的方法,不过算法太复杂了,以自己现有的能力是实现不了的)