Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台

简介: Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台

Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台

interactive decompiler, disassembler, debugger, and binary analysis platform

请访问原文链接:https://sysin.org/blog/binary-ninja/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


Binary Ninja

A New Type of Reversing Platform

Binary Ninja 是一个交互式反编译器、反汇编器、调试器和二进制分析平台,由逆向工程师为逆向工程师打造。它在开发时特别注重提供高质量的自动化 API 以及简洁易用的图形界面。Binary Ninja 正被全球的恶意软件分析师、漏洞研究人员和软件开发者广泛使用。Binary Ninja 具备跨平台的强大优势 (sysin),可反编译为 Windows、macOS 和 Linux 上的许多常见架构构建的软件。

decompiler, disassembler

简介

  • 反编译 Decompile

    针对任何受支持的架构(包括您自己的架构)反汇编和反编译代码为 C 或 BNIL。

  • 分析 Analyze

    可视化控制流并以交互方式浏览交叉引用。

  • 自动化 Automate

    使用 C++、Python 和 Rust API 从 UI 内部或外部自动进行分析。

  • 调试 Debug

    在任何受支持的架构或平台上本地或远程调试程序。

  • 协作 Collaborate

    使用我们的企业产品通过同步提交轻松协作。

  • 加速 Accelerate

    通过额外的 AI 功能加速分析并优化理解。

新增功能

Binary Ninja 4.2.6455 (2024-11-20)

Major Features / 主要功能

  • Language Representations
    语言表示
  • MSVC Run-Time Type Information Extraction
    提取 MSVC 运行时类型信息
  • WARP: Advanced Function Matching Algorithm Alpha
    WARP:高级函数匹配算法(Alpha 阶段)
  • DLYD Shared Cache Alpha
    DLYD 共享缓存(Alpha 阶段)
  • Workflows Feature Update
    工作流功能更新
  • Ultimate Edition
    Ultimate 版本
  • MSP430
    新增 MSP430 架构支持
  • Others!
    其它改进!
  • Code Folding
    代码折叠
  • Forward Type Propagation
    类型前向传播
  • Smart Undefine
    智能取消定义
  • Plugin Status
    插件状态

UI 更新

  • 功能:HLIL、Pseudo C 及其他高级语言表示中支持代码折叠
  • 功能:脚本输入区域现在可调整大小
  • 功能:新增复制搜索结果的功能
  • 功能:新增“转到入口点”的操作
  • 功能:现在可以在函数参数上设置 UIDF
  • 功能:Python 控制台模糊补全 (sysin),默认禁用
  • 功能:新增用于创建“新映射数据”文件的操作
  • 功能:新增设置,支持 transientScrollbars
  • 改进:加载 DWARF 信息第一阶段时增加进度报告
  • 改进:全局数据变量周围的注释位置更合理
  • 改进:交叉引用面板在相关时显示结构体字段
  • 改进:双击数据库历史记录条目会恢复到该状态
  • 改进:“查找”对话框的默认大小更合适
  • 改进:日志视图 UI 性能提升
  • 改进:“Open-With-Options” 允许选择特定视图
  • 改进:免费版现在包含高对比度主题以提升可访问性
  • 改进:多个对话框现在支持项目感知 (sysin),可以从项目包中加载文件
  • 改进:Xrefs 在窗口模式下运行时可以聚焦主窗口,并且可用 ESC 关闭。这样使其行为更接近某些用户更熟悉的模态对话框工具。
  • 改进:“更改类型”对话框现在区分大小写
  • 改进:设置菜单新增“从 JSON 粘贴”的上下文菜单
  • 改进:分析期间状态栏状态更准确
  • 改进:查找对话框中的“当前函数”限制现在能正确搜索不连续的函数
  • 改进:“显示 IL 操作码”显示设置现在也会显示指令大小提示
  • 修复:当二进制视图没有默认平台时,分类视图崩溃
  • 修复:当平台没有默认调用约定时,分类视图崩溃
  • 修复:地址/查找对话框崩溃和 UI 卡顿
  • 修复:分类导入列表中的字体问题
  • 修复:更改字体设置后现在需要重启
  • 修复:远程对话框按钮绘制错误
  • 修复:大量日志记录导致的卡死
  • 修复:遵循 network.pdbAutoDownload 的资源设置
  • 修复:加载包含过多 section 的 ELF 文件时卡死
  • 修复:加载包含过多 segment 的二进制文件时卡死
  • 修复:Ubuntu 24.04 上 linux-setup.sh 未生成有效桌面图标
  • 修复:插件管理器在更新时安装旧依赖而非新依赖的问题
  • 修复:分类视图中无默认调用约定时崩溃
  • 修复:“清除日志”操作现在有效
  • 修复:插件管理器不再为无可用更新的插件显示更新选项
  • 修复:字符串标记选择问题

