|
拎胡冲 QQ:86081166 ACCESS2003
在与网友讨论ACCESS的时候,曾有网友提出ACCESS是复合文档,这种说法有一定的道理,如下图,在MDB文件当中,也有象WORD和excel一样的文件头,同样, MSAT 、SAT以及root entry都是存在的,只是位置发生了偏移,并非如EXCEL一样在偏移512=0。那么ACCESS是不是就是复合文档呢?
再进一步分析发现,MDB文件与SQL SEVER以及 ORACLE等大型数据的存贮方式一样,采用分页存贮,每8个扇区为一页。而ACCESS分:数据库定义页、数据页、表定义页、中级索引页、叶索引页、点阵图页.那么可以看到,ACCESS综合了复合文档和数据库的两种特性于一体。从二进制的结构来看,ACCESS为数据库。
现在我们就按照数据库的结构来分析这个MDB,前面介绍过,ACCESS已知的五种类型页。每个类型页的第一个字节如下:(就不再一一截图)
0x00数据库定义页
0x01数据页
0x02表定义页
0x03中级索引页
0x04叶索引页
0x05点阵图页
0x00为数据库定义页,也就是我们常说的“文件头”所在的页,逻辑为第一页,第一个扇区,以下是文件头的结构:
偏移512=0为00H,是MDB文件的开始,颜色标注的为固定值5374616E64617264204A6574204442H,(按照RAW方式恢复文件时,可搜索此固定值)。在偏移0x14位置为ACCESS的版本,此处为JET4,即我们常说的OFFICE2003 此处的数值会根据版本的不同会有不同的变化,现在的OFFICE2007此处的数值为02,我们暂且称他为JET5。以上的分析,或许能帮你修复一些简单的MDB文件错误。
但由于OFFICE文档的格式一直是微软公司的技术秘密,至今未向外界公布,而且采用了OLE/COM技术,数据结构非常复杂,要完全揭开OFFICE的秘密,还有待于各位网友的深入研究。 |
|