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

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

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

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

工具目录

分类

查看所有分类
Loading categories
mole — 一个使用变量反向切片作为静态污点分析驱动的Binary Ninja插件。 | Kitploit
工具/GitHubGitHub/cyber-defence-campus/mole
静态分析漏洞分析代码分析漏洞利用逆向工程二进制分析AI 辅助逆向
GitHubcyber-defence-campus/mole

mole

一个使用变量反向切片作为静态污点分析驱动的Binary Ninja插件。

查看仓库
8241个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Publish Release Release

Mole

Mole 标志

Mole 是一个 Binary Ninja 插件,旨在识别二进制文件中的有趣的执行路径。它使用 Binary Ninja 的 Medium Level Intermediate Language (MLIL) 的 Static Single Assignment (SSA) 形式对变量执行逆向切片,为静态污点分析奠定基础。

在 Mole 中,路径是指数据在定义的源(source)与汇(sink)之间的流动。什么构成“有趣”的路径取决于分析目标。例如,在搜索漏洞时,可能会查找不受信任的输入(源)影响敏感操作(汇)且可能造成危险的路径。

以下列表突出显示了 Mole 当前的一些特性:

  • 操作模式:Mole 可以在 Binary Ninja 的用户界面内运行,也可以在无头(headless)模式下运行。无头模式对于跨大量二进制文件的脚本化分析特别有用。相反,在用户界面中使用 Mole 则非常适合深入检查检测到的路径。

  • 路径识别:

    • 配置:Mole 允许用户通过 Binary Ninja 的用户界面或配置文件(见 使用)定义源函数和汇函数。这提供了根据具体使用场景灵活选择源和汇的灵活性。
    • 探索:为了更好地理解路径并检查其特征,可以打印路径上的所有指令,并在 Binary Ninja 中高亮显示。此外,还可以并排比较两条路径,以快速识别差异。与指令类似,路径的函数调用序列可以打印或可视化为图形。
    • 分组:为便于识别相似路径,Mole 支持多种分组策略。目前,路径可以根据匹配的源和汇函数进行分组,或根据相同的调用序列进行分组。可以轻松添加新的自定义分组策略来扩展和定制此功能(见 自定义)。
    • 持久化:已发现的路径可以添加注释以便清晰理解,也可以标记为无关后移除。为保存分析进度,路径可以直接保存到目标二进制文件的数据库(Binary Ninja 的 .bndb 格式)中。路径也可以导出,例如,在对文件系统上的许多二进制文件进行无头分析时,可以将识别出的路径导出,以便稍后在 Binary Ninja 中导入并更方便地探索。
  • 利用 AI 进行路径分析:Mole 可以通过 OpenAI API 与本地或远程的大型语言模型 (LLMs) 交互(见 使用)。这些模型用于分析已识别的路径,并推断给定路径是否对应一个可利用的漏洞。LLM 会尝试对漏洞进行分类并指定严重性级别,这有助于分析师确定哪些路径值得进一步调查。Mole 提供了一套基本的工具,供 LLM 用来请求有关所分析二进制文件的更多信息。

  • 跨过程变量切片:Mole 支持跨函数边界对 MLIL 变量进行切片——这是一项具有多重挑战的任务。例如,静态确定函数的有效调用者通常很困难甚至不可能。因此,所实现的方法是一种近似。虽然不完美,但在广泛的实用场景中表现相当不错。

  • 基础指针分析:Mole 当前实现了一种简化的策略来跟踪指针的使用。与跨过程切片一样,这种方法是一种简化,存在固有局限(例如,无法跟踪全局变量)。尽管如此,它在许多实际情况下表现良好,并计划在未来的版本中加以改进。

使用示例

观看 Mole 实际展示 CVE-2021-4045 的演示,这是一个 TP-Link Tapo C200 IP 摄像头中的未授权命令注入漏洞(点击下方图片在 YouTube 上观看):

Mole 使用示例

文档

  1. 安装
  2. 使用
  3. 自定义

贡献或分享经验

Mole 目前是一个正在进行中的项目。如果您遇到错误、有有用的新单元测试可以突出误报或漏报,或者有新功能的建议,请考虑提交 issue 或通过 pull request 贡献。另请注意,目前的 单元测试 仅在 linux-x86_64 和 linux-armv7 二进制文件上经过验证。

如果您有一个有趣的成功故事——例如借助 Mole 发现了漏洞——我们很乐意倾听!欢迎与我们分享您的经验。

贡献者

  • Damian Pfammatter, Cyber-Defence Campus (armasuisse S+T)
  • Daniel Hulliger, Cyber-Defence Campus (armasuisse S+T)
  • Sergio Paganoni
下载工具