我知道通常目标文件有代码、数据、堆和堆栈部分。
但我想知道这在 Windows 可执行文件和 Linux 可执行文件中是如何排列的。
我在互联网上搜索并找到了一些结构。
我知道 .text 用于代码, .data 用于全局变量。
我想知道这里是 Linux 和 Windows 平台中的堆栈和堆?
谁能告诉我可执行文件结构?
提前致谢...
我知道通常目标文件有代码、数据、堆和堆栈部分。
但我想知道这在 Windows 可执行文件和 Linux 可执行文件中是如何排列的。
我在互联网上搜索并找到了一些结构。
我知道 .text 用于代码, .data 用于全局变量。
我想知道这里是 Linux 和 Windows 平台中的堆栈和堆?
谁能告诉我可执行文件结构?
提前致谢...
这是微软发布的规范:
http://msdn.microsoft.com/en-us/windows/hardware/gg463119
这也是一个很好的阅读主题:http: //msdn.microsoft.com/en-us/magazine/cc301805.aspx
编辑:
堆栈/堆是在运行时创建/修改的内存结构,因此本质上它们不在文件本身中 - 它们不可能。将它们视为内存中的一个特殊位置,每个程序都可以存储运行时数据,运行时数据是指变量。函数调用、返回值和所有在底层发生的细节。