码迷,mamicode.com
首页 > 其他好文 > 详细

PE 导入表

时间:2020-02-18 12:42:24      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:名称   pe文件   first   rtu   dir   多个   time   import   虚拟地址   

在扩展PE头是一个名为_IMAGE_OPTIONAL_HEADER的结构体

其中存在一个结构体数组为IMAGE_DATA_DIRECTORY,个数有16个,总占128字节

其中关于导入表的结构体的名称为:_IMAGE_IMPORT_DESCRIPTOR,结构体如下:

typedef struct _IMAGE_DATA_DIRECTORY {
    DWORD   VirtualAddress; //虚拟地址,存储当前导出表的地址
    DWORD   Size; //存储 当前导出表的大小
} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;

因为导入表由一堆PE文件组成,所以一般导入表都是有许多个的,导入表中存储的为当前PE需要依赖的函数等

导入表的具体结构为:占20个字节

typedef struct _IMAGE_IMPORT_DESCRIPTOR {
    union {
        DWORD   Characteristics;            // 0 for terminating null import descriptor
        DWORD   OriginalFirstThunk;         // RVA指向IMAGE_THUNK_DATA结构数组
    };
    DWORD   TimeDateStamp;                  // 时间戳

    DWORD   ForwarderChain;                 // -1 if no forwarders
    DWORD   Name;                           // RVA,指向dll名字,该名字以0结尾
    DWORD   FirstThunk;                     // RVA,指向IMAGE_THUNK_DATA结构数组
} IMAGE_IMPORT_DESCRIPTOR;

如何判断导入表的个数?

首先先找到导入表的位置: 0x00024000

技术图片

PE 导入表

标签:名称   pe文件   first   rtu   dir   多个   time   import   虚拟地址   

原文地址:https://www.cnblogs.com/zpchcbd/p/12325556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!