
New releaseSep 12, 2026
ipsw v3.1.716
iOS/macOS リサーチ用スイスアーミーナイフ
ipsw
iOS/macOS 研究用スイスアーミーナイフ
ipsw とは 🤔
ipsw は、iOS および macOS 向けの包括的なコマンドライン研究フレームワークです。セキュリティ研究者、リバースエンジニア、脱獄開発者、iOS 愛好家のために、Apple ファームウェアのダウンロード、解析、分析、および iOS デバイスとの対話を行うための広範なツールキットを提供します。
主な機能
- 📱 IPSW/OTA 分析 - iOS ファームウェアファイルのダウンロード、抽出、分析
- 🔍 バイナリ分析 - ARM 逆アセンブリと AI 支援を備えた高度な Mach-O 解析
- 🧠 dyld_shared_cache - ObjC/Swift クラスダンプによる完全な共有キャッシュ分析
- 🔧 カーネル分析 - Kernelcache の解析、システムコール抽出、シンボリケーション
- 📲 デバイス操作 - 包括的な iOS デバイス管理とデバッグ
- 🔐 ファームウェア研究 - IMG4、iBoot、SEP、コプロセッサファームウェアの分析
- 🏪 App Store Connect - アプリおよび証明書管理のための完全な API 統合
- 🛠️ 開発者ツール - SSH、Frida、デバッグ、リバースエンジニアリングユーティリティ
クイックスタート
インストール
macOS
blacktop tap を使用(追加機能を含む)
brew install blacktop/tap/ipsw
公式 Homebrew フォーミュラを使用
brew install ipsw
Linux
sudo snap install ipsw
Windows
scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw
基本的な使用方法
# 最新の iOS IPSW をダウンロード
ipsw download ipsw --device iPhone16,1 --latest
# kernelcache を抽出
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
# dyld_shared_cache を分析
ipsw dyld info /path/to/dyld_shared_cache_arm64
# デバイス情報を取得
ipsw idev list
主な機能
📱 IPSW & OTA 管理
- ダウンロードソース: Apple、AppleDB、Developer Portal、RSS フィード、GitHub、iTunes、Wikipedia
- ファイルタイプ: IPSW、OTA、macOS インストーラ、Xcode、KDK、PCC ファイル
- 操作: 抽出、差分、マウント、メタデータ分析
ipsw download ipsw --device iPhone16,1 --latest
ipsw extract --kernel iPhone16,1_18.2_22C150_Restore.ipsw
ipsw diff iPhone16,1_18.1_22B83_Restore.ipsw iPhone16,1_18.2_22C150_Restore.ipsw
🔍 バイナリ分析 & リバースエンジニアリング
- Mach-O 解析: シンボル抽出による完全なバイナリ分析
- ARM 逆アセンブリ: AI 搭載分析を備えた ARM v9-a 逆アセンブラ
- コード署名: 署名の検証、entitlements の分析
- バイナリパッチ: パッチの追加、変更、削除
ipsw macho info /path/to/binary
ipsw macho disass /path/to/binary --symbol _main
ipsw macho search /path/to/binary --string "password"
🧠 dyld_shared_cache 分析
- キャッシュ解析: 完全な共有キャッシュ構造の抽出と分析
- ObjC 分析: クラスダンプ、メソッド分析、プロトコル解析
- Swift サポート: Swift クラスダンプと分析(実験的)
- シンボル管理: シンボル抽出とアドレス解決
ipsw dyld info /path/to/dyld_shared_cache
ipsw dyld extract /path/to/dyld_shared_cache --dylib Foundation
ipsw dyld objc class /path/to/dyld_shared_cache --class NSString
📲 iOS デバイス操作(idev)
- ファイルシステム: AFC によるファイルの参照と転送
- アプリ管理: アプリケーションのインストール、アンインストール、分析
- バックアップ & 復元: 完全なデバイスバックアップ操作
- 開発: 開発者イメージのマウント、ログキャプチャ、パケットキャプチャ
- 診断: バッテリー情報、クラッシュログ、システム診断
ipsw idev list
ipsw idev afc ls /
ipsw idev apps ls
ipsw idev backup create
ipsw idev syslog
🔐 ファームウェア & セキュリティ分析
- IMG4: Image4 形式ファイルの解析と復号
- iBoot: ブートローダーの分析と研究
- SEP: Secure Enclave Processor ファームウェアの分析
- AEA: Apple Encrypted Archives の復号
- コプロセッサ: AOP、DCP、GPU、カメラファームウェアの分析
ipsw img4 dec iBoot.img4
ipsw fw sep iPhone16,1_18.2_22C150_Restore.ipsw
ipsw fw iboot iPhone16,1_18.2_22C150_Restore.ipsw
🏪 App Store Connect 統合
- 証明書管理: iOS/macOS 証明書とプロファイル
- デバイス登録: 開発デバイスの管理
- アプリ管理: Bundle ID、機能、レビュー
- プロビジョニング: 完全なプロビジョニングプロファイルライフサイクル
ipsw appstore cert ls
ipsw appstore device reg --name "My Device" --udid 1234567890
ipsw appstore profile create --name "Development Profile"
🛠️ 高度な研究ツール
- シンボリケーション: クラッシュログ分析とシンボル解決
- クラスダンプ: ObjC および Swift クラスの抽出
- SSH アクセス: debugserver を使用した脱獄デバイスへの SSH
- Frida 統合: 動的計装機能
- AI 搭載デコンパイラ: Claude、OpenAI、Gemini、Ollama、OpenRouter との統合
ipsw symbolicate crash.ips --dsym /path/to/symbols
ipsw class-dump /path/to/binary
ipsw ssh debugserver
アーキテクチャ
ipsw は 2 つの主要コンポーネントで構成されています:
ipsw- 完全な分析機能を備えたメイン CLI ツールipswd- リモート操作と自動化のための REST API デーモン
設定
ipsw は YAML 設定ファイルと環境変数をサポートしています:
# 設定ディレクトリを作成
mkdir -p ~/.config/ipsw
# サンプル設定をコピー
cp config.example.yml ~/.config/ipsw/config.yaml
データベースサポート
- SQLite(デフォルト)- ローカルストレージ
- PostgreSQL - 本番環境デプロイメント
AI デコンパイラ
❱ ipsw macho disass /System/Library/PrivateFrameworks/ApplePushService.framework/apsd --entry \
--dec --dec-model "Claude 3.7 Sonnet"
• Loading symbol cache file...
• Decompiling... 🕒
int main(int argc, char *argv[]) {
@autoreleasepool {
__set_user_dir_suffix(@"com.apple.apsd");
@autoreleasepool {
APSDaemon *daemon = [[APSDaemon alloc] init];
if (daemon) {
NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
[runLoop run];
[runLoop release];
}
[daemon release];
}
return 0;
}
@catch (NSException *exception) {
if ([exception reason] == 1) {
id exceptionObj = [exception retain];
id logger = [APSLog daemon];
if (_os_log_type_enabled(logger, 0x11)) {
[exceptionObj logWithLogger:logger];
}
[logger release];
[exceptionObj release];
}
}
}
ユースケース
セキュリティ研究
- 脆弱性分析とエクスプロイト開発
- ファームウェアセキュリティ評価
- バイナリリバースエンジニアリング
脱獄開発
- ブートチェーン分析とエクスプロイト
- カーネル拡張の研究
- システムの変更とパッチ適用
iOS 開発
- アプリのデバッグと分析
- 証明書とプロビジョニング管理
- デバイステストと自動化
デジタルフォレンジック
- デバイスデータの抽出と分析
- タイムラインの再構築
- アーティファクト分析
要件
- Go: 1.26+(ソースからのビルド用)
- プラットフォーム: macOS、Linux、Windows
- USB: デバイス操作のための libusb
- オプション: 拡張分析のための AI API キー
ドキュメント
- ウェブサイト: https://blacktop.github.io/ipsw
- API ドキュメント:
ipswd実行時に/docsで REST API ドキュメントを参照可能 - 例: ドキュメント内の包括的な使用例
SKILL.md
ipsw のスーパーパワーで AI エージェントを強化
npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw
🆕 AI 搭載 Wiki
AI を使用してリポジトリについて質問する:
[!WARNING] AI の応答には幻覚が含まれる可能性があります - 重要な情報は検証してください。
コミュニティリソース
📊 IPSW 差分
事前計算済みのファームウェア差分: ipsw-diffs
💬 コミュニティ
貢献
貢献を歓迎します!ガイドラインについては CONTRIBUTING.md を参照してください。
開発
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
既知の問題
- macOS IPSW サポート: 一部の macOS ファームウェア操作で互換性の問題が発生する場合があります
- テスト: ファームウェアバージョンとデバイスタイプの多様性により、包括的なテストが困難です
- リソース集約型: 一部の操作には大量のメモリと処理能力が必要です
問題が発生した場合は issue を作成してください - 修正が優先されます!包括的なテストスイートは将来のリリースで計画されています。
クレジット
多大なる感謝を:
- Jonathan Levin - 伝説的なツールと包括的な iOS 内部ドキュメントに対して
- iOS 研究コミュニティ - 継続的な革新と知識共有に対して
- このプロジェクトをより良くするために貢献してくださったすべてのコントリビューターへ
ライセンス
MIT ライセンス - 詳細は LICENSE を参照してください。