我需要构建一个没有0x0f
字节的shell代码,问题是syscall
和sysenter
指令的代码机中有0x0f
。有什么指令可以用来调用execve
吗?
经过一些工作,我找到了一个解决方案。背后的想法是构建一个shell代码,它能够改变自己,在执行之前修改一些字节的机器代码。
所以我所做的是将rip
加载到一个寄存器中,并在之后放入一些字节。然后,我将这些字节更改为x0fx05
,这样,我终于执行了shell代码。在将所需字节放入寄存器(使用mov+xor或shift,或各种其他方式(后,我本可以使用RIP相对存储,而不是RIP相对LEA