1. IDA

- 本题与第三题的区别在于这个题的参数不是寄存器,而是直接使用了栈
- 这个本质上是与32位程序的参数调用顺序有关
- 上一道题我们直接跳过了输入函数,因此eax,ebx,edx依次压入栈,所以我们直接修改寄存器的值就行
- 本题我们需要手动布置栈
2.栈布局
- 查看一下动态汇编代码

- 这个偏移也比较好算
- esp只需要抬高0x8即可
- 然后push我们预先设置好的符号向量
3.栈空间

- 大致我们的栈就布置成这样
- 然后我们就可以顺利执行exp了
4. exp
import angr
import claripy
filename = "04_angr_symbolic_stack"
p = angr.Project(filename)
startAddr = 0x08048697
init_state = p

本文介绍如何使用angr工具进行栈符号执行。通过手动布置栈来解决参数传递问题,并展示了具体的exp脚本实现过程及执行结果。
最低0.47元/天 解锁文章
464

被折叠的 条评论
为什么被折叠?



