用于ida的rop搜索和可视化插件

idarop的Python项目详细描述


ida rop:ida的rop数据库插件
==


`idarop`是一个ida插件,它在打开的二进制文件中列出并存储所有的rop小工具。代码库大量复制自未维护的ida插件[`idaploiter`](https://github.com/iphelix/ida sploiter)。然而,“idasploiter”是为在运行时工作而构建的(提升ida调试器api),而“idarop”是为了更静态的方法。

虽然有各种各样的rop辅助工具([列表中只有grep rop](http://www.capstone-engine.org/showcase.html)),但大多数工具只是在控制台中输出找到的小工具,这使得存储和搜索这些小工具变得很麻烦。` ida rop的目标是利用idb文件格式(和ida)来存储rop gagdet和re信息(汇编注释、键入信息等):

<;p align=“center”>;
<;img alt=“在ida的特定列表视图中列出rop gadgets”src=“screenshots/listinggadgets.png”/>;
<;/p>;

使用IDA查看小工具允许用户利用IDA提供的“高级”列表筛选:在下图中,仅显示具有“0xFF”操作码且小于4字节的小工具(并且突出显示与“ESP”相关的小工具)。

<;p align=“center”>;
<;img alt=“使用IDA筛选筛选ROP小工具工具“src=”screenshots/filteringgadgets.png“/>;
<;/p>;


nb:此插件仅适用于“x86”二进制文件。


如果没有安装“NETNoEnter”,ROP搜索结果将在IDA的退出中被丢弃。



`ida rop`提供了两个短函数:

>maj+r`to list found-rop-gadgets
*`ctrl+maj+r`to list found-rop-gadgets
*`ctrl+maj+r`to do a new gadgets搜索(wipes以前的搜索结果)

<;p align=“center”>;
<;lt;img alt=“screensshots/searchforgadgets.png/searchforgadgets.png.png/sggt;
><;lt;lt;br/><;lt;p>;lt;lt;lt;lt;lt(一)有权使用;

(搜索配置和ui是从“idasploiter”复制和改编的)

因此,您可以从中pip。


在Windows上:

*`C:*`C:\python27\scripts\pip2.7.exe install idarop--install option=“--ida=”6.9“`

ida安装在Program Files文件夹中,因此,您需要以管理员权限运行此命令。



或者,您可以克隆repo并键入“`C:\ python27\python.exe setup.py install--ida`”。` idarop“使用一个”聪明“[``uida_setup_uuuu.py`](https://github.com/lucasg/idasetup)脚本覆盖传统的'distools``install`命令,将插件安装到正确的ida插件目录中。

如果我不感谢[peter kacherginsky](https://thesprawl.org/)在“idasploiter”上所做的工作,那就是犯罪。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
datetime如何使用JodaTime在Java中设置时间属性   java固定算法的性能时间   java如何从JMenu中获取所选项以更改文本区域的文本颜色?   java配置单元UDF传递数组<string>作为参数   javaapachebeam和BigQuery   java与PrintWriter之间的差异。printf和PrintWriter。格式方法   继承如何处理按Java版本更改的导入,以及在多个版本上编译   xml java。lang.noClassDefFoundant生成错误   java如何使用包含映射的JSON发送POST请求?   java如何在任何应用程序的JAR文件中绑定MySql数据库?   Java脚本解释器   sslhttpclientjava。网SocketException:未实现未连接的socket   java如何为Android应用程序创建类似于Cron作业的东西   java JButton+radiobox+复选框   java内存管理将文件写入内存   java这是计算对象实例的有效方法吗?   用于死锁情况的java代码?   JavaSpring容器作为新实体插入,而不是存储在表中