64位PE文件导入表的修改

本文介绍了64位PE文件导入表的结构,特别关注了与32位PE的区别,主要在于_IMAGE_THUNK_DATA64结构中使用了ULONGLONG。在编写64位PE时,由于误将结构体成员当作DWORD处理,导致了问题的发生,通过调整为正确的数据类型可以解决此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

和32位PE文件没什么大的区别, 只要注意一个结构:

#include "pshpack8.h"                       // Use align 8 for the 64-bit IAT.


typedef struct _IMAGE_THUNK_DATA64 {
    union {
        ULONGLONG ForwarderString;  // PBYTE 
        ULONGLONG Function;         // PDWORD
        ULONGLONG Ordinal;
        ULONGLONG AddressOfData;    // PIMAGE_IMPORT_BY_NAME
    } u1;
} IMAGE_THUNK_DATA64;
typedef IMAGE_THUNK_DATA64 * PIMAGE_THUNK_DATA64;


#include "poppack.h"                        // Back to 4 byte packing


typedef struct _IMAGE_THUNK_DATA32 {
    union {
        DWORD ForwarderString;     &

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值