一个完整的cpp编写的工具 - rp++
2020-03-03 12:22:14 Author: mp.weixin.qq.com(查看原文) 阅读量:127 收藏



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=<\x90A\x90>] [--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=<\x90A\x90>   尝试查找十六进制值

      --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-x64

    29c2d5462865d28042bffe9e723d25c19f0da1f7 *rp-fbsd-x86

    57e23ef42954a08c9833099d87544e2166c58b94 *rp-lin-x64

    efcaf2a9584a23559e3e5b109eb37cbde89f8b29 *rp-lin-x86

    5c612b3eff470b613ea06ebbbb882f0aaef8e3b4 *rp-osx-x64

    2e32273b657b44d6b9a56e89ec2e2c2731713d87 *rp-osx-x86

    e5e6930eb469e92f79b59941330f23daf62800be *rp-win-x64.exe

    f83d4d9f9e73a60a31e495e2fbd2404c560f1a27 *rp-win-x86.exe

接触:

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

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

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

【文章来源】:

https://github.com/0vercl0k/rp

推荐文章++++

*WebSploit框架 - 漏洞评估和利用工具

*GDA:一款基于C++的新型Android逆向分析工具

*GitHarvester - 信息搜集工具


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&amp;mid=2650460034&amp;idx=4&amp;sn=000c2ab9f7d70452faf2b9bc35aa4bf7&amp;chksm=83bbaa66b4cc23702fb6b1a2829637fcec2603da35d7089b324a88a38dc4f103169490f10e7f#rd
如有侵权请联系:admin#unsafe.sh