c++ - Kernel32.dll 头信息

标签 c++ dll portable-executable

以下是 64 位 Windows 8 上 Kernel32.dll 前几个字节的转储。PE 签名的偏移量是存储在位置 3c 的 f8。 f8 (50 45 00 00) 处的值似乎表示适当的 PE 签名,应该后跟机器类型,在这种情况下,IMAGE_FILE_MACHINE_I386 的机器类型预计为 014C,但我们发现的是 64 86。对此有任何想法明显的差异??我知道我可能遗漏了很多关于 dll 在磁盘上的显示方式以及它们在加载到内存后的方式的知识。我正在寻找的是我可以建立的来源。 任何信息将不胜感激。

enter image description here

提前致谢!

最佳答案

那里的 6486 表示 IMAGE_FILE_MACHINE_AMD64 女巫是正确的,因为您使用的是 64 位机器。 Kernel32.dll 不是 32 位 dll,名称 kernel32 只是一个名称,在 32 位和 64 位机器上是相同的。

关于c++ - Kernel32.dll 头信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21977363/

相关文章:

QT:ssl https craches 我的 dll,抛出 IniterrorSystem.DllNotFoundException

elf - 可执行格式之间有什么区别?

c++ - C++ 语言标准对 static_cast 如何处理减小整数的大小有何规定?

c++ - 允许这种派生到基础转换的理由是什么(当它似乎违反 IS-A 时)?

c++ - 使用其他对象的类构造函数

c# - 将结构(或类)从 C++ dll 传递到 C# (Unity 3D)

python - DLL加载失败: The specified module could not be found [Python]

windows - 在 Delphi 中使用 COM 支持在 DLL 和 .EXE 之间切换

c++ - PE 文件中的跳转 stub

c++ - 当客户端关闭连接时 send() 不报告 ENOTCONN (AS400)