工具

iblessing iOS 应用与 Mach-O 分析工具集

用于分析 iOS 应用和 arm64 Mach-O 二进制的工具集,基于 Capstone、Unicorn 与 Keystone 构建。其扫描器可提取应用包元数据(如 URL Scheme 和传输安全设置),定位 Objective-C 类引用和 NSPredicate 用法,识别符号包装函数,并借助 Unicorn 部分模拟 arm64 代码以恢复 objc_msgSend 交叉引用,包括经由 block 传递的调用。生成器可把扫描报告转成 IDA Pro 脚本,用于添加交叉引用和重命名包装函数,也可启动本地查询服务;共享核心库及插件接口可用于开发自定义工具。

目标
应用 · 二进制
类别
原生分析工具
关联
基础工具
来源复核于

使用条件与局限

  • 审阅时最新版本为 v1.0.4-beta,发布于 2021-11-26,标签正对应所审阅的 master 提交;所有版本均标为预发布。近期各版本附带 macOS 与 Linux 的命令行程序和一体化构建、含共享核心库及头文件的框架压缩包,以及一份 Foundation 与 UIKit 方法签名的 JSON 表。README 功能列表中,Swift 类解析、跟随分支与调用以及 Android 扫描器仍未完成。
  • app-info 扫描器需要使用者提供 iOS .app 应用包,其他扫描器需要 arm64 Mach-O 二进制;README 示例先用另一个工具恢复符号,再分析商业第三方应用,但仓库未提交任何应用二进制。类引用和 objc_msgSend 交叉引用扫描器只接受 arm64 二进制,app-info 仍依赖 Cocoa,因此无法在 Linux 上使用。README 提醒,二进制扫描器加载每个 Mach-O 文件都会预留 12 GB 虚拟内存,物理内存或交换空间须足以容纳。
  • 递归克隆后可在 macOS 或 Linux 上用 CMake 3.5+ 和 C++17 编译器构建;compile-cmake.sh 会先把固定版本的 Capstone、Unicorn(arm、aarch64 和 x86)和 Keystone 子模块编译为静态库。仓库还附带 Xcode 工程。只有应用生成的脚本时才需要 IDA Pro。
  • GitHub Actions 在 Ubuntu 和 macOS 上构建,并仅在 macOS 上扫描随附的示例应用基准文件、运行内置的 objc_msgSend 交叉引用测试;Travis CI 负责构建并发布带标签的版本。README 说明 objc-msg-xref 为提高速度不跟随任何调用,因此结果会有部分缺失。本次审阅未运行工具或测试。
  • 采用 GPL-3.0(LICENSE)。项目自称 iOS 安全漏洞利用工具集,本条目只介绍其分析功能。被分析的应用和 Apple 框架适用各自条款,Capstone、Unicorn 与 Keystone 子模块也有各自的许可证。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · Soulghost/iblessing · 修订 ff14351
  2. compile-cmake.command GitHub · Soulghost/iblessing · 修订 ff14351
  3. .gitmodules GitHub · Soulghost/iblessing · 修订 ff14351
  4. iblessing/CMakeLists.txt GitHub · Soulghost/iblessing · 修订 ff14351
  5. .github/workflows/c-cpp.yml GitHub · Soulghost/iblessing · 修订 ff14351
  6. run-test.command GitHub · Soulghost/iblessing · 修订 ff14351
  7. .travis.yml GitHub · Soulghost/iblessing · 修订 ff14351
  8. iblessing/iblessing/tests GitHub · Soulghost/iblessing · 修订 ff14351
  9. LICENSE GitHub · Soulghost/iblessing · 修订 ff14351
  10. https://github.com/Soulghost/iblessing/releases/tag/v1.0.4-beta

同分区更多条目:原生二进制

原生二进制分区全部 129 项资源