
ipsw v3.1.716
سكين الجيش السويسري لأبحاث iOS/macOS
ipsw
سكين الجيش السويسري لأبحاث iOS/macOS
ipsw هي مجموعة أدوات سطر أوامر لأبحاث البرامج الثابتة من Apple والهندسة العكسية. قم بتنزيل وفك حزم IPSWs وOTAs، وافحص ثنائيات Mach-O وذاكرات dyld المشتركة، وحلّل kernelcaches، وتعامل مع أجهزة iOS المتصلة.
مهارة الوكيل · التثبيت · أمثلة CLI · التوثيق
استخدام ipsw مع وكيل ذكاء اصطناعي
ابدأ بـ ipsw-skill إذا كنت تعمل في Claude Code أو Codex أو Gemini CLI أو أي وكيل آخر يدعم المهارات. فهو يمنح الوكيل مراجع الأوامر وسير العمل لاستخراج البرامج الثابتة وتحليل الثنائيات وأبحاث منصة Apple.
ثبّت ipsw CLI، ثم أضف المهارة:
npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw
يمكنك بعد ذلك طلب مهمة بلغة طبيعية. على سبيل المثال:
نزّل أحدث IPSW لـ iPhone 15 Pro واستخرج kernelcache الخاص به.
استخرج ترويسات Objective-C الخاصة بـ SpringBoardServices من ذاكرة dyld المشتركة هذه.
قارن KEXTs في هذين kernelcaches.
يحتوي ملف README الخاص بالمهارة على تعليمات الإعداد للوكلاء الفرديين، بما في ذلك إضافة Claude Code وامتداد Gemini CLI.
التثبيت
macOS
تتضمن حزمة Homebrew الخاصة بالمشرف بناء extras:
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
يمكنك أيضًا تنزيل الثنائيات من GitHub Releases. راجع دليل التثبيت للحصول على حزم أخرى والتبعيات الاختيارية. تعتمد بعض الأوامر على نظام التشغيل المضيف أو نوع البناء؛ فدعم Frida، على سبيل المثال، له بناء منفصل.
ما يمكنك فعله
| المجال | الأدوات |
|---|---|
| البرامج الثابتة | تنزيل IPSWs وOTAs ومثبّتات macOS وXcode وKDKs؛ استخراج المكونات ومقارنة البنيات |
| Mach-O | فحص أوامر التحميل والرموز والتوقيعات والاستحقاقات؛ تفكيك كود ARM64 |
| ذاكرات dyld المشتركة | البحث عن الرموز والمراجع المتقاطعة، واستخراج dylibs، واستخراج ترويسات Objective-C، وفحص بيانات Swift الوصفية |
| النواة | استخراج KEXTs، وفحص استدعاءات النظام والرموز، ومقارنة kernelcaches |
| مكونات البرامج الثابتة | تحليل IMG4، وفك تشفير أرشيفات AEA، وفحص iBoot وبرامج المعالج المساعد الثابتة |
| الأجهزة | سرد الأجهزة والتطبيقات، ونقل الملفات عبر AFC، والتقاط السجلات، وتركيب صور المطورين |
| App Store Connect | إدارة الشهادات ومعرّفات الحزم والأجهزة وملفات التزويد |
| الأبحاث | رمزنة سجلات الأعطال، والتصحيح عبر 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 مشتركة
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: لا تزال dylibs المستخرجة قادرة على الإشارة إلى بيانات وصفية مخزّنة في مكان آخر في الذاكرة.
فحص الثنائيات وkernelcaches
# 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 إرسال التفكيك إلى مزوّد LLM مُهيّأ باستخدام --dec. راجع دليل المفكّك لإعداد المزوّد واختيار النموذج والأمثلة.
الإعداد والأتمتة
يقرأ CLI إعدادات YAML من ~/.config/ipsw/config.yaml؛ استخدم --config لاختيار ملف آخر. راجع config.example.yml ودليل الإعداد للإعدادات ومتغيرات البيئة.
بالنسبة للسكربتات، اختر معمارية باستخدام --arch عند فتح الثنائيات الشاملة، واستخدم مسار dylib كاملاً عندما يكون الاسم المختصر غامضًا. الأوامر التي تدعم --json توثّق ذلك في مساعدتها.
يكشف الخادم المنفصل ipswd عن REST API للأتمتة. راجع مرجع API.
التوثيق والمجتمع
- مهارة الوكيل والإعداد
- الأدلة ومرجع الأوامر
- فروقات البرامج الثابتة المحسوبة مسبقًا
- مناقشات GitHub
- متتبع المشكلات
- DeepWiki، دليل مُولَّد بالذكاء الاصطناعي لقاعدة الكود
عند الإبلاغ عن خطأ، أدرج ipsw version، والأمر الذي شغّلته، وبناء البرنامج الثابت أو نوع الملف ذي الصلة. احجب المعلومات الشخصية من السجلات وتقارير الأعطال.
البناء والمساهمة
يتطلب البناء من المصدر Go 1.26 أو أحدث وسلسلة أدوات C لـ CGO:
git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build
راجع CONTRIBUTING.md لإرشادات التطوير والمساهمة.
الشكر
شكرًا لـ Jonathan Levin على أدواته وتوثيقه لداخليات iOS، ولمجتمع أبحاث أمن Apple، ولكل من يساهم بالكود وتقارير الأخطاء والأبحاث.
الترخيص
MIT.