黑客交互反汇编工具Carbon,带你破解程序!

摘要: Cerbero Suite是为x86/x64设计的一款交互式反汇编工具 。最初的目的是为了让我们的用户能够检查内存转储中的代码以及shellcode 。如今,市面上已有非常先进的反汇编工具,如IDA和Ghidra,在我看来尝试模仿其中的一种工具是没有意义的 。这也是我设计该反汇编工具的原因,同时我也考虑了客户如何使用Cerbero Suite的问题 。
软件功能:
windows Dmp文件(WINDMP)
内部结构检查
可用时全面检查内存
Windows休眠文件
内部结构检查
完全检查内存
Windows原始内存映像(WINMEM)
支持所有Windows版本
检查内存中的文件
支持Windows版本的所有系统符号
检测SSDT,IDT,GDT
软件简介:
Cerbero Suite Advanced是一种专业且有用的恶意文件和文件类型分析工具 。该软件支持主流文件类型,包括PE,mach-O,ELF,JAVA,SWF,DEX,PDF,DOC,XLS,RTF,Zip等 。该软件提供自动分析,交互式分析,反汇编分析,字节码反汇编等 。它还具有Python3 SDK,扩展支持,c ++ / PDB结构导入器等 。
特性介绍
Flat 反汇编视图
Carbon带有一个显示文件中所有指令的Flat 反汇编视图 。我不排除将来可能会有图表视图,但它不是我优先考虑的事情 。
递归反汇编
递归反汇编程序是解决代码被数据中断的情况所必需的 。Carbon将尽可能的在较短时间内完成disassemble,并同时进行基本的分析工作 。
速度
Carbon是多线程的,可以非常快速地处理大型的文件 。这对于文件的初始分类非常有用 。
以上是大约十分钟内对60 MB chrome DLL执行的分析 。这是在虚拟机中运行的 。未来的挑战将是保持速度,同时增加更多的分析段落 。
x86/x64 支持
Carbon同时支持x86和x64代码 。将来会支持更多架构 。
实际上,Carbon的设计允许在相同的反汇编视图中混合架构 。
不受限的数据库
一个项目在Carbon中可以包含无限个Carbon数据库 。这意味着如果你正在分析包含10个可执行文件的Zip文件,那么这些文件中的每一个都可以拥有自己的数据库 。
不仅如此:单个文件也可以有多个数据库,只需单击Carbon工具栏按钮或按“Ctrl+Alt+C”即可添加新的Carbon数据库 。
如果你对分析不满意,那么你可以通过右键单击相关的摘要条目或选择它并按“Del”轻松删除它 。
脚本
你只需几行Python代码就可以加载和disassemble一个文件 。
分析完成后,我们可以修改和浏览其内部数据库的各个部分,或者我们可以创建一个视图并显示反汇编:
内部数据库使用SQLite,即使不使用SDK也可以轻松浏览和修改它 。
Python 加载程序
在很早之前我就决定使用Python编写所有的文件加载程序 。虽然这可能会使文件的加载速度稍慢(尽管不明显),但它允许用户自定义加载程序并添加功能,从而提供了极大的灵活性 。添加新的文件加载程序也非常简单 。
PE文件的整个加载程序大约有350行代码 。这是原始文件的加载程序:
一旦熟悉了SDK,添加新的加载器将会非常的轻松简单 。
Raw/PE 加载程序
初始文件的支持是针对PE和raw文件的 。
例如,这是一些反汇编的shellcode 。
在内存 PEs 中
其中一个主要的功能是分析内存中的PE文件 。
这是内存中PE的代码:
当然,反汇编仅限于未被分页的内存页面,因此可能存在一些空白 。
我们对这个功能不是特别了解,后续该功能也将随着即将发布的版本进行相应扩展 。
交叉引用
当然,没有一个像样的反汇编程序可以缺少交叉引用这项功能:
我们还可以从设置中选择我们想要查看的交叉引用数:
重命名
我们可以在代码中命名和重命名任何位置或函数(允许重复) 。即使ERROR没有指向同一位置,我们也可能有多个带有“jmp ERROR”实例的方法 。
生成代码/取消定义
我们可以通过按“C”将未定义的数据转换为代码,或者相反,按“U”将代码转换为未定义的数据 。
在这里,我们向shellcode添加了一个新的Carbon数据库 。正如你所看到的,它最初都是未定义的数据:
在第一个字节按“C”后,我们得到一些初始指令:
但是,正如我们所看到的,突出显示的跳转无效 。通过“jmp”之前的“jne”,我们可以看到我们实际上在“jmp”指令之后跳转了一个字节 。所以我们要做的是在“jmp”上按“U”,然后在地址0xA的字节上按“C” 。


推荐阅读