【发布时间】:2017-05-06 12:58:12
【问题描述】:
我正在尝试重新编码一个简单的 ftrace,但我无法理解像这样的 FF 间接调用:
ff 15 76 0b 20 00 callq *0x200b76(%rip) # 600ff0 <__libc_start_main@GLIBC_2.2.5>
它是否像带有偏移量的 E8 指令一样工作?如果没有,如何找到调用点的地址?以及该调用的返回地址?
【问题讨论】:
-
你的调试器/反汇编器不是在旁边的注释中给你目标地址吗?它正在调用
__libc_start_main。它会像任何其他函数调用一样返回。 -
@CodyGray 那不正确。它正在调用存储在该地址的任何内容。