https://binary.ninja/
专为新手打造的反汇编器
第一印象
软件简介
虽然IDA在反汇编器的地位无人可以撼动,但是新手使用IDA往往也会感到无所适从。Binary Ninja以其精美的界面和便捷的交互方式,使得新人简单了解后就能很快上手。
运行平台:支持windows、linux,macos。具体来说, Linux:官方支持64位的Ubuntu最新的LTS和最新的稳定版,许多其他发行版虽然没有官方支持,但开箱即用。 请参阅我们的用户文档,了解更多关于Linux的具体问题。 MacOS:10.13及更新版本(我们通常支持最新的主要版本和至少一个主要修订版,旧版本可能会工作,但不支持。 Windows。 Windows 10 x64 (虽然官方不支持,但目前Windows 8 x64可以使用,如果安装了所有可用的补丁,Win 7 x64也可以使用)
版本:2.1.2263(2020-07-10),演示版 免费 个人 299美元 商业 1199美元 企业 联系官方
输入:任何文件都可以作为原始二进制文件加载,并可以在任何偏移量处反汇编。 当前,我们为以下文件格式提供了官方加载程序: PE /COFF ELF Mach-O(目前不支持fat文件,建议使用man lipo 手动提取) .NES(通过示例插件) 原始二进制文件(您可以使用“ P”热键或原始十六进制右键单击上下文菜单或线性视图中的在原始二进制文件上轻松地从任何体系结构创建函数) 此外,第三方加载器有助于在不编写自己的加载器的情况下以特定偏移量加载二进制Blob。Binary Ninja包含了对不同处理器的不同程度的支持。我们根据是否支持反汇编、提升lifting、内嵌式汇编编辑(也包括插入原始的汇编块)和C编译(使用我们自己的内置编译器SCC),对每个架构的支持进行了如下细分。
文档:https://binary.ninja/support/#documentation
盈利:收费可试用
组织:Vector 35
开源:否。之前发布过python写的开源反编译工具,但是与这个二进制忍者没有共享代码。
优点:美而简,云反编译 https://cloud.binary.ninja/
缺点:支持的文件和架构太少,文档少,收费,只专注于静态分析工作没有本地调试环境只能用插件binjateon
快速上手
将文件拖入即可
打开后默认以反编译c伪代码的形式展示。它定义了5种标准视图,如图
右下角点开,有 高ssa、高、中、低、反汇编,5种,默认是高就是反编译视图,下来就介绍一下这几个视图区别
下来我用IOLI-crackme中的linux下的 crackme0x00 代码为例子讲解,代码可在github上找到。为了方便对比我把忍者中的代码粘贴到了notepad++中,箭头表示对应关系,红框表示增加的内容,黑框表示黒域,黒域就是忍者无法解释的部分,可以叫做间隙或raw
从代码中我把main函数反编译结果汇总了,我们可以看到,高级是伪c代码,反编译效果不错,不过少了一条if的分支没有解析出来,放到了黒域中。高级别最接近源码,中与高相似,中把指针显示出来了。
低级别和反汇编相似,低级别显示了序言尾声、寄存器、堆栈和部分指令。反汇编视图显示了所有的指令