搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

arnold117/iOS-NOIR

安全

面向未越狱 iPhone 的取证审计工具,按证据等级分析隐私、权限与遥测。

234
48
Python
MIT
创建于 1 天前

项目介绍

iOS-NOIR 受 Android 审计工具 Verlintas/NOIR 启发,通过 USB 连接未越狱的 iPhone,生成带证据分级的取证报告。它会读取 Apple 签名的 Entitlements、Info.plist 静态白名单、App Group 与 Keychain 共享、ATS 例外域名、HouseArrest 沙盒暴露、AFC 数据库暴露以及内核 .ips 诊断日志 (2)(10)。

核心框架是「五层持久身份链」:iCloud KVS 令牌、共享 Keychain、App Group 容器、硬编码的运营商一键登录网关,以及 HotspotHelper/BSSID 钩子 (13)。结论分为「实锤 / VERIFIED」「机制实锤 / CAPABILITY」「推断 / INFERRED」,区分静态配置、内核能力和跨应用推断 (11)。输出包括 JSON、域名列表和独立交互式双语 HTML 报告;radar 模式可实时监控 TCC、传感器与 IDFA 请求 (21)(23)。

适合隐私研究者、iOS 开发者和愿意动手的技术用户,用于获得可复现的设备证据而非泛泛结论。

快速使用

目前仅在 macOS 上测试通过(Apple 的 usbmuxd 原生可用);Windows 和 Linux 未测试,可能需要额外配置 iTunes 或 usbmuxd 驱动 (16)。

git clone https://github.com/arnold117/iOS-NOIR.git
cd iOS-NOIR
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

连接 iPhone,解锁屏幕并点「信任此电脑」(20)。然后运行审计并打开报告:

python ios_noir.py scan
python ios_noir.py scan --lang en --redact
open noir-out/ios-noir-report.html

scan 会把 JSON、域名列表和 HTML 报告写入 noir-out/;加 --redact 可生成适合分享的脱敏版本 (21)。实时探测权限与传感器:

python ios_noir.py radar --duration 30

运行前也可以先打开使用合成数据的样例报告查看效果。

防护措施

仓库提供了一个基于 Apple DNS 设置的 mobileconfig,无需常驻 VPN 即可在系统层加密 DNS 并拦截追踪器;另有适用于 Shadowrocket、Surge、Loon 或 Clash 的覆盖模块,可拦截运营商静默认证网关、指纹 SDK 和遥测域名 (25)(30)。

使用约束

  • FairPlay 边界: 未越狱设备上的二进制受 FairPlay 加密,工具不会反编译 Mach-O;函数级分析需要解密后的 IPA 并配合其他工具 (31)。
  • 能力不等于行为: 持有 entitlement 只说明内核能力已开放,实际触发频率由服务端策略决定 (31)。
  • 静态 ATS 域名是开发者声明的例外,不是抓到的流量,也可能是遗留端点 (31)。
  • README 中引用的磁盘写入数据来自作者本人的 iPhone,属于示例而非通用基准。
  • 需要解锁并信任的 iPhone 才能访问设备;许可证为 MIT (32)。

HotRepo 点评

在 2026-11-07 的新项目榜记录中,iOS-NOIR 为 123 star、28 fork,在约一小时的窗口内新增 14 star,此前采样为 109 star。这只是一个新生仓库的短时爆发,不足以判断趋势,但说明初期关注度上升较快。项目的内容相当具体:在未越狱设备上逐应用审计 entitlement 与 plist,并明确区分已证实的能力与推断。目前主要未知项是 iOS 版本兼容范围,README 未说明测试过的系统版本。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。