【问题标题】:PIMAGE_NT_HEADERS Showing different ValuesPIMAGE_NT_HEADERS 显示不同的值
【发布时间】:2020-10-31 22:27:46
【问题描述】:

因此,当我将程序弹出到 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);

【问题讨论】:

  • 您打印的是 指针,而不是它指向的值。

标签: c winapi portable-executable file-mapping nt


【解决方案1】:

它说 PIMAGE_NT_HEADERS 的值是 00004550

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

将您的打印改为此:

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

【讨论】:

  • 是的,你是对的,抱歉没有意识到这实际上是阅读文档的指针。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多