Communitygithub.com

zhutao100/macos-private-framework-research-skill

エージェントがmacOSのプライベートフレームワークを調査するためのスキル。dyld共有キャッシュの抽出、Objective-C/Swiftメタデータの再構築、Hopper/RuntimeViewer/RuntimeBrowser/ipswワークフロー、およびMOTIFスタイルのLLMガイド型推論をサポートします。

macos-private-framework-research-skill とは?

このスキルは、AIエージェント(Claude Code、Cursor、Codexなど)がmacOSのプライベートフレームワークを体系的に調査・解析するための機能を提供します。dyld共有キャッシュからフレームワークバイナリを抽出し、Objective-CやSwiftのメタデータ(クラス、メソッド、プロトコル)を再構築する手順をサポートします。また、HopperやRuntimeViewer、RuntimeBrowser、ipswなどの逆アセンブル・ランタイム解析ツールとの連携ワークフローを含みます。さらに、MOTIFスタイルのLLMガイド型型推論を活用し、未公開のメソッドシグネチャや構造体の型情報を推測します。これにより、セキュリティ研究者やプラットフォームエンジニアが、AppleのプライベートAPIの動作を理解し、互換性のあるコードを開発するのに役立ちます。macOSのバージョンごとのフレームワーク変更の追跡や、新APIの発見にも応用可能です。

対応~Claude Code~Codex CLI~Cursor
npx skills add zhutao100/macos-private-framework-research-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

macos-private-framework-research-skill は何をしますか?

エージェントがmacOSのプライベートフレームワークを調査するためのスキル。dyld共有キャッシュの抽出、Objective-C/Swiftメタデータの再構築、Hopper/RuntimeViewer/RuntimeBrowser/ipswワークフロー、およびMOTIFスタイルのLLMガイド型推論をサポートします。

概要

このスキルを使用すると、macOSシステムに含まれるプライベートフレームワーク(例:CoreUI, SkyLight, UIKitMacHelperなど)の内部構造を詳細に調査できます。主な機能は以下のとおりです。

  • dyld共有キャッシュの抽出: dyld_shared_cacheから特定のフレームワークバイナリを抽出します。
  • Objective-Cメタデータの再構築: クラス階層、メソッドリスト、プロパティ、プロトコル一覧を復元します。
  • Swiftメタデータの再構築: 名前修飾(mangling)されたシンボルを解読し、構造体やEnumの型情報を取得します。
  • 逆アセンブルツールとの連携: Hopper, RuntimeViewer, RuntimeBrowser, ipsw ツールを使用した解析ワークフローを提供します。
  • LLMガイド型推論: MOTIFスタイルで、未公開メソッドの引数型や戻り値の型を推論します。

前提条件

使用方法

1. dyld共有キャッシュからのフレームワーク抽出

# フレームワーク一覧を取得
ipsw dyld list -a | grep -i "privateframework"

# 特定のフレームワークを抽出
ipsw dyld extract /System/Library/dyld/dyld_shared_cache_arm64e -o /tmp/extracted/ SkyLight

2. Objective-Cメタデータの再構築

# クラス一覧の抽出
otool -ov /tmp/extracted/SkyLight.framework/SkyLight | grep "class"

# メソッドリストの表示
class-dump /tmp/extracted/SkyLight.framework/SkyLight | head -100

3. Swiftシンボルの解析

# Swiftシンボルの名前修飾をデコード
nm /tmp/extracted/SkyLight.framework/SkyLight | xcrun swift-demangle

# 構造体のレイアウト情報を取得(存在する場合)
strings /tmp/extracted/SkyLight.framework/SkyLight | grep -i "struct"

4. Hopper/Ghidraとの連携

  1. 抽出したフレームワークバイナリをHopperまたはGhidraで開きます。
  2. 関心のあるクラス名で検索します(例:CGSWindow)。
  3. 疑似コードビューでメソッドのロジックを分析します。
  4. 必要に応じて、LLMに疑似コードを渡して型推論をリクエストします。

5. MOTIFスタイルのLLMガイド型推論

LLMに対して以下のようなプロンプトを使用します:

Analyze the following Hopper pseudocode for method "-[CGSWindow _setLevel:]" in the SkyLight private framework.
The method takes a single argument (int or unsigned int) and returns void.
Reconstruct the method signature and infer the Objective-C type encoding.

LLMは、コンテキスト(セレクタ名、使用されるデータ型、戻り値)を基に型情報を推論します。

例: CoreUIフレームワークの調査

# CoreUIフレームワークを抽出
ipsw dyld extract /System/Library/dyld/dyld_shared_cache_arm64e -o /tmp/coreui/ CoreUI

# クラスダンプ
class-dump /tmp/coreui/CoreUI.framework/CoreUI > /tmp/coreui/classes.txt

# 特定のクラスのメソッドを検索
grep "CUITheme" /tmp/coreui/classes.txt | head -20

注意点

  • プライベートフレームワークのAPIは予告なく変更される可能性があります。
  • プライベートAPIを使用したアプリケーションは、App Storeの審査を通過できません。
  • 解析は教育およびセキュリティ研究目的に限定してください。
  • ipsw ツールは定期的にアップデートしてください(brew upgrade ipsw)。

関連リソース

ライセンス

元のリポジトリのライセンスに従います。

関連スキル