office文档出现问题的解决基础:office文件格式

  [复制链接]
  • TA的每日心情
    难过
    2012-5-23 10:04
  • 签到天数: 1 天

    [LV.1]布衣百姓

    153

    主题

    175

    回帖

    4938

    积分

    [INTOHARD]团长

    数据开拓者

    Rank: 8Rank: 8

    积分
    4938
    QQ
    发表于 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中的磁区数决定

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

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

    该用户从未签到

    0

    主题

    251

    回帖

    193

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    193
    发表于 2011-4-19 10:16:55 | 显示全部楼层
    haishigeshafaa  jidong
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-6-21 17:23
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    0

    主题

    267

    回帖

    296

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    296
    发表于 2011-4-19 10:32:17 | 显示全部楼层
    看看···学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-10-23 00:46
  • 签到天数: 2559 天

    [LV.Master]三朝元老

    35

    主题

    3051

    回帖

    3万

    积分

    Intohard Team

    【长沙凌阳数据恢复】

    Rank: 7Rank: 7Rank: 7

    积分
    37018
    QQ
    发表于 2011-4-19 11:26:41 | 显示全部楼层
    (38:看看先
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2012-8-31 11:46
  • 签到天数: 8 天

    [LV.3]八品县丞

    14

    主题

    1464

    回帖

    3162

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    3162
    发表于 2011-4-19 13:07:20 | 显示全部楼层
    好人呀.一定要回复 的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-9-19 23:02
  • 签到天数: 2 天

    [LV.1]布衣百姓

    0

    主题

    269

    回帖

    933

    积分

    [INTOHARD]连长

    Rank: 4

    积分
    933
    QQ
    发表于 2011-4-19 20:15:58 | 显示全部楼层
    有东西,肯定是要回复的哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2012-10-11 12:00
  • 签到天数: 30 天

    [LV.5]六品通判

    7

    主题

    516

    回帖

    376

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

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

    使用道具 举报

    该用户从未签到

    0

    主题

    409

    回帖

    232

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

    积分
    232
    发表于 2011-4-21 13:54:59 | 显示全部楼层
    好东西 下来学习下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    409

    回帖

    232

    积分

    [INTOHARD]排长

    Rank: 3Rank: 3

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

    使用道具 举报

  • TA的每日心情
    开心
    2012-8-28 14:15
  • 签到天数: 8 天

    [LV.3]八品县丞

    3

    主题

    142

    回帖

    104

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    104
    发表于 2011-4-21 15:10:12 | 显示全部楼层
    学习一下。。。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    快速回复 返回顶部 返回列表