0vercl0k/rp

GitHub: 0vercl0k/rp

跨平台、多架构的高性能 ROP gadget 查找器,用于二进制漏洞利用开发。

Stars: 2134 | Forks: 272

# rp++:适用于 PE/ELF/Mach-O x86/x64/ARM/ARM64 二进制文件的快速 ROP gadget 查找器 ![构建](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/92b656262e203651.svg) ## 概述 **rp++** 或 **rp** 是一个用 C++ 编写的 [ROP](https://en.wikipedia.org/wiki/Return-oriented_programming) gadget 查找器,支持 [PE](https://docs.microsoft.com/en-us/windows/win32/debug/pe-format)/[ELF](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format)/[Mach-O](https://en.wikipedia.org/wiki/Mach-O) 可执行文件以及 x86/x64/ARM/ARM64 架构。

## 查找 ROP gadget 要查找 ROP gadget,你需要通过 `--file` / `-f` 选项指定一个文件,并使用 `--rop` / `-r` 选项指定 gadget 中允许的最大指令数量:

你可以使用 `--va` 选项自定义模块的基地址(如果你将基地址设为 `0`,则显示相对偏移),也可以使用 `--raw` 选项来分析原始代码转储 (raw code dumps)。 ## 查找指针 在构建 ROP 链时,你可能经常需要找到指向具有特定值整数的指针。要查找这些内容,你可以使用 `--search-int` 选项,如下所示:

在其他情况下,你可能需要找到指向特定字符串的指针。要查找这些内容,你可以使用 `--search-hexa` 选项,如下所示:

你也可以使用 `--va` 选项来指定你自己的基地址。 ## 构建 你可以在 [src/build](src/build) 中找到适用于所有支持平台的 shell 脚本;以下是 Linux 的示例: ``` src/build$ chmod u+x ./build-release.sh && ./build-release.sh -- The C compiler identification is GNU 9.3.0 -- The CXX compiler identification is GNU 9.3.0 [...] [16/16] Linking CXX executable rp-lin-x64 ``` ## 作者 * Axel '[0vercl0k](https://twitter.com/0vercl0k)' Souchet
标签:API接口, ARM64, Bash脚本, C++, CTF工具, DNS 反向解析, ELF文件, Fuzzing辅助, Gadgets查找器, Hakrawler, Mach-O文件, PE文件, Return-Oriented Programming, ROP链构造, x64, x86, 二进制分析, 云安全运维, 云资产清单, 内存搜索, 数据擦除, 汇编, 漏洞搜索, 逆向工程