rp++,简称 rp,是一款用 C++ 编写的 ROP 小工具查找器,支持 PE/ELF/Mach-O 可执行文件,以及 x86/x64/ARM/ARM64 架构。
要查找 ROP 小工具,你需要使用 --file / -f 选项指定文件,并使用 --rop / -r 选项指定小工具中指令的最大数量:
你可以通过 --va 选项自定义模块的基址(如果传入基址 0,则会得到相对偏移量),也可以使用 --raw 选项来分析原始代码转储。
在构建 ROP 链时,你经常需要查找指向特定整数值的指针。要查找这些指针,可以像下面这样使用 --search-int 选项:
有时候,你可能需要查找指向特定字符串的指针。要查找这些指针,可以像下面这样使用 --search-hexa 选项:
你也可以使用 --va 选项来指定自己的基址。
你可以在 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