我编写了以下非常简单的程序:
#include <Windows.h>
#include <stdio.h>
int wmain(void) {
DWORD dwProcId = GetCurrentProcessId();
HANDLE hProc = OpenProcess(0x0400, FALSE, dwProcId);
wprintf(L"Process handle is %p\n.", hProc);
return 0;
}
当我在 x64dbg(或任何其他调试器)上打开它时,我可以看到 IAT 位于该.rdata
部分的开头,它确实包括我使用的函数,GetCurrentProcessId
andOpenProcess
和其他函数。
然而,在接近正文部分的末尾,我看到了这段代码,它似乎也像一个跳转表: 这个表是什么?
我可以看到似乎被称为 IAT 的函数也被导入,但在我阅读的任何 PE 指南中都找不到对该表的任何引用。
这个表是什么,我如何通过 PE 部分或结构以某种方式以编程方式引用它?