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 协议与安全

目录
相关文章
|
1月前
|
监控 编译器 Windows
Qt5实现Windows平台串口通信
Qt5实现Windows平台串口通信
|
1月前
|
安全 Linux iOS开发
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
291 53
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
28天前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
153 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
1月前
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 macOS Unlocker & OEM BIOS 2.7 for Linux
VMware Workstation Pro 25H2 macOS Unlocker & OEM BIOS 2.7 for Linux
267 3
VMware Workstation Pro 25H2 macOS Unlocker & OEM BIOS 2.7 for Linux
|
24天前
|
Linux 虚拟化 iOS开发
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
249 0
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
|
1月前
|
Linux 虚拟化 iOS开发
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
324 0
VMware Fusion 25H2 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式
|
1月前
|
Linux iOS开发 计算机视觉
GIMP 3.0.6 (Linux, macOS, Windows) 发布 - 免费开源图像编辑器
GIMP 3.0.6 (Linux, macOS, Windows) 发布 - 免费开源图像编辑器
164 0
|
存储 Unix 编译器
汇编语言----X86汇编指令
汇编语言----X86汇编指令
953 2
|
存储 机器学习/深度学习 移动开发
汇编语言指令系列
汇编语言指令系列
2720 0
|
存储 移动开发 C语言
【ARM汇编速成】零基础入门汇编语言之指令集(三)
【ARM汇编速成】零基础入门汇编语言之指令集(三)
312 0