Binary Ninja(逆向编译平台)
v2.0.2170 官方版- 软件大小:112 MB
- 更新日期:2020-10-14 16:48
- 软件语言:英文
- 软件类别:编程工具
- 软件授权:试用版
- 软件官网:待审核
- 适用平台:WinXP, Win7, Win8, Win10, WinAll
- 软件厂商:
软件介绍 人气软件 下载地址
Binary
Ninja提供逆向分析功能,可以通过这款软件帮助用户分析程序,可以将本地资源添加到软件分析,可以直接分析已经开发完毕的文件,成功加载现有的文件到主程序就可以自动执行分析,可以将分析结果显示在主程序上,你可以直接对数据修改,可以重新编译二进制内容,软件也会对错误的消息提示,当软件逆向分析过程遇到错误就可以在软件显示警告信息,让用户可以立即关注到该错误内容,软件提供代码导航功能,可以对多种逆向数据内容导航,可以立即查看函数名称,数据变量名称,段名称等内容,该软件提供插件管理,用户可以通过多种插件编辑新的程序!
软件功能
反编译器/HLIL
最重要功能是HLIL反编译器,就像之前的LLIL和MLIL一样,HLIL可以通过API,UI使用,并具有另一个主要功能:线性视图现在支持所有版本的IL,此外反编译器视图现在是默认的线性视图。
新的交叉引用窗格和工作流程
虽然我们以前的交叉引用窗格可用,但它缺少一些有用的功能,这些功能现在已在全面检查的交叉引用系统中实现。
合并工具
合并工具(工具/协作/合并工具(测试版))使您可以在同一二进制文件的不同分析之间实现基本合并。尽管这个简单的原型并不是我们进行协作的完整愿景,但这只是我们正在为完整的企业协作服务器测试和构建的某些技术的概念证明,并且现在可供所有用户使用。
创建类型
通过在线性视图中选择多个字节并按1、2、4、8,d,a,o,-,s来快速创建或修改类型和结构(内部工作),改进了用于创建类型。
广泛的API
我们的Python和C ++ 绑定几乎可以与平台的每个元素进行交互。UI,IL,反汇编,标头,我们的类型解析器等等。
强大的分析
代码和数据交叉引用,基于置信度的类型传播,值集分析等-都是自动完成的,并且能够以与体系结构无关的方式编写脚本。
中级语言(BNIL)
我们创建了一个功能强大但易于阅读的IL系列,涵盖了多个分析阶段。最低级别接近于汇编,更高级别接近反编译输出。对于不受支持的架构,实施提升器也非常简单
软件特色
1、不允许分支到字符串:启用暂停对字符串引用内的分支目标进行分析的功能。此设置对于格式错误的二进制文件可能有用。
2、交替类型传播:为功能类型传播启用替代方法。此设置是实验性的,可能对某些二进制文件有用。
3、总是分析间接分支:使用更快的分析模式时,请对包含间接分支的功能进行完整分析。
4、高级分析缓存大小:控制高速缓存最近生成的高级分析的功能数。较大的值可能会导致很高的内存利用率。
5、最大功能分析时间:超过此分析时间的任何功能都将延迟。值为0将禁用此功能。默认值为20秒。时间以毫秒为单位。
6、最大功能更新计数:超过此增量更新计数的所有功能都将延迟。值为0将禁用此功能。
7、详细的线性扫描日志信息:线性扫描会在InfoLog级别生成其他日志信息。
8、线性扫描的熵启发法:启用将基于熵的启发式方法应用于函数搜索空间以进行线性扫描。
9、枚举:仅对二进制文件执行控制流分析。交叉引用仅对直接函数调用有效。[仅限拆卸]
10、自动运行功能签名匹配器:打开二进制文件进行分析时,自动运行功能签名匹配器。
11、自动功能分析抑制:启用对自动发现功能的抑制分析。
12、尾叫试探法:尝试恢复功能可能会被尾部调用优化(TCO)遮盖。具体来说,随着潜在功能的开始,分析功能内的分支目标。
13、尾声翻译:在目标是现有功能开始的地方,对跳转指令执行尾部调用转换。
14、自动下载PDB:从指定的符号服务器自动下载pdb文件。
15、社区插件管理器更新频道:指定插件管理器应从哪个社区更新渠道更新插件。
16、始终优先选择分类摘要视图:即使执行完整分析,也总是喜欢在“分类摘要”视图中打开二进制文件。
17、要存储的历史记录条目数。:控制要存储用于输入对话框的历史记录条目的数量
18、天沟宽度:反汇编视图装订线和标签宽度(以字符为单位)。
19、有效内容:允许Binary Ninja连接到更新服务器以检查更新和发行说明。
20、显示所有版本:在用户界面中显示可用于当前更新通道的所有版本。
安装方法
1、打开Binary Ninja提示软件的安装引导程序
2、提示协议内容,在软件接受软件的安装协议
3、软件附加的安装选项,点击下一步
4、Binary Ninja安装地址设置,可以自己设置新的地址
5、提示安装进度条,等待主程序安装完毕吧
6、Binary Ninja成功安装到电脑,点击finish结束安装
使用说明
1、此演示版本支持针对各种平台的x86,x64和ARMV7二进制文件的反汇编。 完整版本中提供了其他体系结构。 请参阅功能列表以获取更多信息。
请注意,该演示仅限会话结束前25分钟的分析时间。
2、菜单功能
打开一个现有文件。
使用自定义选项打开现有文件。
创建一个新的二进制文件。
在“分类摘要”视图中打开文件以进行快速分析。
3、软件工具界面,支持运行分析模块、合作、打开插件文件夹
官方教程
外挂程式
插件真正展示了Binary Ninja的强大功能。本指南应帮助您概述使用和编写插件。
最常见的Binary Ninja插件是Python,我们在这里介绍。就是说,必须为适当的本机体系结构构建一些C ++插件,并且通常将包括针对每个平台的构建指令。API存储库中包含几个C ++示例。
使用插件
插件是从用户的plugin文件夹中加载的:
OS X: ~/Library/Application Support/Binary Ninja/plugins/
Linux: ~/.binaryninja/plugins/
视窗: %APPDATA%\Binary Ninja\plugins
请注意,通过PluginManager API安装的插件安装repositories在与plugin上面列出的上一个文件夹相同的路径下的文件夹中。您无需手动触摸该文件夹中的任何内容,而应通过API访问它们。
插件管理器
现在可以从Binary Ninja通过GUI直接安装插件。您可以通过以下任何一种方法启动插件管理器:
(Linux / Windows) [CTRL-SHIFT-M]
(苹果系统) [CMD-SHIFT-M]
要么:
(Linux / Windows)Edit/ Preferences/Manage Plugins
(MacOS)Binary Ninja/ Preferences/Manage Plugins
要么:
(Linux / Windows)[CTRL-P]/ Plugin Manager/[ENTER]
(MacOS)[CMD-P]/ Plugin Manager/[ENTER]
请注意,某些插件可能会显示,Force Install而不是普通Install按钮。如果是这种情况,则表示该插件并未专门宣传对您的平台或python版本的支持。通常,该插件仍然可以正常工作,但是您必须覆盖警告以确认安装,并注意该插件可能不兼容。
插件管理器搜索
插件管理器还支持许多有用的搜索关键字,以随着插件列表的不断增长来过滤插件列表:
@installed 只显示已安装的插件
@enabled 只显示已启用的插件
@disabled 以显示已安装但未启用的插件)
以下插件类别也可搜索:
@core
@ui
@architecture
@binaryview
@helper
手动安装
您可以通过添加包含该插件的文件夹来手动安装插件(插件文件夹必须__init__.py在文件夹顶部包含,或者python文件可以直接包含在插件文件夹中,尽管不建议这样做)。
注意,如果手动克隆api存储库,请确保:
git子模块更新--init --recursive
克隆后,否则子模块将不会实际下载。
故障排除
基本
您是否搜索过已知问题?
您是否尝试过重启?(开玩笑!)
您阅读了此页面上的所有项目吗?
然后,您应该联系支持!
错误复制
运行带有调试日志记录的Binary Ninja将使您的错误报告更有用。
./binaryninja-调试--stderr-log
另外,将调试日志保存到文件可能更容易:
./binaryninja -d -l logfile.txt
(请注意,上面的示例演示了命令行参数的长格式和短格式)
插件故障排除
禁用插件
禁用插件是诊断某些意外行为是由Binary Ninja本身还是由插件引起的快速方法。只需使用额外的命令行选项启动该过程-p即可在加载时禁用所有用户插件。请注意,此开关当前未禁用存储库插件。
其他步骤
虽然官方不支持第三方插件,但是有许多故障排除提示可以帮助您确定原因。最重要的是启用上一节中建议的调试日志记录。这通常会突出显示python路径问题或任何其他阻止插件运行的问题。
此外,如果您在以无头模式运行插件时遇到麻烦(没有GUI直接调用内核),请确保您正在运行Binary Ninja的商业版,因为Student / Non-Commercial版本不支持无头处理。
接下来,如果运行python插件,请确保现有安装满足python要求。请注意,在Windows上,将使用捆绑的python,并且应通过手动将模块复制到plugins folder来安装python要求。
许可问题
如果在更新过程中遇到Windows UAC权限问题,最简单的解决方法是完全卸载并恢复最新的安装程序和许可证。首选项保存在安装文件夹之外并保留,尽管您可能希望删除许可证。
如果您需要更改许可证上的电子邮件地址,请联系支持。
作为根运行
Binary Ninja将拒绝在Linux和MacOS平台上以root身份运行(这部分是由于使用嵌入式QWebEngine而不是root身份而强制执行的)。您可以通过以常规用户身份运行或强制启动BN来解决此问题,但还需要禁用活动内容。如果尝试使用su或其他类似工具,请确保该用户具有X11会话的权限。
API
如果GUI启动,但是从命令行启动时许可证文件无效,请检查您使用的Python版本正确,因为仅支持64位Python 2.7或3.x版本。此外,个人版不支持无头操作。
数据库问题
重复保存/加载后,BNDB的大小可能会增加。虽然将来对Binary Ninja的更新将在内部实现此优化,但是此非正式脚本可能有助于缩小BNDB的大小。请确保在尝试该脚本之前先备份数据库,因为它不是官方支持的操作。
互动式
导航
在Binary Ninja中导航代码通常是双击所需位置的情况。地址,引用,功能,跳转边等都可以双击进行导航。此外,g热键可以导航到当前视图中的特定地址。该字段的语法非常灵活。可以输入完整的表达式,包括基本算术,解引用和名称解析(函数名称,数据变量名称,段名称等)。数值默认为十六进制,但也可以控制。有关此字段语法的完整文档,请参见此处。
切换视图
切换视图有多种方式。在某些情况下,它是自动的(从图形视图中单击数据引用将导航到线性视图,因为数据未在图形视图中显示),并且还有多种方法可以手动更改视图。导航时,您可以使用视图热键(见下文)在与当前选择相同的位置切换到特定视图。另外,右下角的视图菜单可用于更改视图,而无需导航到任何给定位置。
命令面板
快速浏览各种选项和操作的一项重要功能是command palette。受Sublime和VS Code中类似功能的启发,命令面板是整个应用程序,上下文相关的动作系统的前端,该系统中的所有动作,插件和热键都可以通过该选项板进行路由。
要触发它,只需使用[CMD/CTRL] p热键。请注意,命令面板是上下文相关的,因此某些操作(例如Display as - Binary)可能仅根据当前视图或选择而可用。插件也可以使用此功能。例如,插件可以将PluginCommand.register与可选的is_valid回调一起使用,以确定何时可以使用该操作。
自定义热键
更新日志
2.0.2170 (2020-05-22)
- 修正了。解决了加载数据库时的崩溃问题
人气软件
-
redis desktop manager2020.1中文 32.52 MB
/简体中文 -
s7 200 smart编程软件 187 MB
/简体中文 -
GX Works 2(三菱PLC编程软件) 487 MB
/简体中文 -
CIMCO Edit V8中文 248 MB
/简体中文 -
JetBrains DataGrip 353 MB
/英文 -
Dev C++下载 (TDM-GCC) 83.52 MB
/简体中文 -
TouchWin编辑工具(信捷触摸屏编程软件) 55.69 MB
/简体中文 -
信捷PLC编程工具软件 14.4 MB
/简体中文 -
TLauncher(Minecraft游戏启动器) 16.95 MB
/英文 -
Ardublock中文版(Arduino图形化编程软件) 2.65 MB
/简体中文