零基础逆向工程21_PE结构05_数据目录表_导出表

数据目录

1、我们所了解的PE分为头和节,在每个节中,都包含了我们写的一些代码和数据,但还有一些非常重要				
的信息是编译器替我们加到PE文件中的,这些信息可能存在在任何可以利用的地方。				
				
2、这些信息之所以重要,是因为这些信息包含了诸如:				
				
PE程序的图标在哪里?				
				
用到了哪些系统提供的函数?				
				
为其他的程序提供哪些函数?				
				
3、编译器添加了这么多信息,那程序是如何找到这些信息的呢?				
				
答案就是:数据目录

4、数据目录定位:

可选PE头最后一个成员,就是数据目录.一共有16个:

typedef struct _IMAGE_DATA_DIRECTORY {				
    DWORD   VirtualAddress;				//内存偏移
    DWORD   Size;				//大小
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;

#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES    16

分别是:导出表、导入表、资源表、异常信息表、安全证书表、重定位表、调试信息表、版权所以表、全局指针表
TLS表、加载配置表、绑定导入表、IAT表、延迟导入表、COM信息表 最后一个保留未使用。  

和程序运行时息息相关的表有:

导出表
导入表
重定位表
IAT表

导出表

posted @ 2017-10-04 22:28  flatcc  阅读(237)  评论(0编辑  收藏  举报