Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
frida-ios-dump-modern — أداة dump مُحدَّثة لـ iOS تدعم أحدث واجهات برمجة التطبيقات في Frida 17.5.2 | Kitploit
أدوات/GitHubGitHub/jwalker/frida-ios-dump-modern
أمان iOSاختبار اختراق تطبيقات الجوالالهندسة العكسيةتحليل البرمجيات الخبيثةأمن الجوالتحليل الملفات الثنائية
GitHubjwalker/frida-ios-dump-modern

frida-ios-dump-modern

أداة dump مُحدَّثة لـ iOS تدعم أحدث واجهات برمجة التطبيقات في Frida 17.5.2

عرض المستودع
9منذ 7 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

مفرّغ IPA الحديث لنظام iOS

أداة حديثة لفك تشفير ذاكرة تطبيقات iOS، مبنية لتعمل مع Frida 17.5.2+ مع دعم كامل لـ iOS 14-16 وأنظمة كسر الحماية المتعددة.

الحالة: ✅ تعمل ومختبَرة - تنجح في تفريغ وفك تشفير تطبيقات iOS باستخدام Frida 17.5.2 على:

  • iOS 14.7.1 + كسر حماية Taurine (iPad mini 5)
  • iOS 16.7.12 + كسر حماية palera1n (iPhone 8)

الميزات

  • ✅ متوافق مع Frida 17.5.2+ (يستخدم NativePointer.readByteArray)
  • ✅ يعمل مع كسر حماية Taurine (iOS 14.7.1)
  • ✅ يعمل مع كسر حماية palera1n (iOS 16.7.12)
  • ✅ يتعامل مع مسارات كسر الحماية /cores/binpack/ الخاصة بـ palera1n
  • ✅ فك تشفير سريع باستخدام تفريغ الذاكرة + التصحيح اليدوي لـ cryptid
  • ✅ لا يستخدم استدعاءات API قديمة
  • ✅ كود نظيف وسهل الصيانة
  • ✅ تعبئة تلقائية لملفات IPA
  • ✅ يستخدم Python paramiko (لا حاجة لأدوات خارجية)
  • ✅ تقارير مفصّلة عن التقدم

لماذا هذه الأداة؟

أداة frida-ios-dump الأصلية (آخر تحديث لها 2020) تستخدم استدعاءات Frida API قديمة لا تعمل مع Frida 17.5.2. هذه الأداة مبنية من الصفر باستخدام واجهات Frida API الحديثة ومختبَرة تحديداً مع تصحيحات Frida المتوافقة مع Taurine.

المتطلبات

متطلبات macOS/المضيف

  • Python 3.8+
  • Frida 17.5.2+
  • paramiko (مكتبة SSH بلغة Python - تُثبَّت تلقائياً)
  • iproxy (للاتصال عبر USB بواسطة libimobiledevice)

متطلبات جهاز iOS

  • جهاز iOS مكسور الحماية (مختبَر على iOS 14.7.1 + Taurine)
  • تشغيل frida-server مُصحَّح (انظر تصحيحات Frida في will add my patch repo)
  • تفعيل الوصول عبر SSH

التثبيت

root@kitploit:~
cd /Users/username/git/frida-ios-dump-modern

# Create virtual environment with uv:
uv venv
source .venv/bin/activate

# Install dependencies
uv pip install -r requirements.txt

# Make script executable
chmod +x dump.py

إعداد اتصال USB

root@kitploit:~
# Install libimobiledevice if needed
brew install libimobiledevice

# Start USB tunnel (in a separate terminal)
iproxy 2222 22

الاستخدام

1. عرض التطبيقات المثبتة

root@kitploit:~
python dump.py -l

2. تفريغ تطبيق

مهم: يجب أن يكون التطبيق قيد التشغيل قبل التفريغ بسبب قيود كسر حماية Taurine.

root@kitploit:~
# 1. Launch the app on your device manually
# 2. Run the dumper:

python dump.py com.example.app

# With custom SSH password:
python dump.py com.example.app -P your_password

# With custom output directory:
python dump.py com.example.app -o /path/to/output

3. مثال: تفريغ تطبيق Ventusky

root@kitploit:~
# 1. Open Ventusky on your iOS device
# 2. Run:
python dump.py com.in-meteo.ventusky -P mypassword

كيف تعمل؟

