malloc_hook && one_gadget

之前经常遇到one_gadget条件不满足使得最后覆盖malloc_hook之后无法getshell,前两天从ex师傅那里学到了一个好办法。

将one_gadget 填入realloc_hook处,然后malloc_hook处填上__libc_realloc处的地址,因为调用realloc时会先检测realloc_hook,所以仍然能够调用one_gadget,为了能够满足one_gadget的条件(一般是对栈内存有要求),可以通过realloc代码开始处的寄存器push操作来进行栈帧调整,使得条件满足来getshell