MVT:用命令行检查 Android 与 iOS 的间谍软件取证痕迹
给取证人员用的 Android/iOS 间谍软件痕迹分析工具,靠 IOC 和命令行检查设备采集数据。
GitHub mvt-project/mvt 更新 2026-09-22 分支 main 星标 14.1K 分叉 1.4K
Python 移动设备取证 Android/iOS 命令行工具

🧭 决策指南

适合,如果你

  • 你需要用 mvt-ios 或 mvt-android 分析 Android、iOS 设备采集结果。
    README 的 Usage 章节说明这两个命令分别分析对应平台的 acquisitions。
  • 你正在调查已知间谍软件活动,并有 Amnesty International 等公开 IOC。
    README 的 Indicators of Compromise 章节说明 MVT 支持公开 IOC,包括 Amnesty International 发布的 IOC。
  • 你的团队需要用 Python CLI 和 plugins 扩展取证模块。
    README 的 Usage 章节说明 plugin packages 可扩展 check-* 模块及 mvt、mvt-ios、mvt-android 的顶层命令。

不适合,如果你

  • 你想让普通终端用户自行判断手机是否安全。
    README Note 明确说明 MVT 不面向 end-user self-assessment,并要求数字取证和命令行经验。
  • 你需要仅凭公开 IOC 证明设备没有被某种间谍软件感染。
    README 的 Indicators of Compromise 警告称公开 IOC 可能遗漏近期取证痕迹并造成虚假的安全感。
  • 你的现有脚本严格依赖旧版 MVT 输出,且无法处理 v3 变化。
    README 顶部 IMPORTANT 说明 v3 合并引入 breaking changes,依赖 MVT 输出的脚本可能已损坏。

前置条件

  • 需要 Python 环境及 README Installation 章节所述依赖;README 未给出 Python 版本。
  • 可从 PyPI 安装,原文命令为 pip3 install mvt。
  • MVT 要求理解 digital forensics 并使用 command-line tools。
  • 如使用 uv,可先安装 uv,再以 uv tool install mvt 安装。

第一步命令(README 原文)

pip3 install mvt

要注意

  • 把 --verbose 放在命令名前可获调试输出,例如 mvt-ios --verbose check-backup ...。
    README 的 Usage 章节说明三个命令均支持该位置的 --verbose。
  • check-* 后的 --verbose 仅为兼容保留,未来版本将移除。
    README 的 Usage 章节明确说明该用法仅为兼容保留。
  • mvt completion 默认只打印设置说明,只有传 --install 才写入配置。
    README 的 Shell completion 章节说明只有传入 --install 才会写入补全文件或 shell 配置。
  • MVT 使用自有许可证,目标是经同意的取证分析。
    README 的 License 章节说明项目以自有许可证发布,并强调 consensual forensic analysis。

材料未说明

  • README 未说明支持的 Python 版本。
  • README 未列出 Android、iOS 版本及具体设备兼容矩阵。
  • README 未给出各类 acquisition 的存储需求、运行耗时或性能数字。
  • README 未说明公开 IOC 的覆盖范围、更新时间或误报率。
  • 项目元数据标注许可证为 Other,但 README 未在材料中给出许可证条款全文。
  • README 未说明 v3 输出变更的具体字段、迁移步骤或受影响脚本清单。

💡 深度解析

6
不适合 我支持可能成为 Pegasus Project 类调查对象的 Android 和 iOS 用户,但团队没有稳定的数字取证和命令行经验;我能否把 MVT 作为自助式安全检测工具交给他们?
适合读者: 调查记者或人权组织依赖的安全支持人员,面对可能遭遇 Pegasus 等高级移动间谍软件攻击的 Android 或 iOS 设备,但不一定具备数字取证经验

不适合把 MVT 直接交给普通用户自助检测,因为 README 明确排除了 end-user self-assessment,并要求数字取证与命令行能力。

  • 项目说明 MVT 是 forensic research tool,目标使用者是 technologists and investigators,而不是终端用户。
  • 公开 IOC 只能覆盖已知并公开研究的 spyware campaigns;README 警告仅凭没有命中不能判断设备 clean,可能造成虚假的安全感。
  • 可靠而全面的 triage 需要非公开 IOC、研究和 threat intelligence,README 还指向 Amnesty International Security Lab 与 Access Now 的支持渠道。
  • 因此它可以由合格分析师作为调查组件使用,但不应把输出直接转成“未感染”或个人安全结论。
  • README「Note」:This is not intended for end-user self-assessment
  • README「Indicators of Compromise」:Public indicators of compromise are insufficient to determine that a device is clean
  • README「Indicators of Compromise」:reliable and comprehensive digital forensic support requires non-public indicators
