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,问题是 syscallsysenter 指令在它们的代码机器中有 0x0f。有什么指令可以用来调用 execve?

经过这里的一些工作,我找到了一个解决方案。 背后的想法是构建一个能够改变自己的 shellcode。所以我所做的是将 rpi 加载到寄存器中并在其后放置一些字节。然后我将这些字节更改为 \x0f\x05 这样,我终于执行了我的 shellcode。