用于 Binary Ninja 的教学工具
此插件为初学者提供使用 Binary Ninja 学习逆向工程的资源。它会自动安装其他多个插件,并提供展示这些插件功能的示例。
本项目是 NCC Group 2017 年暑期实习项目的成果。后续更新将在 https://github.com/ehennenfent/binja_sensei 中跟踪。 NCC Group 对 2017 年 8 月 18 日之后对该仓库做出的任何进一步更改概不负责。
出于未来兼容性的考虑,Binja Sensei 通过尚未完成的插件管理器 API 安装插件。由于插件管理器目前没有 GUI,必须通过在 Binary Ninja 脚本控制台(通过 Ctrl+` 访问)中运行以下代码片段来完成安装。
manager = RepositoryManager()
manager.enable_plugin('binja_sensei', install=True)
注意:根据你安装 Binja 的时间,你可能需要运行 manager.check_for_updates() 并重启 Binja,该插件才会显示出来。我强烈建议在全新的虚拟机上安装。
如果你在 2017 年 8 月 31 日之前运行此插件,则需要使用 Binary Ninja 的开发版本,因为依赖项的安装依赖于 b0778fc 和 326253a。
接下来,重启 Binary Ninja。加载后,Sensei 会将所有附带插件更新到最新版本,并为每个插件安装 Python 依赖。它不会自动运行安装脚本,因此如果你使用的是 Ubuntu 并打算安装 binja_dynamics,则需要导航到 ~/.binaryninja/repositories/default/plugins/binja_dynamics 并运行 ./install.sh。
如果任何插件安装失败,执行手动安装可能会更成功。在 Issue #753 解决之前,一些依赖绝对文件路径的插件可能无法正常工作,除非手动安装。要手动安装,请复制下方相关的仓库链接,并将它们克隆到你的 插件目录中。
https://github.com/carstein/Annotator.git
https://github.com/ehennenfent/binja_arch_ref.git
https://github.com/ehennenfent/binja_dynamics.git
https://github.com/ehennenfent/binja_explain_instruction.git
https://github.com/carstein/Syscaller.git
请注意,附带工具仍归其各自作者所有。虽然此插件以 MIT 许可证 提供,但该许可证不适用于以下任何插件。
为了演示这些插件的潜在用例,其中包含了 PicoCTF 2013 的五个溢出挑战的解题方案。请注意,自编写这些题解以来,可能在功能、配色方案和错误修复方面实施了细微更改。
Annotator 使用虚拟栈来为 libc 函数调用标注参数原型。

此插件会显示一张速查表,展示 Binary Ninja 内部关于架构的信息。

此插件为 Binjatron 添加了 Qt 前端,包括旨在帮助初学者发现重要内存位置的高亮显示。

添加一个弹出窗口,用简单的英文解释汇编指令的作用。

为系统调用标注参数。
