我在玩 Hopper 并且正在查看otool
报告为具有PIE
标志的二进制文件的反汇编。
我的理解是,因此,可执行基地址将被随机化,因此跳转必须相对于当前指令指针。
然而,在 Hopper 中查看这个 PIE 二进制文件的输出,我看到绝对跳跃是这样的:
00000001000021df mov rbx, rax
00000001000021e2 test rbx, rbx
00000001000021e5 je 0x1000021c0
假设文本段加载在 的标准虚拟地址处0x100000000
,Hopper 是否只是将相对跳转转换为绝对跳转,或者我是否缺少关于位置无关可执行文件如何工作的概念?