النهج المتوافق مع iOS 16 (الطريقة الهجينة)

  1. الإرفاق: يتصل بعملية التطبيق الجارية عبر Frida
  2. التعداد: يسرد جميع الوحدات (الملفات الثنائية) المحمّلة في التطبيق
  3. قراءة الملف الثنائي من القرص: يقرأ الملف الثنائي المشفّر الأصلي من نظام ملفات الجهاز
    • حرج لنظام iOS 16: يحافظ على بيانات LC_DYLD_CHAINED_FIXUPS
    • يُبقي مقاطع DATA الأصلية مع سلاسل الإصلاح سليمة
  4. قراءة المقطع المُفكّك تشفيره: يقرأ مقطع TEXT المشفّر فقط من الذاكرة
    • يقوم iOS بفك تشفير الكود وقت التشغيل
    • نقرأ الجزء المُفكّك تشفيره فقط، وليس الملف الثنائي كاملاً
  5. الاستبدال والتصحيح:
    • استبدال مقطع TEXT المشفّر في الملف الثنائي على القرص بالذاكرة المُفكّك تشفيرها
    • تعيين cryptid=0 في LC_ENCRYPTION_INFO
    • تبقى جميع مقاطع DATA دون تغيير (يحافظ على عمليات الإصلاح)
  6. التفريغ: يكتب الملف الثنائي الهجين إلى /tmp على الجهاز
  7. التنزيل: ينقل الملفات من الجهاز عبر SCP باستخدام paramiko
  8. التعبئة: ينشئ ملف IPA مُفكّك التشفير جاهزاً للتحليل

لماذا يعمل هذا على iOS 16:

  • يستخدم iOS 16 عمليات الإصلاح المتسلسلة (chained fixups) - تُخزَّن المؤشرات كـ"سلاسل" يقوم dyld بحلها وقت التشغيل
  • التفريغ من الذاكرة يعطينا مؤشرات محلولة، لكن الأدوات تتوقع سلاسل الإصلاح
  • بقراءة الملف الثنائي من القرص واستبدال مقطع TEXT المشفّر فقط، نحافظ على عمليات الإصلاح الأصلية
  • هذا هو نفس النهج الذي تستخدمه bagbak وأدوات التفريغ الحديثة الأخرى

المخرجات

تنشئ الأداة:

  • ملفات ثنائية مفككة التشفير منفردة
  • حزمة تطبيق كاملة مع ملفات ثنائية مفككة التشفير
  • ملف IPA معبأ جاهز للتحليل

مثال على بنية المخرجات:

root@kitploit:~
/tmp/Ventusky_decrypted/
├── Payload/
│   └── Ventusky.app/
│       ├── Ventusky (decrypted main binary)
│       ├── Frameworks/
│       │   └── *.framework (decrypted frameworks)
│       └── ... (other app resources)
└── Ventusky_decrypted.ipa

التوافق مع كسر حماية Taurine

صُممت هذه الأداة للعمل مع خادم Frida المُصحَّح لـ Taurine والذي يتضمن:

  1. بدون تعليق الخيوط على iOS 14: يمنع انهيارات النواة (kernel panics)
  2. بدون حقن عبر launchd: يحترم قيود Taurine
  3. يتطلب تشغيل التطبيق يدوياً: يجب تشغيل التطبيقات يدوياً قبل التفريغ

استكشاف الأخطاء وإصلاحها

"لا يوجد جهاز USB"

root@kitploit:~
# Check frida-server is running on device:
ssh -p 2222 root@localhost "ps aux | grep frida-server"

# Restart frida-server if needed:
ssh -p 2222 root@localhost "killall frida-server; frida-server &"

"التطبيق غير موجود"

root@kitploit:~
# List apps to find correct bundle ID:
python dump.py -l

"التطبيق غير قيد التشغيل"

root@kitploit:~
# Launch the app manually on your device first
# This is required due to Taurine jailbreak restrictions

فشل مصادقة SSH

root@kitploit:~
# Test SSH connection:
ssh -p 2222 root@localhost

# If password prompt works, use -P flag:
python dump.py com.example.app -P your_password

iOS 16: "بيانات Objective-C الوصفية تبدو مشوهة" في Hopper

إذا كنت تواجه أخطاء في البيانات الوصفية على iOS 16 بعد التصحيح:

شخّص المشكلة:

root@kitploit:~
# Run diagnostic on dumped binary
./diagnose_ios16.sh /tmp/AppName_decrypted/Payload/AppName.app/AppName

# Compare with working iOS 14 binary
./diagnose_ios16.sh /path/to/working/ios14/binary

أمور أساسية يجب التحقق منها:

  1. حجم الملف يطابق الملف الثنائي الأصلي على القرص
  2. ابحث عن LC_DYLD_CHAINED_FIXUPS (خاص بنظام iOS 16)
  3. تحقق من أن cryptid يساوي 0 بعد التصحيح

تقرأ الأداة الآن حجم الملف الأصلي من القرص لتجنب تفريغ مناطق الذاكرة الموسّعة وقت التشغيل.

