我正在查看一些代码,jmp $+5
这些代码在库中的入口代码的开头有指令,紧接着将寄存器推入堆栈。我知道jmp $+5
将 IP 放在下一条指令中,但为什么会跳转到那里?没有它,无论如何都会执行下一条指令。唯一想到的是它与 PIE 相关,并以 0 的位移跳转,这可能是一个非零值,但这段代码是一个大“blob”的一部分,我不认为它的各个部分将是可重定位的,至少不能重定位到跳跃位移不为零的点。
编译器是 GCC 3.7?, linux 32 位
Version needs section '.gnu.version_r' contains 2 entries:
Addr: 0x0000000000017e0c Offset: 0x017e0c Link: 3 (.dynstr)
000000: Version: 1 File: libgcc_s.so.1 Cnt: 1
0x0010: Name: GCC_3.0 Flags: none Version: 7
谢谢