我正在做一个关于 PE 文件的小型研究,虽然我深入研究了每个相关问题或文档本身,但我无法解释这个问题。
为什么我可以去CFF explorer或其他一些PE编辑软件并将OptionalHeader中的IMAGE_IAT_DIRECTORY作废,程序仍然可以正常运行?
据我了解,loader 会遍历 OriginalFirstThunk 指向的 PIMAGE_THUNK_DATA 数组,解析符号,然后用对应的函数地址覆盖 FirstThunk 指向的内存。
我还了解到 IMAGE_IAT_DIRECTORY 将作为这些函数指针数组的容器,用于每个 IMAGE_IMPORT_DESCRIPTOR 中的每个相应 FirstThunk。IAT 目录什么时候需要存在?是否缺少此目录会阻止文件启动?
谢谢!