-2

因此,当我将程序弹出到 CFF 资源管理器中时,我目前正在尝试本地映射挂起的线程,它说 PIMAGE_NT_HEADERS 的值是 00004550: 在此处输入图像描述

但是,在尝试自己绘制它时,我的值是 00400080: 在此处输入图像描述

typedef struct pe {
    PIMAGE_DOS_HEADER peDH;
    PIMAGE_NT_HEADERS peNH;


} pe;

PE.peDH = (PIMAGE_DOS_HEADER)imgBase;
PE.peNH = (PIMAGE_NT_HEADERS)((u_char*)PE.peDH + PE.peDH->e_lfanew);
printf("[?] - NT Headers section is located at: 0x%x\n", PE.peNH);
4

1 回答 1

1

 它说 PIMAGE_NT_HEADERS 的值是 00004550

不,它没有。再仔细看一遍。它实际上说结构的Signature字段IMAGE_NT_HEADERS00004550. 但是您不是在打印Signature,而是在打印PIMAGE_NT_HEADERS指针本身。不是一回事。

将您的打印改为:

printf("[?] - NT Headers Signature is: 0x%08x\n", PE.peNH->Signature);
于 2020-07-11T10:17:17.567 回答