利用DEBUG恢复数据库文件
C〉COPY ERROR.DBF AERROR.DBF
2.C〉DEBUG ERROR.DBF
-R CX
XXX0
-R BX
XXX1;以上两步是将文件长度值转化为16进制数值。
-S 100 (XXX0+XXX1) 00
XXX2;(记该值为A1)
3.求库结构字段个数及每个字段的长度
利用-D 100 A1查询 100+(2i+1)×10地址处的16进制值;记下所有的值,并将其转化为10进制数,记各字段长度为x1,x2,x3,...,xn。其中I为1,2,3,…直到100+(2i+1)×10≤A1。
令Y=x1+x2+...+xn;Z=(n+1)×32+1(Y为数据库字段和,Z为空库文件长度)。
4.求记录个数
利用公式:记录长度=(待修复库文件长度-Z)/(Y+1),令其为B。
5.将B、V转化成16进制,分别记为B1、Y1。
6.C〉DEBUG ERROR.DBF
利用-E104,E105,E106,E107依次将其修改成B1对应值(注意低位字节在前,高位字节在后)。
利用-E108,E109将其值分别修改成Y1对应值。
-S 100 (XXX0+XXX1) 1A
XXX3
-E XXX3
XXXX:XXX3 1A,00
-W
-Q
7.进入数据库系统,利用USE ERROR
BROW
可以发现所有记录全都恢复了!综上所述,可以看到,它既给我们提供了一起恢复数据文件的方法,也为我们提供了一种对数据库文件加密的方法,有兴趣的朋友可以逆着上述步骤返回去,便可以得到验证结果。
上述方法DBASEⅢ、FOXBASE+数据库系统和PC/XT、AT,AST 386/33上通过。本方法也可用PCTOOLS(PCSHELL)来实现。(重庆 冯中明)