我试图了解 Windows 如何使用 IAT 解析函数。
我注意到当调用 Win API 函数时,该调用的结构并不总是相同的(它在二进制文件中仍然是一致的,但在两个不同的二进制文件之间则不同)。
有时,如果我遵循该调用的目标地址,我会发现跳转到已解析的 Win API 函数。有时,它直接调用已解析的函数。
例如:
二进制 A 正在使用如下调用:
call ds:GetSystemDirectoryW二进制 B 是这样调用的:
call GetSystemDirectoryW -> jmp ds:__imp_GetSystemDirectoryW
有人可以向我解释调用过程中的这种差异吗?