媲美IDA,完爆Ghidra,功能强大,界面简洁的开源逆向平台Cutter介绍

作者: TaQini  更新时间:2020-05-02 18:00:29  原文链接


Cutter 是一款优秀的由逆向工程师开发的开源逆向工程平台,整合了 radare2ghidra 两大开源平台,功能强大,界面清新~ Created by reverse engineers for reverse engineers

Cutter is a free and open-source reverse engineering framework powered by radare2 . Its goal is making an advanced, customizable and FOSS reverse-engineering platform while keeping the user experience at mind. Cutter is created by reverse engineers for reverse engineers.

下面是 官网 上介绍的 Cutter 的特点:

集成 radrae2 控制台•支持多种语言•二进制搜索•类型和结构•语法突出显示•STDIO重定向•远程调试•内核调试•图形概述•以及更多…

对比

目前比较流行的逆向平台有Ida pro、radare2、ghidra,这些平台各有千秋,Ida虽然强大却收费不菲,radare2功能十分全却莫得GUI,ghidra是个不错的工具但是过于庞杂(界面还丑)。可以说 Cutter 有着上述三个平台的全部优点,甚至比他们还要优秀。

首先 无需安装 ,下载下来就能用,支持多平台,而且程序大小仅有75M,这点是不论 ida 还是 ghidra 都比不了的。再有就是界面十分简洁小清新啦~

比如把 Cutter 加入环境变量后,可以在命令行一键启动 Cutter 分析程序:

shell

cutter ./one_gadget

这点和 idaq/idaq64 命令相似, ghidra 只支持打开工程文件,不支持一键分析程序

开启程序后进入程序载入选项界面,这点和 ida 相同,不过比 ida 优秀的一点是在 cutter 的程序载入界面可以自定义分析级别:

选择完成后直接进入主窗口,十分方便快捷。

至于 ghidra …用过的师傅都知道,在程序载入后,冒出来各种分析方式询问的弹窗,十分繁琐。

Cutter 在界面简洁这点上媲美 IDA ,完爆 ghidra

Cutter 的主界面如下:

十分清新的界面,完全集成了 Ghidra 强大的反编译功能,支持多种语言的反编译,而且汇编界面和反编译界面的代码是同步的,这点比 IDA 不知强了多少倍。还整合了 radare2 的控制台,图形界面和控制台敲命令两不误~ 此外 Ghidra 的图形界面用起来很不爽,快捷键少的可怜了(界面还丑),比如改变字体大小都得去单独设置界面,切换界面还得用鼠标去点,而 Cutter 可以使用快捷键直接调整字体大小,按 Space 可以直接切换不同窗口,十分高效,这点比 Ghidra 不知强了多少倍。可以说,有了 cutterghidra 基本上可以退休了。

窗口

下面介绍一些常用的窗口

Dashboard

程序信息面板,开启程序口默认显示这个窗口,这里面的程序信息十分全面

Strings

字符串搜索窗口(同 rabin2 -zz 命令),此外可以在结果中筛选字符串

Info

程序信息窗口,可选header,Import,Relocs等等信息,和ida、ghidra差不多

Search

搜索窗口界面简洁、功能强大, IDAghidra 望尘莫及。

这个界面提供两个选项,一个是搜索内容,一个是搜索范围。搜索内容十分全面,除了搜常见的汇编指令、字符串、十六进制字符串、32位值之外,居然还能搜 ROP gadget !虽说直接用 ROPgadget 命令也能搜,但是 Cutter 支持设置搜索范围,而且搜索范围也十分全面,甚至能搜索当前函数中的gadget,这点甚至比 ROPgadget 命令还好用。

Disassembly/Decompiler

反汇编和反编译窗口,应该是最常用的两个窗口,可以把这俩分成两栏在同一屏幕显示。代码同步功能很实用,光标点击任何一个窗口的代码,另一个窗口都会自动同步到相应位置,这点和 ghidra 一样,但是 IDA 是不支持的。选中变量时会自动高亮同名变量(这点 ghidra 居然不支持…)

此外, Cutter 支持 Ghidrar2dec 两种反编译器,可以互相参考。

Functions

默认显示函数窗口,可以看函数便宜,鼠标悬停在函数 上方还可以预览代码,很方便。

此外, cutter 可以自动识别出stripped的程序的 main 函数:

这点和 IDA 相同,但是 ghidra 没有这个功能

Graph

反汇编图形代码块,好看。代码也可以和反编译窗口同步。

Hexdump

十六进制窗口,Hex和ascii也能同步显示。同时有很贴心的导出功能,支持多种语言格式:

快捷键

Cutter 的快捷键大部分是和IDA相同的。

函数重命名

选中函数,按 Shift+N 键即可重命名函数。

变量重定义

Y 可以直接对变量进行重定义,修改变量名和变量类型。

变量引用

IDA 是一样的,选中变量按 X 可以查看引用信息

其他还有许多功能,就不一一列出啦~