gpt4 book ai didi

linux - elf 可执行文件头的入口点

转载 作者:太空宇宙 更新时间:2023-11-04 10:19:17 25 4
gpt4 key购买 nike

为什么elf的入口点是0x8048320. 来自This问题,它是操作系统内核用来映射进程的虚拟地址。但是From This ,进程映射的虚拟地址(在 x86 处理器中)是 0xc0000000(用户空间的低 3GB 和内核空间的高 1GB)。现在这个 0x8048320 起点地址背后的理论是什么。它不应该是 0c0000000h 吗??

问候,

最佳答案

入口点 不是可执行文件映射的开始。它是程序启动时将运行的第一条指令的地址。因此,它通常位于 .text 部分的中间。

如果您使用 GCC 或兼容的编译器,它将是 libc 中函数 _start 的地址。这是最终将调用您的 main() 的函数。

在您的示例中,0x8048320 基地址 可能是 0x8000000_start 的偏移量将是0x48320

然而,在我的机器中:

$ readelf -h /usr/bin/ls | grep Entry
Entry point address: 0x404030

所有这些虚拟地址通常由编译器和/或链接器决定。

关于linux - elf 可执行文件头的入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44582082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com