
iOS/macOS リサーチ用スイスアーミーナイフ
iOS/macOS研究のスイスアーミーナイフ
ipsw とは 🤔ipsw は、iOS と macOS のための包括的なコマンドライン研究フレームワークです。セキュリティ研究者、リバースエンジニア、脱獄(ジェイルブレイク)開発者、iOS愛好家に対して、Apple ファームウェアのダウンロード、パース、解析、および iOS デバイスとの対話を行うための広範なツールキットを提供します。
blacktop tap を使用(追加機能を含む)
brew install blacktop/tap/ipsw
公式 Homebrew formula を使用
brew install ipsw
sudo snap install ipsw
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 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
ipsw macho info /path/to/binary
ipsw macho disass /path/to/binary --symbol _main
ipsw macho search /path/to/binary --string "password"
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
idev)ipsw idev list
ipsw idev afc ls /
ipsw idev apps ls
ipsw idev backup create
ipsw idev syslog
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
ipsw appstore cert ls
ipsw appstore device reg --name "My Device" --udid 1234567890
ipsw appstore profile create --name "Development Profile"
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
❱ 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];
}
}
}
ipswd 実行中に /docs で利用可能なREST APIドキュメントipsw のスーパーパワーでAIエージェントを強化しましょう
npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw
AIを使ってリポジトリについて質問できます:
[!WARNING] AIの応答には幻覚が含まれる場合があります。重要な情報は検証してください。
事前計算済みのファームウェア差分: ipsw-diffs
コントリビューションを歓迎します! ガイドラインについては CONTRIBUTING.md をご覧ください。
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
問題が発生した場合は issue を作成してください。修正を優先します! 将来のリリースでは包括的なテストスイートが計画されています。
多大なる感謝を:
MITライセンス - 詳細は LICENSE をご覧ください。