浅谈 VFP 程序的破解
Visual Foxpro 做为一种面向对象的数据库语言,有其简单易用的特点,虽然经常受到
各种各样的批评,微软发布 6.0 版后,也曾声明版本不再更新,但现在看来, VFP 程序还是
有一定的生命力的, 微软自 6.0 版以后开发了 7.0 版,目前 8.0beta 版在微软的官方网站已有
下载。尤其在我国,早期 DOS 时代 DBaseIII 曾被广泛运用, VFP 出现后,源程序稍加改动
就能变成可在 Window 平台运行的 VFP 版本,可以节省大量的资源,减少人员的二次培训。
因此在我国 VFP 程序的用量还是较大的,专门开发此类程序的公司也不在少数。
由于 VFP 程序的编译是一种伪编译过程, 经过一定的处理, 可以得到完整的源代码。 自
从 ReFox、UnFoxAll 等反编译软件出现后,为保护作者自己的利益,软件的加密保护就显
得十分重要, 相应的, VFP 程序的加密也越来越严。 但由于 VFP 固有的特点 —即解释执行,
VFP 的解释器必须要得到可识别的代码,所以 VFP 程序的破解相对其他语音编译的程序来
说,还是比较简单的。
一、 VFP EXE 程序的特点
VFP 标准的编译 EXE 文件是如下一种格式:
可执行部分 +APP 文件 +结构说明
其中可执行部分是标准的 PE 文件, APP 部分就是 VFP 编译的应用程序代码, 最后的结
构为 14 个字节,用来描述 APP 文件,其中重要的是最后 4 个字节,反映的是 APP 文件的
大小。
头部的可执行部分只是简单地加载 VFP 的解释器(解释器名称为 vfp6r.dll 、 vfp7r.dll 、
vfp8r.dll 分别对应 6.0、7.0、 8.0.版本)执行 app 文件。现在的加密软件大多利用这个特点,
自己构造一个 PE 头,利用各种壳的技术保护 APP 代码。
因此我们可以这样认为,对于 VFP 的可执行文件,除 APP 文件以外的可执行部分,都
可认为是壳。
二 APP 文件的结构
1.app 文件结构
app 文件是 vfp 生成的应用程序或 Active Document
其结构为 :
字节偏移 说明
0-1 文件标识 &Hf2fe 为 vfp 的 app
2 加密标识 bit 0 为 1,未加密
bit 0 为 0,加密 ,此时 bit 4(0 或 1)区分为两类
3-4 编译版本 &H0220 -vfp 6.0/7.0
&H021f -vfp 5.0
5-6 文件数目
7-8 主文件位置 (从 0 开始 )
9-12 文件名列表地址
13-16 文件说明结构列表地址
17-20 文件名列表长度
21-36 加密类型密码表
37-38 解密 key
39-40 文件校验和
文件名列表地址
评论0
最新资源