Cutter是一款开源的反汇编器框架,可用于对多种不同架构的二进制可执行文件进行反汇编、分析和修改。该工具提供了直观的图形用户界面,让用户能够轻松浏览和理解反汇编代码,同时还具备调试和交互式分析功能。Cutter的目标在于成为一个功能强大且易于操作的二进制分析工具,适用于安全研究人员、逆向工程师以及开发人员等不同领域的用户。
1、由Rizin提供支持
Cutter使用Rizin作为其核心引擎。因此,允许通过GUI或使用集成终端访问数以千计的功能。
2、交互式小工具
Cutter提供了大量不同的小部件和功能,使您的逆向工程体验尽可能舒适。
3、多个主题
默认情况下,Cutter带有多个现代主题——Light、Native、Dark和Midnight。
4、集成反编译器
Cutter版本与本地Ghidra反编译器完全集成。不涉及Java。
5、反编译器
Ghidra反编译器在Cutter版本中的原生集成
6、图表视图
功能齐全的图形视图以及用于快速导航的迷你图形
7、调试器(测试版)
用于动态分析的多平台本机和远程调试器
8、十六进制编辑器
使用丰富而强大的十六进制视图查看和修改任何文件
9、Python脚本引擎
快速编写python脚本来自动化任务
10、插件
使用Native或Python插件扩展Cutter的核心功能
11、二进制补丁
添加、删除和修改字节和指令
12、仿真
非常适合自动化、加密算法和恶意软件分析
13、主题编辑器
功能齐全的主题编辑器,可轻松且用户友好地自定义Cutter
14、现代和可定制的用户界面
使用Qt C++构建和设计最佳实践
1、使用Projects保存和加载您的工作
在逆向工程会议期间,能够通过注释、函数和变量名称等注释来跟踪获得的知识是至关重要的。因此,正在使用的工具还需要提供一种可靠且面向未来的方法来保存和恢复这些信息。此功能对我们和我们的用户非常重要,社区经常要求此功能。
在此版本之前,Cutter对保存用户在项目中的工作只有基本且不可靠的支持,这是radare2提供的功能。当Rizin从radare2分叉时,团队决定创建一个可靠的机制来从头开始保存和加载项目。这个新创建的项目功能的技术细节在rizin的博客中发表的一篇专门文章中进行了描述。
Cutter 2.0引入了对项目的全面支持,您现在可以无缝地保存和加载您的工作。该功能处于测试版支持中,将持续到Rizin(v1.0)的第一个主要版本。
顺便说一句,因为Cutter直接使用Rizin的项目格式,所以在命令行Rizin中创建的项目可以直接加载到Cutter中,反之亦然,让您可以随时在两种工具之间进行切换。
2、保存项目
在项目中保存您的工作既简单又直观。单击“文件”菜单,然后选择“保存项目”或“将项目另存为”。这将打开一个对话框,询问您要将新项目保存在哪里。Rizin和Cutter项目的扩展名是.rzdb.
那些希望使用键盘快捷键的人可以Ctrl+S用来保存项目。您可以在工作期间多次使用这些快捷方式来保存对项目文件的更改。
3、加载项目
在Cutter中打开项目可以通过两种方式完成。第一个,来自Cutter打开对话框中的Projects选项卡。为此,请打开Cutter并单击“项目”选项卡。在那里,您将看到您最近创建或加载的项目。双击一个项目,或单击“选择”并从对话框中选择另一个项目文件。
在Cutter中打开项目的第二个选项是通过命令行。为此,请使用-p或--project标志运行Cutter:
cutter -p demo.rzdb