当前位置: 代码迷 >> 汇编语言 >> 超过四字节偏移的跳转该用什么指令
  详细解决方案

超过四字节偏移的跳转该用什么指令

热度:162   发布时间:2016-05-02 04:28:55.0
超过4字节偏移的跳转该用什么指令
各位大牛,我主要做应用的,目前有个项目需要用到少量汇编知识,但又没时间从头看了,希望有了解的朋友给点建议。
在64位应用程序中,希望能够在执行过程中在改写某个系统函数的首部,直接跳转至自定义的一个函数。
我是调用0xe9指令进行跳转
但发现有些函数间的地址与自定义函数地址的偏移量大于4字节的容纳长度。
请问有何方法可以处理。图片中显示的是地址的差值超过了4字节
------解决思路----------------------
64 位,没写过,只是偶尔看了点儿。
跳转偏移大于 dword,不能用 E9 这样的相对跳转指令了吧,只能将目标地址放在通用寄存器或内存里,通过 FF /4 间接跳转指令进行(如 FF E0 = jmp rax, 41 FF E1 = jmp r9)。

intl 的 64 位就是在 32 位上打了些恶心的补丁而已。
  相关解决方案