Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
sylvia — iOS Syscall Explorer for IDA 9.X | Kitploit
工具/GitHubGitHub/stolevchristian/sylvia
Static AnalysisiOS SecurityVulnerability AnalysisReverse EngineeringDebuggersInformation GatheringMobile SecurityBinary Analysis
GitHubstolevchristian/sylvia

sylvia

iOS Syscall Explorer for IDA 9.X

查看仓库
1512个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

iOS AArch64 系统调用分析器

一个 IDA Pro 脚本,用于扫描 AArch64 二进制文件中的 SVC 指令,从 X16 寄存器解析 BSD 系统调用编号,并在一个功能丰富的可停靠 UI 中展示所有结果,支持按系统调用位置导航和实时手册文档获取。

专为 iOS / macOS 逆向工程设计,适用于 IDA Pro 9.x。
我创建它的唯一目的是,在逆向具有反篡改机制(直至系统调用层)的 iOS 平台时,厌倦了将系统调用打印到控制台,想要一个更直观的查看方式,同时能够获取实时文档。

整个 ReadMe 由 AI 生成,脚本的大部分内容也是如此。我编写了基础代码,然后让 Claude Opus 4.7 施展魔法,将其整合成漂亮的用户界面。


功能

  • 全二进制扫描 —— 查找每一条 SVC #0x80 指令,并回溯最多 8 条指令解析 MOV X16, #num 的传参设置
  • 556 条系统调用映射表 —— 完整的 iOS/macOS AArch64 BSD 系统调用表(Darwin XNU)
  • 9 个颜色编码类别 —— 文件 I/O、网络、内存、进程、线程、进程间通信(IPC)、安全、时间、杂项;颜色复用 IDA 自身的反汇编调色板
  • 可停靠面板 —— 像原生工具一样嵌入 IDA;重新运行脚本可聚焦同一窗口
  • 实时筛选 —— 按名称、编号(0x5、5)或函数名搜索;也可从下拉菜单按类别筛选
  • 出现位置表 —— 列出每个系统调用出现的所有地址和 RVA,已排序;双击或按 Enter 即可跳转到 IDA 中的对应地址
  • 实时文档 —— 在后台线程中从 man.freebsd.org 获取完整的 man 2 手册页(Darwin 衍生自 BSD);结果在会话中缓存
  • 内建描述 —— 约 250 个系统调用带有单行描述,无需网络请求即可立即使用
  • 导出 JSON —— 将所有发现的系统调用(名称、编号、地址、RVA、函数、类别)导出到 JSON 文件
  • 右键上下文菜单 —— 复制名称、复制编号、跳转到第一次出现位置、获取手册页(系统调用表);复制地址、复制函数名(出现位置表)
  • 键盘快捷键 —— Ctrl+F 聚焦搜索框;在选中的出现位置上按 Enter 可导航

环境要求

要求版本
IDA Pro9.x(已在 9.3 上测试)
Python与 IDA 捆绑
PySide6随 IDA 9 提供
requests可选 —— 仅在获取手册页时需要

PyQt5 回退 —— 该脚本也适用于较早版本的 IDA 的 PyQt5 shim。

要将 requests 安装到 IDA 的 Python 环境中,在 IDA 的 Python 控制台中运行:

root@kitploit:~
import subprocess, sys
subprocess.run([sys.executable, "-m", "pip", "install", "requests"])

安装

  1. 将 syscall_ios.py 复制到机器上的任意位置。
  2. 在 IDA Pro 中打开目标二进制文件。
  3. 通过 File → Script file… 运行脚本,或将其拖拽到 IDA 窗口中。

分析器面板将自动打开并开始扫描。


用法

运行脚本

root@kitploit:~
File → Script file… → syscall_ios.py

或者使用 IDA 的 Script command(Shift+F2)直接粘贴并运行。

面板概览

Pic 1 Pic 2


类别颜色参考

颜色模仿 IDA Pro 自身的反汇编高亮调色板,使输出感觉更原生。


导出格式

Export JSON 生成的文件格式如下:

root@kitploit:~
[
  {
    "name": "read",
    "number": 3,
    "number_hex": "0x3",
    "address": "0x1001a4bc",
    "rva": "0x4bc",
    "function": "sub_1001A0000",
    "category": "File I/O"
  },
  ...
]

系统调用覆盖范围

内嵌表格覆盖了 Darwin/XNU BSD 层(0x2000000 类别)的 556 条系统调用,包括:

  • 标准 POSIX(read、write、open、mmap、socket……)
  • Darwin 扩展(csops、guarded_open_np、memorystatus_control、kevent_qos……)
  • iOS 专用(pid_hibernate、abort_with_payload、necp_*、os_fault_with_payload……)
  • Pthread 内核辅助(psynch_mutexwait、psynch_cvwait、……)

Mach 陷阱以及通过不同陷阱类调用的 libsystem 包装器不包含在内 —— 本工具仅覆盖 BSD 类别(SVC #0x80 且 X16 = 0x2000000 | num)。


说明

  • 系统调用编号通过从 SVC 指令向前回溯最多 8 条指令,寻找 MOV X16, #imm 来解析。间接加载(例如 LDR X16, [...])将显示为 UNKNOWN。
  • 文件顶部的 SLIDE 常量对显示的地址没有影响 —— 它作为注释保留,用于关联实时的 lldb 会话。
  • 重新扫描将对当前加载的二进制文件重新执行完整分析;之前获取的手册页会继续缓存。
下载工具
类别颜色IDA 对应项
文件 I/O#4EC9B0类型 / 结构体
网络#569CD6关键字
内存#DCDCAA函数名
进程#CE9178字符串字面量
线程#9CDCFE变量
IPC#C586C0枚举 / 宏
安全#F44747错误 / 警告
时间#6A9955注释
杂项#858585—
bsdthread_*
  • GCD / workqueue(workq_open、workq_kernreturn、kqueue_workloop_ctl……)
  • 审计和 MAC 框架(audit_*、__mac_*)