3.3k 3 分钟

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

攻防世界 string 应该是新手区数一数二的难题,难点在理解程序流程。 先观察主函数: # alarm 函数 # 什么是 alarm 函数? 如上图所示,在做一些 pwn 题的时候,我们有时会遇到 alarm(0x3Cu) 函数。alarm 函数中的参数 0x3Cu 是十六进制无符号数,即十进制对应 60,所以该函数的作用是在程序运行 60 秒后,给进程发送 SIGALRM 信号,如果不另编写程序接受处理此信号,则默认结束此程序。 # 为什么要使用 alarm...