jacklv-coder/OrchardProbe

GitHub: jacklv-coder/OrchardProbe

OrchardProbe 是一个规划中的本地优先 iOS 应用研究工具,旨在以可审计、可复现的方式为授权用户提供 Mach-O 解密与应用导出能力。

Stars: 0 | Forks: 0

# OrchardProbe [简体中文](README.zh-CN.md) OrchardProbe 旨在使经过授权的 iOS 二进制文件研究更加透明和可复现。计划中的工作流将检测设备能力、选择范围严格限定的导出 backend、独立验证每一个相关的 Mach-O,并以机器可读的 manifest 记录成功、失败或跳过的内容。 ## 仅限授权使用 仅对您或您的组织拥有的应用,或者在所有者已给予您明确授权以执行拟议测试的情况下,才能使用 OrchardProbe。您有责任遵守适用的法律、平台条款、合同以及该授权的限制。 在参与之前,请阅读: - [法律与授权声明](LEGAL.md) - [可接受使用政策](ACCEPTABLE_USE.md) - [安全政策](SECURITY.md) ## 项目愿景 目标不仅仅是生成一个归档。成功的导出应该是可解释且可独立验证的: - `doctor` 报告宿主机、设备、权限和依赖是否合适。 - backend 选择由能力驱动并被记录,而不是仅从 iOS 版本推断。 - 主可执行文件、framework、动态库和扩展获得各自的结果。 - 输入和输出 hash、Mach-O metadata、签名状态、证据级别和失败原因出现在版本化的 manifest 中。 - 不支持的组合会明确失败;打包 ZIP 绝不会被视为每个二进制文件都被正确处理的证明。 ## 计划范围 计划中的工具链将: - 发现已显式连接的设备并枚举范围内的用户应用; - 优先使用 USB 传输,仅将受限的 SSH 路径视为备选方案; - 使用一个短生命周期的设备 helper,仅具有技术 spike 验证所需的最低必要权限和 entitlements; - 仅流式传输所需的代码范围和选定 bundle 根目录下的文件,具有严格的路径和大小限制,且不暴露任意 shell、路径、PID 或内存访问; - 在宿主机上安全地重建和验证 Mach-O 二进制文件; - 创建一个**未重新签名、仅供分析**的 app bundle 或 IPA,以及一个单独的 `manifest.json`;嵌入的签名可能仍然存在但无效; - 提供一个完全基于第一方生成 fixture 的无设备 demo。 初始兼容性将有意设置得较窄,并由具体的测试记录支持。有关当前的 MVP 边界,请参阅 [PROJECT_PLAN.md](PROJECT_PLAN.md)。 ## 非目标 OrchardProbe 不会提供或促进: - 搜索、下载、托管或共享未经授权的第三方已解密 IPA; - Apple ID 登录、自动购买或批量 App Store 获取; - 绕过购买、订阅、许可证、反作弊系统、账户限制或特定应用的保护; - 提供或执行越狱、kernel 漏洞利用、PAC/PPL 绕过,或针对商业应用的定向绕过; - 重新签名、安装、功能修改或一键分发; - 提取 Keychain 项目或应用数据容器(如 Documents、cookie 或数据库); - 基于云的导出服务。 添加这些能力的请求或贡献超出了项目范围。 ## 计划的 CLI 以下命令层面是草案设计,并非可用接口: ``` oprobe doctor [--json] oprobe devices oprobe apps oprobe export --output oprobe verify [--json] oprobe demo ``` 目前特意还没有安装命令。只有在存在可复现的 alpha 版本后,才会添加安装文档。 ## 架构概述 ``` flowchart LR CLI["Rust host CLI"] --> Policy["Authorization and scope policy"] Policy --> Doctor["Doctor and capability probe"] Doctor --> Router["Backend router"] Router --> Helper["Minimum-necessary device helper"] Helper --> Stream["Restricted code-range stream"] Helper --> Bundle["Bundle-root constrained file stream"] Stream --> Rebuild["Mach-O reconstruction"] Bundle --> Package["Not re-signed analysis package"] Rebuild --> Package Package --> Verify["Per-binary evidence report and manifest"] ``` 宿主机计划作为一个 Rust workspace。一个小型的 Objective-C/C helper 将仅执行所需的设备端操作。Sprint 0 将在选择 MVP backend 之前比较 suspended-spawn 和 mapped-file 候选方案;目前均未声称可运行。Backend adapter 将保持在版本化的能力握手之后隔离,允许项目添加第二种实现,而无需将 helper 扩展为通用的远程访问服务。 ## 隐私与安全原则 - 本地优先:app bundle、报告、日志和设备详细信息保留在用户的机器上。 - 无遥测:项目不会收集使用情况、IPA、日志或设备数据。 - 最小收集:仅 `.app` bundle 在范围内;receipts、`SC_Info` 和数据容器在设计上被排除。 - 可审计的输出:结构化报告解释 backend 选择、每个文件的状态、hash、签名状态和证据级别。诸如 `cryptid == 0` 之类的 metadata 绝不会被单独视为正确明文的证明;没有明文 oracle 的结果将被标记为不确定。 - 诚实的兼容性:公开的支持声明需要有记录的真实设备结果。 - 安全的 fixture:仓库测试使用项目生成的 DemoLab artifact,绝不使用专有的第三方二进制文件。 ## 路线图 OrchardProbe 目前处于 **Sprint 0 / 项目基础** 阶段。 1. **Sprint 0:** 冻结范围和威胁模型,定义 schema,构建 DemoLab fixture,并在拥有的测试应用上验证一个狭窄的技术 spike。 2. **v0.1 alpha:** 添加 Rust CLI 骨架、能力诊断、USB 传输、一个经过测试的 backend、重建、打包和验证。 3. **v0.3:** 扩展每个二进制文件的覆盖率,添加另一个 backend 或 fallback,并发布真实的兼容性矩阵。 4. **v0.6:** 强化可恢复性、结构化集成、fuzzing 和自托管设备测试。 5. **v1.0:** 仅在独立安全审查和可衡量的可靠性目标达标后,才稳定协议和 manifest。 此路线图描述的是方向,而不是保证的日期或兼容性。详细计划和发布门控位于 [PROJECT_PLAN.md](PROJECT_PLAN.md)。 ## 许可证与独立性 仓库源代码在 [Apache License 2.0](LICENSE) 下提供。该许可证不授予对使用 OrchardProbe 分析的任何应用、设备、平台或内容的权利。OrchardProbe 是一个独立项目,不隶属于 Apple Inc.,也未获得其认可。
标签:CVE监控, 可视化界面