材料未说明:README 未定义非专业支持人员可以安全执行的最小操作流程;README 未说明不同案件中何时应升级到 Amnesty 或 Access Now 的具体判定标准
不适合 我用 Python 脚本解析现有 MVT 输出,并把 `mvt-ios` 和 `mvt-android` 接入自动化流水线;升级到 v3 后能否直接替换安装版本?
适合读者: 维护 Python 自动化取证流水线的安全工程师,现有脚本解析 MVT 输出,计划从旧版升级到合并 v3 分支的版本

不适合直接替换,因为 README 明确说 v3 引入 breaking changes,依赖旧版 MVT 输出的脚本可能已经损坏。

  • README 顶部警告:合并 v3 branch introduced breaking changes,尤其影响 relied on MVT output in other scripts 的用户。
  • 这对解析 mvt-iosmvt-androidmvt 输出的 Python 自动化流程都构成直接风险;项目没有保证旧输出格式兼容。
  • README 只说明旧的 check-* 命令位置上的 --verbose 暂时兼容,未来会移除;这也说明命令接口正在迁移。
  • 升级决策还需要阅读 issue #757、核对当前脚本使用的输出字段,并验证插件和下游命令;README 没有提供自动迁移工具。
  • README 顶部重要提示:We recently merged the “v3” branch. This introduced breaking changes
  • README 顶部重要提示:If you relied on mvt output in other scripts They might have broken
  • README「Usage」:the `--verbose` option the `check-*` commands accept after their name ... will be removed
pip3 install mvt
材料未说明:README 未列出 v2 到 v3 的完整输出 schema 差异或迁移清单;README 未说明现有 Python 解析器、插件和自定义命令分别需要哪些代码修改
不适合 我准备把 Python 实现的 MVT 集成进商业移动取证平台,并可能再分发带插件的定制版本;在没有审查许可证前,我能否直接采用它?
适合读者: 准备把 MVT 集成到商业取证平台或组织内部再分发工具中的安全产品负责人,需要确认许可证是否允许商业集成和定制部署

不适合在未审查许可证前直接用于商业集成或再分发,因为项目明确采用自有许可证,而不是通常意义上的宽松开源许可证。

  • README 的 License 章节说明 MVT released under its own license,目的在于支持 consensual forensic analysis,并避免帮助非自愿隐私侵犯。
  • 这意味着许可证目标和使用边界不仅是技术问题;商业平台、定制版本和再分发都需要核对具体条款。
  • README 没有授予商业集成、二次分发、插件打包或修改后的再许可权,也没有说明这些场景的例外。
  • 在获得法律与项目许可判断前,可以研究代码和文档,但不能仅凭 Python、PyPI 或“开源项目”标签推定可自由商业使用。
  • README「License」:MVT is released under its own license
  • README「License」:purpose is to facilitate consensual forensic analysis
  • 项目数据:license 为 Other
材料未说明:README 未列出自有许可证的完整条文及商业集成、再分发、修改和插件场景的具体许可条件;README 未说明商业支持、赔偿、商标或供应链合规要求
适合 我在 Bash、Zsh 和 Fish 之间切换,需要运行 `mvt-ios`、`mvt-android` 以及 `download-iocs`,并希望减少命令输入错误;MVT 是否支持我的 CLI 工作流?
适合读者: 在 Bash、Zsh 或 Fish 环境中运行移动取证命令的调查分析师,希望把 MVT 命令接入脚本化的命令行工作流

适合,因为 MVT 原生提供三个平台命令、IOC 下载能力、详细输出和 Bash/Zsh/Fish 补全,能够贴合命令行调查流程。

  • README 说明 mvt-iosmvt-android 分析对应平台 acquisition,mvt 承载 download-iocs 等公共命令。
  • 三个命令都支持在命令名之前传入 --verbose,例如 README 给出的 mvt-ios --verbose check-backup ...,便于获取调试输出。
  • mvt completion 会输出设置说明,mvt completion bash 可直接生成 Bash 补全;README 明确覆盖 Bash、Zsh 和 Fish。
  • 但补全只改善 CLI 使用,不会替代对备份、采集数据和 IOC 结果的取证解释。
  • README「Usage」:MVT provides three commands: `mvt-ios`, `mvt-android` and `mvt`
  • README「Usage」:Pass `--verbose` ... (`mvt-ios --verbose check-backup ...`)
  • README「Shell completion」:completion script for Bash, Zsh, and Fish
