1. 威客安全首页
  2. 安全资讯

一个完整的cpp编写的工具 – rp++

一个完整的cpp编写的工具 - rp++

一个完整的cpp编写的工具 - rp++

rp 简介: 


rp 是一个全cpp编写的工具,目的是在PE/Elf/Mach-O(不支持FAT二进制文件)x86/x64二进制文件中查找ROP序列。它是开源的,用Doxygen记录了下来(嗯,我正在尝试..)并且已经在几个操作系统上测试过:debian / Windows 7 / FreeBSD / Mac OSX狮子(10.7.3)。此外,它与x64兼容。我差点忘了,它同时处理英特尔和AT&T语法。顺便说一下,该工具是一个独立的可执行文件;我将为每个操作系统上传静态编译的二进制文件。


你可以很容易地用CMake构建rp 程序,它会为你喜欢的IDE生成一个项目文件。用rp 你还可以做一些其他的事情,比如查找十六进制值或者字符串等等。


此外,我真正喜欢rp 的酷的地方是,我可以在我的Windows桌面上的ELF/Mach-O上找到ROP小工具——我不需要启动我的虚拟机并设置一个绑定安装,或者安装免疫数据库。


高效:


是的,以下是我在个人笔记本电脑(Win7 x64、英特尔i7 Q720 @ 1.6千兆赫、4GB内存)上完成的一些基准测试:


- Target: ntoskrnl.exe x64 version 6.1.7601.17790        D:rp-win-x64.exe --file=ntoskrnl.exe --rop=8 > n        ~80s for a total of 267356 gadgets found.  - Target: chrome.exe x86 version 18.0.1025.168        D:rp-win-x64.exe --file=chrome.exe --rop=8 > n        ~13s for a total of 75459 gadgets found.  - Target: cmd.exe x86 version v6.1.7600        D:rp-win-x64.exe --file=cmd.exe --rop=8 > n        ~15s for a total of 18818 gadgets found.  - Target: bash x86 version 4.1.5.1        D:rp-win-x64.exe --file=bash-x86 --rop=8 > n        ~12s for a total of 45385 gadgets found.


如何使用它?


用法:


 ./rp [-hv] [-f <binary path>] [-i <1,2,3>] [-r <positive int>] [--raw=<archi>][--atsyntax] [--unique] [--search-hexa=<x90Ax90>] [--search-int=<int in hex>]


  选项:


     

 -f, --file=<binary path>    给二进制文件的路径      -i, --info=<1,2,3>        显示有关二进制标头的信息      -r, --rop=<positive int>    找到有用的小工具为您的未来利用,arg是小工具的最大尺寸的指令在一个原始文件中查找小工具,      --raw=<archi>          ‘archi’必须在如下列表中:x86,      --atsyntax             启用at&t语法      --unique              只显示独特的小工具      --search-hexa=<x90Ax90>   尝试查找十六进制值      --search-int=<int in hex>   尝试查找特定整数值      -h, --help             帮助      -v, --version           版本信息


在哪里下载独立的二进制文件?


我已经生成了一个x86和x64版本的窗口(在Win7 x64上用VS 2010编译)、Linux(在Debian x64 6.0.1上用gcc 4.4.5编译)、FreeBSD(在FreeBSD 8.2上用gcc 4.2.1编译)和麦克OSX(在OSX 10.7.3上用gcc 4.2.1编译;没有静态链接):https://github.com/0vercl0k/rp/downloads


以下是sha1sums:


a2e71e88a5c14c81ae184258184e5d83082f184d *rp-fbsd-x6429c2d5462865d28042bffe9e723d25c19f0da1f7 *rp-fbsd-x8657e23ef42954a08c9833099d87544e2166c58b94 *rp-lin-x64efcaf2a9584a23559e3e5b109eb37cbde89f8b29 *rp-lin-x865c612b3eff470b613ea06ebbbb882f0aaef8e3b4 *rp-osx-x642e32273b657b44d6b9a56e89ec2e2c2731713d87 *rp-osx-x86e5e6930eb469e92f79b59941330f23daf62800be *rp-win-x64.exe83d4d9f9e73a60a31e495e2fbd2404c560f1a27 *rp-win-x86.exe



接触:


实际上,我真的很想改进这个项目,所以真的,如果你对这个工具有任何意见(包括:功能请求,错误报告或者给我买啤酒),请随时联系我——你可以通过IRC/推特/电子邮件联系我!


如果你有编码的酷特性,并且你想分享它们,发送给我合并查询,如果我喜欢它们,我会合并它们。


感谢测试员:伊凡尔斯、赫尔斯、乌法克斯和爸爸。感谢:亚历山大·休默指出了IA64的错误,巴邦(MZ签名),纳克(打字错误),特伦斯(搜索中的输出错误)。


【文章来源】:

一个完整的cpp编写的工具 - rp++


推荐文章++++

一个完整的cpp编写的工具 - rp++

*INAV—-日志审查导航工具

*xray一款强大的web漏扫工具

*1024tools工具箱


一个完整的cpp编写的工具 - rp++

一个完整的cpp编写的工具 - rp++

原文始发于微信公众号(黑白之道):一个完整的cpp编写的工具 – rp++

本文转为转载文章,本文观点不代表威客安全立场。

发表评论

登录后才能评论