VFP“结构类型”应用,PE导入表、导出表
VFP“结构类型”应用,PE文件导入表、导出表
导入表,是PE数据组织中的一个很重要的组成部分,它是为实现代码重用而设置的。
通过分析导入表数据,可以获得诸如PE文件的指令中调用了多少外来的函数,以及这些
外来函数都存在于哪些动态链接库里等信息。
导出表,它描述了导出表所在PE文件向其他程序提供的可供调用的函数的情况。
一般情况下,PE中的导出表存在于动态链接库文件里。导出表的主要作用是将PE中
存在的函数引出到外部,以便其他人可以使用这些函数,实现代码的重用。
通常情况下,导出表存在于动态链接库文件里。但不能简单地认为EXE中没有导出表,
例如 WinWord.exe 文件里就有;也不能简单地认为所有的DLL中都有导出表,例如一些
专门存放资源文件的DLL里就没有导出表。
导出表的存在可以让程序的开发者很容易清楚PE中到底有多少可以使用的函数,但如
果没有函数使用说明,开发者也只能通过名称、反汇编代码或者运行结果对函数的调用方
式、函数的功能等进行猜测。如同 WinAPI 函数一样,每位开发者可以通过MSDN网站获取
对每个API函数的声明、功能介绍、参数介绍,甚至调用实例。
导出表的作用有两个:
一是可以通过导出表分析不认识的动态链接库文件所能提供的功能。
二是向调用者提供输出函数指令在模块中的起始地址。
最新更新代码打包一起,有兴趣的可以下来看看,有问题可以共同探讨。
代码包括 PE_FileHeade、PE_ICON、PE_Import和PE_Export 相关部份,主程序项目在:
...\PE_File\PE_FileHeader\PE_FileHeader.pjx
...\PE_File\PE_Resource\PE_Icon\PE_Icon.pjx
...\PE_File\PE_Import\PE_Import.pjx
...\PE_File\PE_Export\PE_Export.pjx
代码采用相对路径搜索模块文件,测试时先保留这个目录结构,并且从主程序(PRG)运行。
测试环境:Win10 + VFP9
相关帖:
https://bbs.bccn.net/thread-510517-1-1.html
https://bbs.bccn.net/thread-510587-1-1.html
PE_File.rar
(1.64 MB)