Skip to content

使用WINHEX解析DBF数据库文件结构

2013-11-27 18:08:05   来源:华军科技数据恢复

            我们知道一个文件在磁盘上的储存包括三部分:目录区、文件分配表、数据区。
 
            对于FOXBASE的核心部分.DBF文件也不例外,DBF文件在数据区的结构又可分为三部分;文件头描述区,字段结构描述区和数据描述区。
 
文文件头描述区
           包括数据库参数区和记录结构表区。数据库参数区占32个字节:   
       
     1字节    数据库开始标志(若数据库含DBT文件为80H,否则为03H)   
     2-4字节  文件建立或修改的日期(YYMMDD 其中YY=日期-1900)   
     5-8字节  数据库的记录记录数,低字节在前,高字节在后   
     9-10字节  文件结构说明区长度   
     11-12字节  每条记录的总长度   
     12-32字节  保留   
 
字段结构描述区
         包括各字段参数,每个字段占32字节:   
    1-11字节  字段名   
    12      字段类型   
    13-14   首记录中该字段对应内存地址的偏移量   
    15-16   首记录中该字段对应内存地址的段地址   
    17     字段长度   
    18     字段小数位数   
    在所有记录结构表区后是数据库结构结束标志,其中 Foxbase   以0D结束,dBASE   以0D,00结束。   
 
数据描述区
        每条记录按字段依次存放,没有分隔符,也没有终止符,每条记录以删除标志   
      20H开始,若该记录被删除,则该标志为2AH 即“*”。   
      数据库的最后一个字节为结束标志1AH。
 
 
        当新建库未录入数据时,无第三区和文件结束标志1AH,有记录时,此区总长度=字段宽度总和×记录个数,文件尾1AH标志在最后一个字节,数据按字段顺序和宽度排列,每条记录间用20H隔断。当ZAP后,原1AH标志不变,新1AH标志写在记录起始偏移字节处,数据不删除,但遇写盘操作时,将会被覆盖。 
        了解文件结构后,我们可以使用NORTON、PCTOOLS、DEBUG等工具按照本文中的一些方法对其加以利用,达到满足某些特殊要求的目的。
例如:抓住目录区的文件长、文件分配表的簇号分配链、文件头的记录个数值、数据推述区的1AH标志位置这四要素,就可以做到误作ZAP后的手工数据恢复;又因能直接对字段名及其类型改写,得以确保万条记录的安全转换。目录项适当修改后,整个文件就被隐形加密,还可以采用位移法把目录项中的起始簇号、文件长、文件头中的记录个数、数据描述区的1A标志转移到DOS保留区,以自己掌握的密码形式存放。
Back To Top
Search