بعد التفريغ: التحقق

خبر سار: تقوم الأداة الآن تلقائياً بتعيين cryptid=0 أثناء التفريغ، فلا حاجة للتصحيح اليدوي بعد الآن!

التوافق مع iOS 16: تستخدم الأداة نهجاً هجيناً:

  1. يقرأ الملف الثنائي الأصلي من القرص (يحافظ على عمليات الإصلاح المتسلسلة)
  2. يستبدل مقطع TEXT المشفّر فقط بالذاكرة المُفكّك تشفيرها
  3. يضبط cryptid=0 تلقائياً
  4. يحافظ على جميع مقاطع DATA مع سلاسل الإصلاح الأصلية سليمة

يمنع هذا حدوث خطأي "هل هذا ملف مستخرج يدوياً من DYLD shared cache؟" و"بيانات Objective-C الوصفية تبدو مشوهة" على نظام iOS 16.

تحقق من التفريغ:

root@kitploit:~
# Check that cryptid is 0 (should be automatic now)
otool -l Payload/App.app/App | grep cryptid
# Should show: cryptid 0

# Check file has all segments
otool -l Payload/App.app/App | grep "segname __"
# Should show: __TEXT, __DATA_CONST, __DATA, __LINKEDIT

# Open in Hopper - should work without warnings!

التصحيح اليدوي (قديم - لم يعد مطلوباً):

إذا لم يعمل التصحيح التلقائي لـ cryptid لسبب ما:

root@kitploit:~
# Check if patching needed
otool -l Payload/App.app/App | grep cryptid
# If shows cryptid 1, run:

python patch_cryptid.py Payload/App.app/App
mv Payload/App.app/App.patched Payload/App.app/App

النتيجة المتوقعة:

  • ✅ يفتح Hopper بدون تحذيرات "مُشفَّر" أو "بيانات وصفية مشوهة"
  • ✅ جميع أصناف وطرق Objective-C ظاهرة
  • ✅ أسماء الإجراءات محلولة بشكل صحيح (وليس sub_XXXXX)
  • ✅ يعمل على كل من iOS 14 (Taurine) وiOS 16 (palera1n)

تفاصيل تقنية - عمليات الإصلاح المتسلسلة في iOS 16:

  • المشكلة: يستخدم iOS 16 خاصية LC_DYLD_CHAINED_FIXUPS لمصادقة المؤشرات
  • العيب: التفريغ من الذاكرة يعطي مؤشرات محلولة، وليس سلاسل إصلاح
  • الحل: النهج الهجين
    1. اقرأ الملف الثنائي المشفّر الأصلي من القرص (يحتوي على سلاسل إصلاح)
    2. اقرأ مقطع TEXT المُفكّك تشفيره فقط من الذاكرة
    3. استبدل مقطع TEXT المشفّر في الملف الثنائي على القرص بالذاكرة المُفكّك تشفيرها
    4. حافظ على مقاطع DATA من القرص (سلاسل الإصلاح سليمة)
    5. اضبط cryptid=0 تلقائياً
  • النتيجة: الملف الثنائي يحتوي على كود مُفكّك التشفير + سلاسل الإصلاح الأصلية = Hopper سعيد!

الاختلافات في API عن frida-ios-dump القديم

تستخدم هذه الأداة واجهات Frida 17.5.2 API الحديثة:

الدعم

إذا وجدت هذه الأداة مفيدة أو تحتاج تحديثات إضافية، ففكر في دعم المشروع الذي يحتاج Boba:

☕ اشترِ لي Boba

الترخيص

رخصة MIT - مجانية لأغراض البحث الأمني والتعليم.

الاعتمادات

  • صُممت للاستخدام مع Frida المُصحَّح لـ Taurine (دراسة حالة قريباً)
  • مستوحاة من أداة frida-ios-dump الأصلية للمطور AloneMonkey
  • تنفيذ حديث لواجهات API الخاصة بـ Frida 17.5.2+

ملاحظة أمنية

هذه الأداة مخصصة لـ:

  • البحث الأمني
  • تحديات CTF
  • الأغراض التعليمية
  • ???
  • الربح
تنزيل الأداة
API القديم (مهمل)API الحديثملاحظات
Module.ensureInitialized()غير مطلوبتتم تهيئة ObjC تلقائياً
Module.findExportByName(null, 'name')Module.findGlobalExportByName('name')صادرات عامة
Process.getModuleByName()Process.findModuleByName()يُرجع null إذا لم يتم العثور عليه
إدخال/إخراج ملفات POSIX يدويnew File(path, 'wb')واجهة File API مدمجة
Memory.writeByteArray()file.write(arrayBuffer)كتابة ثنائية مباشرة