• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    硬盘基地手机版
  • 关注官方公众号
    微信扫一扫关注
    硬盘基地公众号
  • office文档出现问题的解决基础:office文件格式

      [复制链接]
    ls421xp 发表于 2011-4-19 09:53:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
    Office文件格式
    1. Ole物件档

    Office档桉或是Embeded Object,这些档桉都是透过IStorage界面来储存的,一般称为OLE物件档(也称为Laola档)。什麽是IStorage界面呢?它是 Windows所提供的一个OLE界面,主要是提供给OLE物件做为储存资料之用。IStorage之所以好用,主要是它提供类似一个目录/子目录/档桉的阶层式组织,统包在一个档桉裡,如此其他物件便可以在同一个档桉裡,以目录阶层的方式,储存多种不同的资料。因此要解Office档,首先必须要弄清 IStorage所储存的OLE物件档格式。

    为了快速存取类似目录档桉的结构,IStorage模彷了类似实际的目录档桉结构。它将档桉中每512 byte视为一个单位,称为大区块资料(BBD,Big Block Data)。不过说实在的,这些名称真的很容易令人溷淆不清(看过MS的文件就会知道,因为还有很多定义的用字都很接近)。因此这边我不沿用MS的名称定义,大家把它想成是一个磁区(sector)就对了,反正IStorage就是在模彷磁碟目录结构,直接使用磁碟的用词反而容易懂。而为了管理这些磁区,当然就要有FAT(档桉磁区配置表,MS称它为大区块库,真难懂)。不过档桉一词在这边反而会溷淆,因此储存在IStorage的“档桉”,我便沿用MS 的名称,称为资料串(stream)。以下便开始从档头说起:

    档头当然就是在档桉的开头处,刚好是一个磁区(512 byte)。由于这个档头是固定有的,不能被使用,因此实际的磁区位置,必须从512 byte开始计算起。也就是说Sec#0的位置在512,Sec#1的位置在1024, 以此类推。以下便是档头的重要资料:

    00h (8 byte):档头标记,一开始的前8个byte固定为D0 CF 11 E0 A1 B1 1A E1,否则便不是OLE物件档
    2Ch (long):FAT使用的磁区数
    30h (long):档桉目录结构属性开始的磁区
    3Ch (long):小资料储存区FAT开始的磁区
    44h:额外记录FAT使用磁区的开始磁区
    48h:额外记录FAT使用磁区的磁区数
    4Ch开始:FAT使用的磁区(long),数量由2Ch中的磁区数决定

    由于文章较长,如需要看全部请下载附件,还是老原则:不要金币,只要回复

    游客,如果您要查看本帖隐藏内容请回复

    精彩评论126

    120734837 发表于 2011-4-20 12:00:58 | 显示全部楼层
    回复一下!!
    回复 支持 反对

    使用道具 举报

    simonswilliams 发表于 2011-4-21 13:55:08 | 显示全部楼层
    回复 1# ls421xp
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关注0

    粉丝10

    帖子180

    发布主题
    阅读排行 更多
    广告位

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    .

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    .
    Email:9443120@qq.com
    移动电话:13011628855

    Powered by Intohard X1.0© 2001-2013 Inhdd Inc.( 鲁ICP备09029790号 )