Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sylvia — IDA 9.X向けiOS Syscall Explorer | Kitploit
ツール/GitHubGitHub/stolevchristian/sylvia
静的分析iOSセキュリティ脆弱性分析リバースエンジニアリングデバッガ情報収集モバイルセキュリティバイナリ解析
GitHubstolevchristian/sylvia

sylvia

IDA 9.X向けiOS Syscall Explorer

リポジトリを見る
15163ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

iOS AArch64 システムコールアナライザー

AArch64 バイナリ内の SVC 命令をスキャンし、X16 レジスタから BSD システムコール番号を解決して、すべての結果をリッチなドッキング可能な UI で表示する IDA Pro スクリプトです。システムコールごとの出現箇所ナビゲーションと、ライブの man ページドキュメント取得に対応しています。

IDA Pro 9.x での iOS / macOS リバースエンジニアリング向けに構築されています。 これを開発した唯一の目的は、改ざん防止対策が施された 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 内のそのアドレスにジャンプ
  • ライブドキュメント — バックグラウンドスレッドで から完全な ページを取得(Darwin は BSD 由来)。結果はセッションごとにキャッシュされます
ツールをダウンロード
man.freebsd.org
man 2
  • 内蔵の説明文 — 約 250 のシステムコールに、ネットワークリクエストなしですぐに利用できる 1 行の説明が用意されています
  • JSON エクスポート — 検出されたすべてのシステムコール(名前、番号、アドレス、RVA、関数、カテゴリ)を JSON ファイルに出力します
  • 右クリックコンテキストメニュー — 名前のコピー、番号のコピー、最初の出現箇所へジャンプ、man ページの取得(システムコールテーブル)。アドレスのコピー、関数名のコピー(出現箇所テーブル)
  • キーボードショートカット — Ctrl+F で検索ボックスにフォーカス。選択した出現箇所で Enter を押すとそこへ移動します

  • 要件

    要件バージョン
    IDA Pro9.x(9.3 でテスト済み)
    PythonIDA に同梱
    PySide6IDA 9 に同梱
    requests任意 — man ページ取得にのみ必要

    PyQt5 フォールバック — このスクリプトは、古いバージョン向けの IDA の PyQt5 シムでも動作します。

    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)を使用して、直接貼り付けて実行します。

    パネル概要

    図 1 図 2


    カテゴリの色リファレンス

    色は IDA Pro 自身の逆アセンブルハイライトパレットに合わせているため、出力はネイティブな見た目になります。

    カテゴリ色IDA での相当
    ファイル I/O#4EC9B0型 / 構造体
    ネットワーク#569CD6キーワード
    メモリ#DCDCAA関数名
    プロセス#CE9178文字列リテラル
    スレッド#9CDCFE変数
    IPC#C586C0列挙型 / マクロ
    セキュリティ#F44747エラー / 警告
    時刻#6A9955コメント
    その他#858585—

    エクスポート形式

    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、bsdthread_*、…)
    • GCD / ワークキュー(workq_open、workq_kernreturn、kqueue_workloop_ctl、…)
    • Audit および MAC フレームワーク(audit_*、__mac_*)

    異なるトラップクラスを通る Mach トラップと libsystem ラッパーは含まれません — これは BSD クラス(X16 = 0x2000000 | num を伴う SVC #0x80)のみを対象としています。


    注意事項

    • システムコール番号は、SVC 命令から最大 8 命令以内の MOV X16, #imm を後方にスキャンして解決されます。間接ロード(例: LDR X16, [...])は UNKNOWN と表示されます。
    • ファイル先頭の SLIDE 定数は、表示されるアドレスには影響しません — ライブの lldb セッションとの関連付けを行うためのコメント参照として保持されています。
    • 再スキャンすると、現在読み込まれているバイナリに対して完全な分析が再実行されます。以前に取得した man ページはキャッシュされたまま残ります。