【发布时间】:2018-10-21 09:21:30
【问题描述】:
我很难弄清楚物理地址和虚拟地址之间的关系。我有一个二进制文件,我正在 IDA 反汇编程序中加载它,它显示了地址,例如 0x000008a1 。当我在 gdb 中调试相同的二进制文件时,它显示我的地址为 0x5555555508a1 。
当我在 gdb 中执行 info proc mappings 时,它会在 libc 0x7ffff7a0d000 中给我一个不寻常的地址,该地址以 0x7ff.... 开头。
所以,我想知道
1.) 为什么 gdb 会在 IDA 显示的正确地址之前附加0x0x55555555
2.) 这些地址是什么?虚拟还是物理?
3.) 为什么libc地址以0x7ffff7a开头?
4.) 如何计算正在运行的进程的物理地址?
【问题讨论】:
标签: debugging operating-system gdb reverse-engineering memory-address