【发布时间】:2019-06-23 15:40:56
【问题描述】:
我是 IT 领域的新手,最近我玩了一下调试器和反汇编器。 查看 hopper 工具中的二进制文件,我注意到我们有静态分配给它的内存地址。我的问题是:为什么如果操作系统管理内存(每次运行二进制文件时都会更改函数的地址等),我们在二进制文件中还有一个静态内存地址(?)实际示例:
打开 hopper 中的二进制文件,显示 printf 位于地址 0x11ed,然后在 gdb 中运行程序,显然我们在不同的地址有 printf。是为二进制文件分配静态地址的编译器吗?为什么?有什么推荐的资源来了解更多吗?
【问题讨论】:
-
您可能想要检查“虚拟地址”,请参阅stackoverflow.com/questions/9414565/…
标签: memory-address