基础知识:AMD64汇编中的call指令

最近patch一个程序,需要更改一个call指令使之调用另一个函数。在x86汇编中,call(FF 15)后面通常接的就是4个字节的函数地址。然而在AMD64汇编中,call(FF 15)后面还是4个字节,而且并不是直接的函数地址。那么后面这四个字节是什么意思呢?

如图,FF 15是call指令,后面是0x002880DD。而最后指向的函数是0x1405597E8。这其中的换算关系是这样的:

当前指令地址0x1402D1705+当前指令长度0x6+操作数0x002880DD=目标地址0x1405597E8

添加评论

Loading