PIMAGE_NT_HEADERS 显示不同的值

PIMAGE_NT_HEADERS Showing different Values

所以当我将我的程序弹出到 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);

 it says that the value of PIMAGE_NT_HEADERS is 00004550

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

将您的打印改为:

printf("[?] - NT Headers Signature is: 0x%08x\n", PE.peNH->Signature);