首页 技术杂谈 正文
  • 本文约1466字,阅读需7分钟
  • 156
  • 0

PE文件详解 - 数据目录表

摘要

数据目录表解析

1、数据目录表

  • 数据目录表:是PE文件中各种数据结构的索引目录,由数个相同的IMAGE_DATA_DIRECTORY结构组成

  • 重点字段:导出表/导入表/重定位/IAT

    • Export Directory 导出表目录 : 用于导出此映像中的函数示例符号,以便于其他应用可通过此导出符号调用此映像的函数示例(大多用于DLL文件)
    • Import Directory 导入表 : 用于导入此映像
    • Base Relocation Table 重定位表 : 保存着需要执行重定位的代码偏移信息
    • Import Address Table IAT导入地址表 : 保存导入函数的真正地址
  • 代码表示

// 数据目录表
typedef struct _IMAGE_DATA_DIRECTORY{
    DWORD VirtualAddress; // 数据块的起始RVA地址
    DWORD Size; // 数据块的长度
}IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;
  • 数据目录表在Win32 SDK中使用了一组宏来表示不同成员的信息
// Directory Entries

#define IMAGE_DIRECTORY_ENTRY_EXPORT          0   // Export Directory 导出表目录
#define IMAGE_DIRECTORY_ENTRY_IMPORT          1   // Import Directory 导入表 
#define IMAGE_DIRECTORY_ENTRY_RESOURCE        2   // Resource Directory 资源表
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION       3   // Exception Directory 异常表
#define IMAGE_DIRECTORY_ENTRY_SECURITY        4   // Security Directory 安全证书表 
#define IMAGE_DIRECTORY_ENTRY_BASERELOC       5   // Base Relocation Table 重定位表
#define IMAGE_DIRECTORY_ENTRY_DEBUG           6   // Debug Directory 调试信息表 
//      IMAGE_DIRECTORY_ENTRY_COPYRIGHT       7   // (X86 usage)
#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE    7   // Architecture Specific Data     版权所有表 
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR       8   // RVA of GP 全局指针表 
#define IMAGE_DIRECTORY_ENTRY_TLS             9   // TLS Directory  TLS(线程本地存储表)
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG    10   // Load Configuration Directory   加载配置表 
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT   11   // Bound Import Directory in headers 绑定导入表 
#define IMAGE_DIRECTORY_ENTRY_IAT            12   // Import Address Table  // IAT(导入地址表) 
#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT   13   // Delay Load Import Descriptors  延迟导入表
#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14   // COM Runtime descriptor     COM表 
标签:PE文件
评论