提问人:Pieter Jansen 提问时间:7/3/2023 更新时间:7/3/2023 访问量:29
记忆中的 OriginalFirstThunk
OriginalFirstThunk in memory
问:
我了解 IAT/IDT/INT 和运行时动态加载 DLL 的意义。“导入目录”(Import Directory) 表中的 OriginalFirstThunk 是指存储在“导入查找/名称”(Import Lookup/Name) 表中的函数名称(如果是序号),如果是“提示/名称”(Hint/Name) 表中的名称,则是指函数名称。但是,请看一下这个话题: https://stackoverflow.com/questions/42413937/why-pe-need-original-first-thunkoft
有人可以向我解释“Anders”的答案吗(我没有足够的积分来在这个话题中添加评论?我特别不明白这一部分:
在未修补的全新 Windows 版本上,所有函数的所有地址都在 base .DLL(ntdll、kernel32、user32 等)是已知的。以 shell32 为例,它链接到 kernel32!CreateProcess 和 CreateProcess 的真实地址可以直接存储在 shell32 中。这称为导入绑定,并允许加载程序跳过查找导入函数的所有地址的步骤。
我想我明白了,但我不确定。特别让我困惑的是......虚拟地址只能在运行时解析...?那么,这种方法与静态导入函数的主要区别是什么,静态导入函数的地址在加载到内存中并存储在 IAT 中时被解析?
答: 暂无答案
上一个:导入地址表是只读的?
评论