Linux x86-64 如何在不使用 `syscall` 或 `sysenter` 的情况下在 shellcode 中使用系统调用?
How to use a syscall in a shellcode without use `syscall` or `sysenter` for Linux x86-64?
我需要构建一个没有 0x0f
字节的 shellcode,问题是 syscall
和 sysenter
指令在它们的代码机器中有 0x0f
。有什么指令可以用来调用 execve
?
经过这里的一些工作,我找到了一个解决方案。
背后的想法是构建一个能够改变自己的 shellcode。所以我所做的是将 rpi
加载到寄存器中并在其后放置一些字节。然后我将这些字节更改为 \x0f\x05
这样,我终于执行了我的 shellcode。
我需要构建一个没有 0x0f
字节的 shellcode,问题是 syscall
和 sysenter
指令在它们的代码机器中有 0x0f
。有什么指令可以用来调用 execve
?
经过这里的一些工作,我找到了一个解决方案。
背后的想法是构建一个能够改变自己的 shellcode。所以我所做的是将 rpi
加载到寄存器中并在其后放置一些字节。然后我将这些字节更改为 \x0f\x05
这样,我终于执行了我的 shellcode。