Cutter 完整上手指南:rizin 图形界面里的逆向工程与反编译实战

发布时间:2026/10/30 2:20:12
Cutter 完整上手指南:rizin 图形界面里的逆向工程与反编译实战

Cutter 完整上手指南:rizin 图形界面里的逆向工程与反编译实战

【免费下载链接】cutterFree and Open Source Reverse Engineering Platform powered by rizin项目地址: https://gitcode.com/gh_mirrors/cu/cutter

想用图形界面做逆向工程,却被 rizin 一长串命令劝退?Cutter 就是为此设计的:它把 rizin 的反汇编、反编译与分析能力装进一套基于 Qt 的界面里,让你少记语法、多看结果。下面按实际操作顺序,带你走完打开一个二进制文件之后的完整流程。

打开一个二进制文件时发生了什么

从顶部菜单选择文件打开后,Cutter 会把文件交给 rizin 内核:先识别文件格式、映射内存,再跑一轮基础分析,把函数和入口点找出来。结果直接铺在界面上——左侧是函数列表,中间是反汇编视图,右侧是控制流图(一张展示"函数跳向哪些地址、分支在哪"的图),底部是内置控制台。

你不需要记"分析命令"的顺序,打开文件的那一刻分析已经完成。在左侧列表双击某个函数,中间视图会跳到它的起始地址。

双视图下如何读代码

反编译是把机器码翻译成类 C 伪代码的过程,让你读逻辑而不是读寄存器。Cutter 把同一函数的两个视图并排放置:Decompiler 面板显示伪代码,Disassembly 面板显示原始指令,两者位置同步。

读法建议:先看反编译这一侧,搞清楚"这个函数在做什么";看到拿不准的表达式,点击那一行,反汇编视图会跳到对应指令,再核对底层的寄存器与内存操作。对不熟悉的二进制,用这种"从大到小"的顺序,不容易在寄存器搬运里迷路。

分析参数如何按需调整

自动分析没认全函数,或者 switch 语句的跳转识别错了?进入设置面板的 Analysis 一项,每个开关背后都是一个 rizin 分析参数(括号里标着原始参数名):分析范围、函数推测命名、跳转表分析、指针深度等。勾选后点底部的 Analyze program 重新跑一遍。

给初学者的建议:先用默认配置跑,遇到具体症状再加选项,一次只改一个。这样你知道是哪个参数解决了哪个问题,下次想复现时不会一脸茫然。

内置控制台如何复用 rizin 命令

底部的 Console 面板是"命令行内核"的入口。输入的都是 rizin 命令,结果直接打印在下方,图形界面的状态保持同步。比如输入afl会列出当前文件识别出的全部函数,和左侧列表一一对应。

这个设计对老手很有用:图形界面的操作忘了名字没关系,命令行能补上;你在 rizin 里养成的命令习惯不会浪费。学习期建议两边来回对照,每用一次 GUI 按钮,就试着敲一次对应命令。

获取 Cutter 并完成第一次分析

源码获取只需要一条命令:

git clone https://gitcode.com/gh_mirrors/cu/cutter

克隆后按仓库内的构建说明编译即可;如果只想直接使用,官方渠道提供各平台的预编译包。

📌 第一次分析不必拿真实样本。自己写个含循环和 switch 的小 C 程序并编译出来,用 Cutter 打开,对照 main 函数的反编译与反汇编。能对上号,再去看真正的样本。

下一步去哪扩展

标准视图不够用时,Cutter 留了两个扩展点:

  • 插件:Python 和 C++ 都支持,接口与示例代码在 plugins/,照着 sample 就能写出自己的视图和菜单动作;
  • 初始化脚本:希望每次打开文件都执行的操作,可以写进初始化脚本,启动时自动跑。

具体用法和插件开发指南见 docs/ 下的完整文档。

收尾给两条可执行建议:一是拿自己能编译的小二进制当练手对象,完整流程走一遍后再换未知样本;二是每遇到一个看不懂的图形界面操作,就回 rizin 命令里查它做了什么。命令行心智模型立住了,Cutter 只是它的加速器。

【免费下载链接】cutterFree and Open Source Reverse Engineering Platform powered by rizin项目地址: https://gitcode.com/gh_mirrors/cu/cutter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考