アップデート一覧に戻る
New releaseSep 12, 2026

ipsw v3.1.716

iOS/macOS リサーチ用スイスアーミーナイフ

共有

IPSW Logo

ipsw

iOS/macOSリサーチ用スイスアーミーナイフ


ipsw は、Appleファームウェアのリサーチとリバースエンジニアリングのためのコマンドラインツールキットです。IPSWやOTAのダウンロードと展開、Mach-Oバイナリやdyld shared cacheの調査、kernelcacheの解析、接続されたiOSデバイスの操作ができます。

Agent skill · インストール · CLIの例 · ドキュメント

AIエージェントとipswを使う

Claude Code、Codex、Gemini CLI、その他のスキルをサポートするエージェントで作業している場合は、まず ipsw-skill から始めてください。ファームウェアの抽出、バイナリ解析、Appleプラットフォームのリサーチのためのコマンドリファレンスとワークフローをエージェントに提供します。

ipsw CLIをインストールしてから、スキルを追加します:

npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw

その後は、自然言語でタスクを依頼できます。例えば:

iPhone 15 Pro用の最新IPSWをダウンロードして、そのkernelcacheを抽出して。

このdyld shared cacheからSpringBoardServicesのObjective-Cヘッダーをダンプして。

これら2つのkernelcacheのKEXTを比較して。

スキルのREADMEには、Claude CodeプラグインやGemini CLI拡張機能など、個々のエージェント向けのセットアップ手順があります。

インストール

macOS

メンテナのHomebrew tapにはextrasビルドが含まれています:

brew install blacktop/tap/ipsw

Homebrew coreのformulaも利用可能です: brew install ipsw。

Linux

sudo snap install ipsw

Windows

scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw

GitHub Releasesからバイナリをダウンロードすることもできます。その他のパッケージやオプションの依存関係については、インストールガイドを参照してください。一部のコマンドはホストOSやビルドバリアントに依存します。例えばFridaサポートには別のビルドがあります。

できること

領域ツール
ファームウェアIPSW、OTA、macOSインストーラ、Xcode、KDKのダウンロード、コンポーネントの抽出とビルドの比較
Mach-Oロードコマンド、シンボル、シグネチャ、エンタイトルメントの調査、ARM64コードの逆アセンブル
dyld shared cacheシンボルと相互参照の検索、dylibの抽出、Objective-Cヘッダーのダンプ、Swiftメタデータの調査
カーネルKEXTの抽出、syscallとシンボルの調査、kernelcacheの比較
ファームウェアコンポーネントIMG4のパース、AEAアーカイブの復号、iBootとコプロセッサファームウェアの調査
デバイスデバイスとアプリの一覧表示、AFCによるファイル転送、ログのキャプチャ、開発者イメージのマウント
App Store Connect証明書、バンドルID、デバイス、プロビジョニングプロファイルの管理
リサーチクラッシュログのシンボリケート、SSH経由のデバッグ、Fridaによるトレース、LLMによる逆コンパイル

CLIの例

例のファイルパスはご自身のものに置き換えてください。ipsw --helpを実行するか、任意のサブコマンドに--helpを追加すると、そのオプションが表示されます。

ファームウェアのダウンロードと抽出

# Download the latest IPSW for iPhone 15 Pro
ipsw download ipsw --device iPhone16,1 --latest

# Inspect a local IPSW and extract its kernelcache
ipsw info /path/to/firmware.ipsw
ipsw extract --kernel /path/to/firmware.ipsw

# Compare two firmware builds
ipsw diff /path/to/old.ipsw /path/to/new.ipsw

dyld shared cacheの調査

ipsw dyld info /path/to/dyld_shared_cache_arm64e

# Extract Foundation for use in other tools
ipsw dyld extract /path/to/dyld_shared_cache_arm64e Foundation

# Dump headers directly from the cache
ipsw class-dump /path/to/dyld_shared_cache_arm64e SpringBoardServices --headers -o headers

Objective-C解析にはキャッシュを直接使用してください。抽出されたdylibは、キャッシュ内の別の場所に保存されているメタデータを依然として参照する可能性があります。

バイナリとkernelcacheの調査

# Select an architecture explicitly for universal binaries
ipsw macho info /path/to/binary --arch arm64e
ipsw macho disass /path/to/binary --arch arm64e --symbol _main

# Search a directory of binaries for an imported symbol
ipsw macho search /path/to/binaries --import 'CCCrypt'

# List KEXTs, then extract one by its full bundle ID
ipsw kernel kexts /path/to/kernelcache
ipsw kernel extract /path/to/kernelcache com.apple.driver.ASIOKit -o kexts

接続されたデバイスの操作

ipsw idev list
ipsw idev apps ls
ipsw idev afc ls /
ipsw idev syslog

LLMによる逆コンパイル

macho disassおよびdyld disassコマンドは、--decを指定すると、設定されたLLMプロバイダに逆アセンブリを送信できます。プロバイダの設定、モデルの選択、例については、逆コンパイラガイドを参照してください。

設定と自動化

CLIは~/.config/ipsw/config.yamlからYAML設定を読み込みます。別のファイルを選択するには--configを使用します。設定と環境変数については、config.example.ymlおよび設定ガイドを参照してください。

スクリプトでは、ユニバーサルバイナリを開く際に--archでアーキテクチャを選択し、短い名前が曖昧な場合は完全なdylibパスを使用してください。--jsonをサポートするコマンドは、そのヘルプに記載されています。

別個のipswdデーモンは、自動化のためのREST APIを公開しています。APIリファレンスを参照してください。

ドキュメントとコミュニティ

バグを報告する際は、ipsw version、実行したコマンド、および関連するファームウェアビルドまたはファイルタイプを含めてください。ログやクラッシュレポートからは個人情報を削除してください。

ビルドとコントリビュート

ソースからのビルドにはGo 1.26以降と、CGO用のCツールチェーンが必要です:

git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build

開発とコントリビューションのガイドラインについては、CONTRIBUTING.mdを参照してください。

クレジット

ツールとiOS内部のドキュメントを提供してくれたJonathan Levin、Appleセキュリティリサーチコミュニティ、そしてコード、バグレポート、リサーチを提供してくれるすべての人々に感謝します。

ライセンス

MIT。

カテゴリ