欲学本文,先看前文:一、pwn - 零基础ROP之Android ARM 32位篇(新修订,精华篇)-CSDN博客
代码、文件同第一篇,自行复制。本文唯一区别在于,我们不利用vulnerable_function打印的地址,无法定位pie base地址,直接随机碰撞(爆破)~ 有一定比例成功的可能,贴近实战!
多次运行level6,我们可以发现一个 规律,函数运行时的地址低3始终不变,都为741 !!!
通过IDA静态分析level6,看到相对地址是740。运行时地址+1了,因为此函数为thumb指令,PC需要+1
那么我们可以推导,我们想要调用的目标函数callsystem,其低三位应该就是: