- 发布于
面向返回编程简介
- 作者
- Name
- CuB3y0nd
- GitHub
- @CuB3y0nd
ROP 的基础是将二进制文件文件本身中已经存在的代码块链接在一起,以便执行你想要的操作。这通常涉及将参数传递给 libc
中已经存在的函数,例如 system()
。如果你可以找到命令的位置,例如 cat flag.txt
,然后将其 作为参数 传递给 system()
函数,它将执行该命令并返回输出。一个更危险的命令是 /bin/sh
,当 system()
运行它时,它会为攻击者提供一个 shell,就像我们使用的 shellcode 一样。
然而,这样做并没有看起来那么简单。为了能够正确调用函数,我们首先必须了解如何向函数传递参数。