Skip to content

iOS 二进制信息 commands/ios/binary.py ​

本模块用于在 iOS 设备上枚举当前进程加载的二进制(Mach-O)与框架,输出其加密、PIE、ARC、栈保护等安全编译标志,帮助判断目标 App 的二进制防护强度。命令组前缀为 ios binary ...。

模块概览 ​

项目值
文件路径objection/commands/ios/binary.py
Agent 实现agent/src/ios/binary.ts
命令组ios binary ...
依赖objection.state.connection、objection.utils.output、tabulate、click

解决的问题 ​

  • 想知道主二进制是否被 Apple FairPlay 加密(encrypted),以判断是否需要脱壳才能做静态分析。
  • 需要快速确认 PIE、ARC、Stack Canary、Stack Exec、RootSafe 等编译期防护是否启用。
  • 在自动化脚本/Agent 中需要以结构化 JSON 拿到二进制清单而非纯文本表格。

命令清单 ​

命令函数说明
ios binary infoinfo()列出当前进程所有二进制/框架及其安全编译标志

实现原理 ​

Python 层职责很轻:调用一次 Agent RPC ios_binary_info(),拿到以二进制名为键、属性为值的字典,再用 tabulate 渲染表格或封装为 CommandResult。无参数解析、无状态保存。

info() — 列出二进制及编译标志 ​

源码:objection/commands/ios/binary.py:10

入参 args 仅用于判断 JSON 模式。流程:取 API → ios_binary_info() → 按列渲染表格或返回 JSON。关键代码:

python
# objection/commands/ios/binary.py:18-19
api = state_connection.get_api()
binary_info = api.ios_binary_info()

表格列定义在 objection/commands/ios/binary.py:33:

python
headers=['Name', 'Type', 'Encrypted', 'PIE', 'ARC', 'Canary', 'Stack Exec', 'RootSafe']

JSON 模式行为 ​

当 should_output_json(args) 为真时,info() 返回 CommandResult(result={'binaries': binary_info, 'count': len(binary_info)}),命令名固定为 ios binary info,由 output_result() 统一序列化到 stdout。非 JSON 模式直接 click.secho(tabulate(...)) 并返回 None。

源码索引 ​

符号位置
infoobjection/commands/ios/binary.py:10

相关文档 ​

基于 GPL-3.0-or-later 许可发布