Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
binja_dynamics — Binary Ninja 的 binjatron 插件的 PyQt5 前端,包含高亮功能,旨在让初学者更容易学习逆向工程 | Kitploit
工具/GitHubGitHub/nccgroup/binja_dynamics
动态分析 (沙盒)逆向工程调试器二进制分析学习与教育
GitHubnccgroup/binja_dynamics

binja_dynamics

Binary Ninja 的 binjatron 插件的 PyQt5 前端,包含高亮功能,旨在让初学者更容易学习逆向工程

查看仓库
2569年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Binary Ninja 动态分析工具

本项目为 Binary Ninja 的 binjatron 插件添加了一个 PyQt5 前端,并包含高亮功能,旨在帮助初学者更容易地学习逆向工程。

动机

具备逆向 x86 二进制文件的能力,即使在信息安全行业之外也是一项重要技能。然而,尽管培训材料非常丰富,这仍然是一项难以掌握的技能。许多学生表示,即便只是在简单的二进制文件上取得些许进展,也需要大量的背景知识,这让他们感到沮丧。

Binary Ninja 常常以相对较低的价格、简洁的界面和易用性为卖点向学生推广。其低级和中级中间语言也提供了一种简单的方式来理解指令的作用。本项目旨在让二进制文件的执行过程更易于可视化,从而使 Binary Ninja 成为对初学者更友好的工具。

组件

  • 通过 Binjatron 进行调试
  • 调试器工具栏
  • 寄存器查看器
  • 栈查看器
  • 回溯查看器

起源

本项目是 NCC Group 2017 年暑期实习项目的成果。其中的可视化调试组件可以被视为 Microcorruption(由 Matasano Security 制作的嵌入式安全 CTF)的精神续作。后续更新将在 https://github.com/ehennenfent/binja_dynamics 中跟踪。 NCC Group 对 2017 年 8 月 18 日之后对该仓库所做的任何进一步修改不承担责任。

安装

在你的 Binary Ninja 插件文件夹中运行:

root@kitploit:~
git clone https://github.com/ehennenfent/binja_dynamics.git
cd binja_dynamics
./install.sh

用法

加载二进制文件后,点击工具菜单中的 Enable Dynamic Analysis Tools 项。此时会弹出一个调试器窗口,你可以通过工具栏上的按钮控制它。当你逐步执行时,界面会实时更新以反映程序状态。借助 Binjatron,当前指令和任何断点都会在二进制视图中高亮显示。对于每个内存地址以及寄存器,只要其值因上一条指令的执行而发生变化,该值就会以橙色高亮显示。类似地,当前栈帧的顶部和底部(以及预测的返回地址位置)也会被高亮,以便初学者更容易识别内存中哪些部分是值得关注的重点。回溯查看器会显示当前栈帧的回溯信息,并提供一个按钮,可自动将二进制视图跳转到插件预期找到返回地址的内存地址所对应的位置。在某些函数中,栈帧的销毁方式与插件预期不符,因此这个预测的返回地址可能并不总是正确的。

截图

高亮显示

(在上面的截图中,基址指针以橄榄绿显示)

  • 当前指令 - 红色
  • 断点 - 蓝色
  • 内存或寄存器发生变化 - 橙色文本
  • 栈指针 - 浅绿色
  • 基址指针 - 浅蓝色
  • 预测的返回地址 - 红色
  • 指令指针(如适用) - 亮红色

文档

代码

有时可能需要查阅源代码才能理解接口的确切行为。考虑到这一点,许多设计决策和实现细节都在内联注释中进行了说明。

Wiki

wiki 的内容仍然相对较少,但诸如“绊脚石”清单和开发日志等内容可能对故障排除有所帮助。

示例

建议查阅 binja_sensei 仓库 中的示例,它们可能有助于你入门。

当前限制

  • 目前仅支持 x86(64) Linux 二进制文件。即便如此,仍可能存在以 binja_dynamics 或 Voltron 无法处理的方式运行的二进制文件。如果你遇到任何错误,欢迎提交拉取请求或 issue。
  • binja_dynamics 仅在 Ubuntu 16.04 上测试过。由于终端重定向的工作方式,Windows 支持很可能无法实现,但在其他 unix 平台上或许可以获得尚可用的功能。同样,欢迎提交拉取请求和 issue。
  • 由于 Binary Ninja 和 binjatron 基于 Python 2.7,因此必须在安装 binja_dynamics 之前,将 Ubuntu 自带的 GDB 版本替换为支持 Python 2.7 的版本。安装脚本已被证实可以在全新的 Ubuntu 16.04 虚拟机上成功完成此操作,但 GDB 更新、Ubuntu 更新或预装组件(如果你不是在全新的虚拟机上安装)可能会导致其失效。
  • 出于性能考虑,内存查看器仅显示栈段和 BSS 段的内容。
  • 更多信息请参阅 Issues

第三方内容

  • binja_dynamics 使用了 qthexedit 的一个分支,该分支以 GPLv2 许可发布。
  • 图标所使用的图片以知识共享(Creative Commons)许可发布。有关来源信息,请参阅 attribution.txt。

依赖项

  • binjatron
  • binja_toolbar
  • binja_spawn_terminal
  • voltron
  • PyQt5
  • Binary Ninja

除 Binary Ninja 之外,install.sh 会为你处理这些依赖项。

下载工具