从头复习ROP(持续更新中)

本文通过实践方式回顾ROP技术,涵盖32位与64位环境下利用ROP漏洞进行攻击的方法,包括寻找gadget、构造payload等关键步骤。

从头复习ROP

 

一、前言

  从考研结束就一直很浮躁,虽然在实习期间学习运用了一段时间web技术,但是新东西总是不想看,旧的东西又不断忘记。9月研究生开学,也算是新的开始了,沉下心来沉淀一些东西吧。感觉在学校的期间学习二进制是最合适的,所以潜下心来把二进制捡起来。

  话不多说了,开始吧。
 

二、参考资料

  大佬们的资料都很浅显易懂,作为基础知识一定要先读一下:

一步一步学ROP之linux_x86篇(原创乌云,所以只能贴个盗版地址了)
http://www.vuln.cn/6645

一步一步学ROP之linux_x64篇(原创乌云,所以只能贴个盗版地址了)http://www.vuln.cn/6644

CTF All In One(3.1.4章):https://firmianay.gitbooks.io/ctf-all-in-one/doc/3.1.4_rop_x86.html
 

三、软件工具

以下是本文中用到的一些工具,其中的链接都包含如何安装,故在此不详细介绍安装过程。由于想尽可能训练二进制能力,所以本文将尽可能避免使用IDA进行反编译分析。

radare2(一个功能十分强大的汇编工具)

pwndbg(gdb的一个热门插件,本文并不涉及堆的知识,因此此工具使用较少,但其提供了一个比较清晰的分析界面。)

pwntools(做二进制写脚本必备的python库)

IDA Pro 这个各位在52上下载吧

 

四、一些基础内容

  基础是很重要的,想了解二进制的内容必定是要了解一些汇编语言以及底层的函数调用机制等等。所幸在本科接触二进制的时候一定程度上了解了汇编语言的一些语法、栈与函数调用的关系、二进制文件的几种保护机制等等。所以本篇主要还是用以题目实践来复习的方式复习之前学到的知识。本人才疏学浅,如果有说错的地方大佬们勿喷。
 

五、Ropemporium题目实践(后续可能会更新)

### Kali Linux 中下载或安装 ROP 工具 在 Kali Linux 中,可以通过多种方式获取 Return-Oriented Programming (ROP) 相关工具。这些工具对于研究和开发针对缓冲区溢出和其他内存破坏漏洞的攻击技术非常有用。 #### 使用包管理器安装 ropgadget Kali Linux 提供了一个名为 `ropgadget` 的工具,该工具可以帮助分析二进制文件并找到可用于构建 ROP 链的有效 gadget 序列。要安装此软件包,可以执行如下命令: ```bash sudo apt-get update && sudo apt-get install -y ropgadget ``` 这将更新本地仓库缓存并将 `ropgadget` 安装到系统上[^1]。 #### 手动编译源码安装最新版本 如果想要获得最新的功能特性,则可以从 GitHub 上克隆官方存储库来进行手动编译安装: ```bash git clone https://github.com/JonathanSalwan/ROPgadget.git cd ROPgadget python setup.py install --user ``` 上述过程会把 Python 版本的 ROPgadget 下载下来,并按照说明完成安装操作[^2]。 #### 利用 pip 安装其他辅助工具 除了 `ropgadget` 外,还有许多其他的 Python 脚本和模块能够帮助进行 ROP 攻击的研究工作。例如 pwntools 是一个流行的 CTF 比赛框架兼 exploit 开发库,其中也包含了对 ROP 技术的支持。通过 pip 命令即可轻松安装它: ```bash pip3 install --upgrade pwntools ``` pwntools 不仅提供了丰富的 API 来简化编写复杂 payload 的流程,还内置了许多实用的小工具用于调试和服务交互测试等场景[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值