mvt completion
材料未说明:README 未说明补全覆盖每个插件新增命令的具体程度;README 未说明 `download-iocs` 的数据源更新频率、版本锁定方式和离线使用方式
适合 我具备数字取证和命令行经验,需要同时分析 Android 和 iOS 的设备采集物或备份,并用公开 IOC 检查已知间谍软件痕迹;MVT 是否适合纳入我的调查流程?
适合读者: 使用命令行、负责 Android 与 iOS 设备取证的数字取证分析师,需要检查已获得的设备采集物或备份,而不是直接面向终端用户检测

适合,因为 MVT 正是面向 technologists and investigators 的跨 Android/iOS 命令行取证工具,但它是分析组件,不是完整鉴定平台。

  • README 将 mvt-iosmvt-android 定义为分析对应平台 acquisition 的命令,mvt 负责 versionpluginsdownload-iocs 等通用能力。
  • 项目支持使用公开 IOC 扫描已知 spyware campaigns 的潜在线索,适合把指标匹配纳入已有取证流程。
  • 工具依赖已经取得的设备数据或备份;README 没有承诺在缺少权限、密钥或完整数据时自动完成采集。
  • 未命中公开 IOC 不能证明设备干净,完整研判还需要非公开指标、威胁情报和专业解释。
  • README「Usage」:`mvt-ios` 和 `mvt-android` analyse acquisitions from devices of that platform
  • README「Indicators of Compromise」:supports using public IOCs to scan mobile devices
  • README「Note」:intended for technologists and investigators;requires understanding digital forensics and command-line tools
pip3 install mvt
材料未说明:README 未列出每个 Android 或 iOS 版本、备份格式和设备型号的完整兼容矩阵;README 未说明特定采集物缺失哪些字段时,各检查模块的覆盖范围
适合 我用 Python 开发取证插件,既想扩展 `check-*` 模块,也想给 `mvt-ios` 或 `mvt-android` 注册自定义顶层命令;MVT 是否适合作为扩展基础?
适合读者: 为持续变化的移动威胁活动开发 Python 插件的安全研究人员,需要向 MVT 的 `check-*` 命令添加取证模块,并注册顶层 CLI 命令

适合,因为 MVT 的 README 明确支持插件包扩展 check-* 取证模块,也支持向 mvtmvt-iosmvt-android 注册顶层命令。

  • 插件模块运行在 check-* 命令内部,适合把新的取证检查封装成可加载组件。
  • README 还提供 development documentation 与 custom CLI command documentation,并说明插件通过 entry points 注册命令。
  • 这比直接修改核心仓库更适合持续加入新的研究成果,且与项目的 Python 实现保持一致。
  • 但 README 没有在正文给出插件 API、版本兼容策略或测试契约;正式集成前仍需按开发文档确认接口。
  • README「Plugin packages」:extend MVT with additional forensic modules, which run inside the `check-*` commands
  • README「Plugin packages」:top-level commands on `mvt`, `mvt-ios` and `mvt-android`
  • 项目数据:main_language 为 Python
pip3 install mvt
材料未说明:README 正文未说明插件 entry point 的完整名称、参数签名和生命周期;README 未说明插件 API 在 v3 breaking changes 下是否有兼容保证

✨ 核心亮点

  • 支持 mvt-ios 与 mvt-android 分析设备取证数据
  • 可用公开 IOC 检查已知间谍软件痕迹
  • 提供 plugins 扩展取证模块与顶层命令
  • v3 分支合并带来输出格式破坏性变更

🔧 工程化

  • mvt-ios 与 mvt-android 分析对应平台的设备取证数据
  • mvt download-iocs 下载 IOC,check-* 命令执行扫描
  • mvt completion 支持 Bash、Zsh 与 Fish 补全

⚠️ 风险

  • README 明确称公开 IOC 无法证明设备干净
  • v3 可能破坏依赖 MVT 输出的其他脚本
  • MVT 要求数字取证与命令行工具经验

👥 适合谁?

  • 面向使用 Python CLI 的移动取证技术人员
  • 适合调查 Pegasus 等移动间谍软件的研究人员
  • 适合需分析 Android 与 iOS 设备采集结果的调查人员