我正在编写一些shellcode,我想知道如何正确调用驻留在libc中的程序集中的函数。注意下面的地址是系统函数的地址。我确定我的地址是正确的,因为如果我用这个地址覆盖返回地址,系统会被成功调用,但它似乎是在程序集中的段错误(它包含在缓冲区中)。如果有什么不清楚,请告诉我。我正在尝试在可执行堆栈上运行libc函数调用,我正在把我的头发拉出来。请注意,代码到达缓冲区正常,并开始通过相应的nop sled,但是在调用指令上有段错误(代码如下)。
mov 0xf7ff7fa5b640, %rax
mov (hex representation of /bin/sh), %rdi
call *%rax