分析

  • 功能:允许用户设置全局指针值
  • 功能:识别 TerminateProcess 为无返回调用
  • 功能:从 IDA 数据库导入分析
  • 功能:新增 Apple Arc 调用约定 AppleArm64ObjcFastARCCallingConvention
  • 功能:更好的离散 AND 运算简化,例如 "0xffff0000 & => b & 0"
  • 功能:更好的 ZeroExtend 与二元操作数简化,例如 "zx.q & 1 => zx.q & 1"
  • 改进:短字符串仍会基于适当的类型信息内联
  • 改进:多个 HLIL 级别的附加简化(如 C 风格 if
  • 改进:DWARF 解析类型时现在会递归遍历 DW_AT_abstract_origin
  • 改进:DWARF 支持 zstd 压缩数据
  • 改进:函数属性对话框中现在可以多选寄存器,并使用空格键切换
  • 改进:调试信息在项目文件中相邻时能正确加载
  • 改进:大函数的分析性能得到改进
  • 改进:最小工作线程数现在为 2
  • 修复:DWARF 导入时,当异常帧延伸到内存末尾会导致 panic
  • 修复:未定义 DataVariables 在重新分析后会重新出现的问题
  • 修复:某些基本块分析可能导致 OOM 的问题
  • 修复:内存映射修改时字符串分析问题
  • 修复:当 "analysis.limits.maxGlobalPointerValueUpdates" 设置为 0 时不再导致卡死

Binary View

  • 修复:ELF 解析错误,允许读取超出动态表末尾的数据
  • 修复:计算 AArch64 重定位时尊重 ELF 视图字节序
  • 修复:无效字符串表时的 COFF section 名称解析
  • 修复:COFF 重定位未定义行为
  • 修复:无效字符串表起始的 PE 文件无法加载

架构/平台

  • 功能:新增 NTDLL 类型库
  • 改进:支持无类型和未链接的 TerminateProcess 检测
  • 改进:新增 aarch64 系统寄存器 mpidr_el1
  • 改进:MIPS 新增 IL,支持 TLB 相关指令的内建函数
  • 改进:Thumb2 提升 VPOP、VPUSH、VLDR、VSTR、VMOV、RRX、VABS、VMRS、VCVT、VSTMIA、VLDMIA、VSUB、VDIV、VMUL、VFMA、VMRS、VNEG
  • 改进:VMOV 使用分割寄存器
  • 改进:Capstone 升级至 5.0.3,修复提升错误
  • 修复:x86 无效提升,正确提升 push r16 指令
  • 修复:ARM64 进位标志无效提升
  • 修复:MIPS 对 HI、LO 的 32 位操作结果进行符号扩展
  • 修复:Thumb2 提升 REV 指令
  • 修复:Thumb2 提升 IL 时获取错误的 S 和 D 寄存器
  • 修复:Thumb2 非 R 寄存器组在第 15 个索引时引用 PC
  • 修复:Thumb2 无约束的 VADD、VDIV 和 VABS
  • 修复:Thumb2 VPOP 未设置寄存器
  • 修复:DWARF 中宽度为 0 的枚举导致崩溃
  • 修复:MIPS 隐式附加项
  • 修复:Aarch64 SBB 指令问题

API

  • 新增 API: BinaryView::GetMemoryRegionFlags / BinaryView::SetMemoryRegionFlags
  • 新增 API: FileContext::newMappedFile,允许创建新的映射文件
  • 新增 API: Platform::GetRelatedPlatforms
  • 新增 API: BinaryNinja::SetThreadName
  • 新增 API: MediumLevelILFunction::IsSSAVarLiveAt
  • 新增 API: BinaryView::GetDataOffsetForAddress
  • 新增 API: BinaryView::GetFunctionAnalysisUpdateDisabled / BinaryView::SetFunctionAnalysisUpdateDisabled
  • 新增 API: Splitter::setMinimumWidgetSize / Splitter::minimumWidgetSize
  • 新增 API: class RemoteFolder
  • 新增 API: getStringForGraphType / getGraphTypeForString
  • 新增 API: class FlowGraphLayout
  • 新增 API: FlowGraphWidget::tagAddressAccepted
  • 新增 API: TagTypeSelectDialog::selected
  • 新增 API: LinearView::goToEntryPoint / FlowGraphWidget::goToEntryPoint
  • 新增 API: StackView::getBaseOffset
  • 新增 API: UIContextNotification::OnContextMenuCreated
  • 新增 API: Workflow::GetEligibilitySettings
  • 新增 API: RepoPlugin::IsViewOnly
  • 新增 API: Settings::QueryProperty
  • 新增 API: FlowGraphWidget/LinearView::forwardPropagateType / FlowGraphWidget/LinearView::inferFunctionType / FlowGraphWidget/LinearView::propagateVariableTypeAndName
  • 新增 API: OptionsDialog::removeTabAndSettingsView / OptionsDialog::viewTypeSelectionChanged
  • 新增 API: BinaryView::IsForceLoadableCallback
  • 新增 API: LinearView::undefine
  • 新增 API: Load
  • 新增 API: TypeBuilder::GetNameType / TypeBuilder::HasTemplateArguments / TypeBuilder::SetNameType / TypeBuilder::SetHasTemplateArguments / TypeBuilder::VarArgsType / TypeBuilder::ValueType / Type::GetNameTypeString / Type::GetCallingConventionName / Type::SetCallingConventionName
  • 新增 API: Logger::Indent / Logger::Dedent / Logger::ResetIndent
  • 新增 API: namespace BinaryNinja::Unicode
  • 新增 API: class Demangler,支持自定义名称反混淆
  • 新增 API: class GenericRangeMap / class GenericRange
  • 新增 API: FlowGraphWidget::getEdgeForMouseEvent / FlowGraphWidget::canCopyAddress
  • 新增 API: class LanguageRepresentationFunction / class LanguageRepresentationFunctionType / class HighLevelILTokenEmitter
  • 新增 API: BinaryView::AddAutoSegments
  • 新增 API: BinaryView::BeginBulkAddSegments, BinaryView::EndBulkAddSegments, BinaryView::CancelBulkAddSegments
  • 新增 API: 允许修改全局指针值:BinaryView::GetGlobalPointerValue, BinaryView::UserGlobalPointerValueSet, BinaryView::ClearUserGlobalPointerValue
  • 修改 API: TypeLibrary::WriteToFile 现在返回一个布尔值,用于指示是否失败
  • 修改 API: Request::Request / Request::Post
  • 修改 API: BinaryView::UndefineDataVariable
  • 修改 API: Python set_user_var_value 现在适用于函数参数
  • 移除 API: 多个已弃用函数
  • 移除 API: Segment::SetLength, Segment::SetDataOffset, Segment::SetDataLength, Segment::SetFlags
  • 移除 API: undefineName / undefineFunc / undefineVariable
  • 功能: 新增 CarryFlagWithInvertedSubtractRole,使进位标志在减法时取反,在加法时正常,用于 Arm64 和 6502
  • 功能: Python 的 TypedDataAccessor 现在可以切片数组对象
  • 改进: MemoryMap 和 Segments API 的功能已统一
  • 修复: Rust 插件中 "Open with options"
  • 修复: BasicBlockList 重新迭代问题
  • 新示例: BackgroundTaskThread

调试器

  • 功能:新增 “Debugger Info” 侧边栏小部件,用于显示当前指令的信息
  • 改进:启动和调试期间的显著性能提升
  • 改进:在 TTD 录制完成时显示消息框
  • 改进:调试器上下文菜单移动到顶层
  • 改进:使用分析中的函数名符号化堆栈跟踪
  • 改进:execute_backend_command 现在也返回命令执行的输出(适用于 DbgEng 适配器)
  • 改进:重大文档更新和 Python API 更新
  • 修复:支持在非 PE 文件上使用基于 DbgEng 的适配器
  • 修复:用户在无界面脚本中暂停正在运行的目标时的竞争条件
  • 修复:堆栈跟踪符号化的各种问题
  • 修复:正确转义寄存器注释
  • 修复:当文件无法在 Linux/macOS 上执行时 (sysin),允许选择并使用 LLDB 适配器进行远程调试
  • 修复:点击 “Install WinDbg/DbgEng” 后 Windows 下崩溃
  • 修复:“Run Script” 之前与调试器不兼容导致崩溃
  • 新增 API: restart_and_wait 重启目标并等待操作完成

企业版

提醒: 所有 4.2 的 Enterprise 稳定客户端构建现在均标记为 “Ultimate”,因为我们已经合并了这些版本。这意味着所有 Enterprise 客户都可以免费获得我们新的 Ultimate 独占功能。Enterprise 服务器仍然是一个独立产品。

  • 功能: 使用 GitLab 进行 SSO 的客户现在可以将认证限制为特定组,而不是整个组织
  • 功能: 项目导入现在有一个选项可跟随符号链接
  • 修复: 许可证对话框现在将 Enter 键绑定为 “Start” 而不是 “Log Out”
  • 修复: 离线时不再错误地显示 “remote id has changed”,而是正确显示 “cannot connect”
  • 修复: 远程项目文件夹描述更改不再在其他元数据更新期间丢失
  • 修复: 过期线程中潜在的死锁
  • 修复: 每次调用 _init_plugins 不再检查许可证
  • 修复: RemoteProject.create_folder API 不再抛出错误(尽管文件夹已成功创建)
  • 修复: Rust API 中现在可以正确检出 headless 许可证

其它

  • 更新到 Qt 6.7.2
  • C++ 文档现在也包含离线版本
  • 多个文档修复
  • Demanglers 已开源,并新增 API 允许添加新的 demangler。注意:由于性能限制,我们不建议添加自定义 demangler,因为在初始二进制分析中,FFI 进入热点路径会带来较大的性能损耗。当前插件现在同时构建为插件和核心功能。
  • 新增 MSP430 架构开源支持
  • 现在支持在没有现有安装的情况下构建插件

下载地址

版本历史:

  • Binary Ninja 4.0.5336
  • Binary Ninja 4.1.5747
  • Binary Ninja 4.1.5902
  • Binary Ninja 4.2.6455

Binary Ninja 4.2.6455 for macOS Universal

Binary Ninja 4.2.6455 for Linux x64

Binary Ninja 4.2.6455 for Windows x64


版本列表:

更多:HTTP 协议与安全

目录
相关文章
|
8天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
7天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
353 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
19天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1335 8
|
7天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
340 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
6天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
18天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1428 87
|
6天前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
8天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
265 82
2025年阿里云域名备案流程(新手图文详细流程)