对于复合文档碎片提取遇到的问题
2009-08-01 13:26
232 查看
对于复合文档的结构了解后,打算做一些碎片提取的实验,以下为两个文件的记录
第一个文件:
头起始于:7247664SEC (451730簇)
头的参数:
SAT个数:2
目录起始SID:251 物理位置:252
SSAT个数:无
附加MSAT:无
MSAT起始SID:249,250 物理位置:250,251
目录SAT:251,-2
目录图
ROOT-----> SummaryInformation-----> Workbook……>DocumentSummaryInformation
DID2 左节点1 右节点3
block block block block
4096B 119181B 4096B
SAT:233-240 SAT:0-232 SAT:241-248
SAT和目录发现于:420360簇
SummaryInformation发现于:420359簇
420358、420357、420356、
451730、451731、451732、451733、451734、451735
第二个文件:
每簇SEC数:16
头所在位置:1921328 118834簇
头参数:
SAT个数:72
目录SID:9147
SSAT个数:无
附加MSAT:无
MSAT起始SID:9075-9146 72个SEC 9072 118846
FDFFFFF位于偏移:460处
在位于129337,129336-128335簇处找到SAT,
目录SAT:9147,-2
目录关系图:
ROOT------>SummaryInformation ……………………>Workbook………………………………>DocumentSummaryInformation
DID2 左节点1 右节点3 无 无
block block block block
大小:4096B 大小:4638200 大小:4096B
SAT:9059~9066 SAT:0~9058 SAT:9067~9075
文件大小为:4646392BYTE 应为:568簇
workbook:0-174,+4 179个
118846
SAT处被分段存储,在位于129336簇在往上在位于128337簇找到。
该文件在位于128337簇第一次分段,128337----129336,129337
SAT所在簇连为: 128335,128336,128337---129336,129337
而文件从118834簇开始,现在假设该文件只分了一次,那么簇链应该为118834-128337,,,,129336-129337,很明显是不正确的,那么该文件可能分过多次段
经过对内容的判断从118834,118835,118836,118837,118838,118839,118840,118841,118842,118843,118844肯定是该文件的内容,11个簇.而WORKBOOK是从
SID0开始的,11个簇也就是11*16-1=175SEC,也就是WORKBOOK的前175个已经确认,而该文件的尾部有四个扇区为WORKBOOK内容,那么已经有175+4=179个扇区得到
确认!
第一个文件由于只有两个碎片所以提取比较简单,重新组合后恢复正常。而对于第二个文件由于文件碎片过多(可能有10多个),而且大部分分段处基本上位于数据区,而数据区没有太多的特征所以不好对接,这也是目前遇到的比较麻烦的问题,因为这类文件根本不是顺序存放(有的文件碎片虽多但是基本上处于由上而下的存入,如头开始于0簇,可能的簇链为0,1,2,3,15,16,-2),对于这种不按套路存放的碎片如何提取,现在根本没有办法,一团糟!!!
我试过新建一个空的EXCEL文档并提取WORKBOOK和有数据的WORKBOOK做对比,但是好像没有什么发现。
是不是该停下来休息一下了,这两天可能研究的过于多,钻了牛角尖!
本文出自 “中国CHS实验室” 博客,谢绝转载!
第一个文件:
头起始于:7247664SEC (451730簇)
头的参数:
SAT个数:2
目录起始SID:251 物理位置:252
SSAT个数:无
附加MSAT:无
MSAT起始SID:249,250 物理位置:250,251
目录SAT:251,-2
目录图
ROOT-----> SummaryInformation-----> Workbook……>DocumentSummaryInformation
DID2 左节点1 右节点3
block block block block
4096B 119181B 4096B
SAT:233-240 SAT:0-232 SAT:241-248
SAT和目录发现于:420360簇
SummaryInformation发现于:420359簇
420358、420357、420356、
451730、451731、451732、451733、451734、451735
第二个文件:
每簇SEC数:16
头所在位置:1921328 118834簇
头参数:
SAT个数:72
目录SID:9147
SSAT个数:无
附加MSAT:无
MSAT起始SID:9075-9146 72个SEC 9072 118846
FDFFFFF位于偏移:460处
在位于129337,129336-128335簇处找到SAT,
目录SAT:9147,-2
目录关系图:
ROOT------>SummaryInformation ……………………>Workbook………………………………>DocumentSummaryInformation
DID2 左节点1 右节点3 无 无
block block block block
大小:4096B 大小:4638200 大小:4096B
SAT:9059~9066 SAT:0~9058 SAT:9067~9075
文件大小为:4646392BYTE 应为:568簇
workbook:0-174,+4 179个
118846
SAT处被分段存储,在位于129336簇在往上在位于128337簇找到。
该文件在位于128337簇第一次分段,128337----129336,129337
SAT所在簇连为: 128335,128336,128337---129336,129337
而文件从118834簇开始,现在假设该文件只分了一次,那么簇链应该为118834-128337,,,,129336-129337,很明显是不正确的,那么该文件可能分过多次段
经过对内容的判断从118834,118835,118836,118837,118838,118839,118840,118841,118842,118843,118844肯定是该文件的内容,11个簇.而WORKBOOK是从
SID0开始的,11个簇也就是11*16-1=175SEC,也就是WORKBOOK的前175个已经确认,而该文件的尾部有四个扇区为WORKBOOK内容,那么已经有175+4=179个扇区得到
确认!
第一个文件由于只有两个碎片所以提取比较简单,重新组合后恢复正常。而对于第二个文件由于文件碎片过多(可能有10多个),而且大部分分段处基本上位于数据区,而数据区没有太多的特征所以不好对接,这也是目前遇到的比较麻烦的问题,因为这类文件根本不是顺序存放(有的文件碎片虽多但是基本上处于由上而下的存入,如头开始于0簇,可能的簇链为0,1,2,3,15,16,-2),对于这种不按套路存放的碎片如何提取,现在根本没有办法,一团糟!!!
我试过新建一个空的EXCEL文档并提取WORKBOOK和有数据的WORKBOOK做对比,但是好像没有什么发现。
是不是该停下来休息一下了,这两天可能研究的过于多,钻了牛角尖!
本文出自 “中国CHS实验室” 博客,谢绝转载!
相关文章推荐
- 复合文档(XLS)碎片提取案例
- 输出空白字符对于cin提取输入流遇到空格的问题Strut2教程-java教程
- 对于cin提取输入流遇到空格的问题
- 对于cin提取输入流遇到空格的问题
- 在提取CollectionView的delegate和DataSource时遇到的问题
- 对于诊断 Oracle Clusterware(CRS 或 GI)和 Real Application Cluster(RAC)问题的数据收集 (文档 ID 2017246.1)
- 【极客学院】-python学习笔记-3-单线程爬虫 (request安装遇到问题及解决,应用requests提取信息)
- 【技术文档】XuebaOnline配环境时遇到的问题和解决办法
- “Word在试图打开文件时遇到错误。请尝试下列方法:* 检查文档或驱动器的文件权限。* 确保有足够的内存和磁盘空间。* 用文件恢复转换器打开文件。”问题!
- 对于android开发配置开发环境遇到的问题
- 网易面试题之小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11. 现在给出一个N,需要求
- 对于一个小白来说,遇到的前端问题(2)
- 对于一个小白来说,遇到的前端问题(1)
- DG实施文档及遇到问题处理方法
- 对于数据库操作可能会遇到的问题(空值问题以及出现的参数不能被重复使用问题)
- 【C】用C语言提取bmp图片像素,并进行K-means聚类分析——容易遇到的问题
- VS2012遇到一个问题:"链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的"
- 上传word文档并读取word调用com组件遇到的问题
- 7、R编程参考文档,当遇到问题时,可以查阅。debugging in R
- 遇到问题----MongoDB---JAVA--大批量操作先删后存时偶尔出现保存的文档也被删除