标准32位程序ROP流程和c语言转义字符
才学习了基本的 ROP 流程,到处找题练,不过也没做出来几道题,以这道 32 位的题作为例题吧。
这道题是 BUUCTF 上 pwn 练习题里的 [OGeek2019] babyrop。
# 代码审计
老规矩先 checksec 一下:
没有 canary 保护,nx 保护开启排除 shellcode 可能性,FULL RELEO 为地址随机化。
观察主函数,先设定了一个闹铃,到时间就会强制退出程序,解除闹铃的方法在上一篇博客中提到过了,
这道题中闹铃函数依然对我们解题起不到什么干扰作用。
主函数的思路大概是:生成一个随机数,把这个随机数作为参数传进 sub_804871F ()...
more...