Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ABrake27 — iOS 27 kernelcache RE: خريطة إرسال SEP، فرق AMFI، سير عمل Ghidra | Kitploit
أدوات/GitHubGitHub/vvirei333/abrake27
أمان iOSتحليل الثغرات الأمنيةالاستغلالاختبار اختراق تطبيقات الجوالالهندسة العكسيةأمن الجوالتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليمتطوير الحمولاتتحليل البرامج الثابتة
7184منذ 21 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
GitHub
vvirei333/abrake27

ABrake27

iOS 27 kernelcache RE: خريطة إرسال SEP، فرق AMFI، سير عمل Ghidra

عرض المستودع
مشاركة

ABrake27

مترجم متقاطع أصلي لنظام Linux + إثبات مفهوم (PoC) لتفعيل وضع المطوّر في AMFI على iOS (arm64/arm64e)

Platform Build Arch

مجموعة أدوات بمستوى بحثي. قارن بين برنامجي iOS 27.0.1 و27.2 الثابتين (firmware)، واعكس هندسة جدول الإرسال IOUserClient الخاص بـ AMFI، وترجم متقاطعًا إثبات مفهوم IOKit يعمل على العتاد مباشرةً من Linux — دون الحاجة إلى Xcode — وفعّل وضع المطوّر على iOS 27.0.1 عبر بروتوكول lockdown القياسي من Apple (تم التحقق من استمراريته على مستوى النواة). الاكتشاف الرئيسي الحالي: تقوية صامتة ضد الفائض في ASTC/DDS داخل ImageIO، يمكن الوصول إليها بنيويًا من مسار فك الترميز العام — سلسلة MediaAnalysis تم تتبعها حتى ASTCReadPlugin::initialize (الجلسات 28–31).


ما هذا

  • مقارنة IPS للبرنامج الثابت — kernelcache وkexts وsandbox والاستحقاقات (entitlements) بين iOS 27.0.1 و27.2 (iPhone 14,5).
  • عكس هندسة جدول إرسال AMFI — تم تعيين كل خانة IOExternalMethodDispatch، وتحديد selector 11 = armSecurityBootMode.
  • إثبات مفهوم مستقل بلغة C — يفتح poc/poc.c كلاً من AppleMobileFileIntegrity/AppleCredentialManager، ويستدعي armSecurityBootMode، ويسجّل النتيجة. بلا تضخّم Foundation/UIKit — C خالص + IOKit.
  • مترجم متقاطع لنظام Linux — يُنتج poc/build_ipa.sh ملف .ipa موقّعًا على CachyOS/Arch باستخدام clang + ld64.lld + ldid. صفر اعتماديات على Apple/Xcode.

كيفية تفعيل وضع المطوّر على iOS 27.0.1 (دون كسر الحماية، ودون شيفرة غير موقّعة)

يمكن تشغيل سلسلة مفتاح وضع المطوّر في iOS بالكامل عبر بروتوكول lockdown القياسي من Apple (com.apple.amfi.lockdown). لا كسر حماية، ولا IPA، ولا تزوير استحقاقات — فقط pymobiledevice3 على Linux.

تم التحقق: بعد السلسلة أدناه، أصبح mounter query-developer-mode-status → true وتم تثبيت DeveloperDiskImage على /System/Developer — ونجا كلاهما من إعادة تشغيل مستقلة (كانت الفحوصات نفسها تعود سابقًا إلى false، لذا فإن الاستمرارية هي الدليل الحقيقي؛ انظر FINDINGS_LOCK.md).

المتطلب المسبق

أزل رمز المرور (الإعدادات → Face ID & Passcode → إيقاف رمز المرور). عند تعيين رمز مرور، يردّ AMFI على action=1/action=2 بـ Device has a passcode set.

الخطوات

# 1) enable → action=1 → REBOOT #1
flatpak-spawn --host python3 -m pymobiledevice3 amfi enable-developer-mode

# 2) after the device boots: post-restart accept → action=2 → REBOOT #2
#    (the CLI has no separate accept command — call the service method directly,
#     e.g. via poc/verify_now2.py)

# 3) reveal the Settings toggle → action=0
flatpak-spawn --host python3 -m pymobiledevice3 amfi reveal-developer-mode

التحقق (على مستوى النواة، مستقل عن خدمة AMFI)

flatpak-spawn --host python3 -m pymobiledevice3 mounter query-developer-mode-status   # → true
flatpak-spawn --host python3 -m pymobiledevice3 mounter list                           # → IsMounted: true, /System/Developer
flatpak-spawn --host python3 -m pymobiledevice3 mounter auto-mount                    # → DeveloperDiskImage mounted successfully

ملخص البروتوكول

الإجراءالمعنىالتأثير
0كشفيُظهر مفتاح وضع المطوّر في الإعدادات
1تفعيليضبط العلامة، ويُعيد تشغيل الجهاز
2قبولتأكيد بعد إعادة التشغيل، ويُعيد التشغيل مرة أخرى

⚠️ يقوم pymobiledevice3 بـاختصار المسار: إذا كانت الحالة بالفعل true، فإن enable-developer-mode يسجّل فقط "Developer mode is already enabled" ولا يرسل شيئًا. عمليتا إعادة التشغيل هما جزء من بروتوكول Apple، وليستا أمرًا عارضًا.


البدء السريع (من Linux إلى iPhone في 4 دقائق)

المتطلبات المسبقة (CachyOS / Arch)

sudo pacman -S clang lld zip          # compiler + Mach-O linker
yay -S ldid                           # entitlement injector (AUR)
# iOS SDK:
mkdir -p poc/SDK
git clone https://github.com/theos/sdks poc/tmp && mv poc/tmp/iPhoneOS*.sdk poc/SDK/iPhoneOS.sdk

البناء

cd poc
IOS_SDK=/path/to/iPhoneOS.sdk ./build_ipa.sh
# Output: EnableAMFIDevMode.ipa

التثبيت على iPhone

# Via ideviceinstaller (libimobiledevice):
ideviceinstaller --install EnableAMFIDevMode.ipa

# Via TrollStore (if jailbroken/CT-bypass device):
# → TrollStore app → "+" → pick EnableAMFIDevMode.ipa

# Via SideStore/AltStore:
# → Add to SideStore → sign with your Apple ID

التشغيل

# On device (SSH / NewTerm):
./EnableAMFIDevMode 1
cat /tmp/amfi_devmode_poc.log
# Then REBOOT to activate Developer Mode

بديل: تشغيل CoreDevice / DVT من Linux (run_dvt.sh)

يوجد مسار ثانٍ خالٍ من IPA: ترجمة الملف التنفيذي المستقل IOKit بشكل متقاطع على Linux ودفعه إلى الجهاز عبر نفق CoreDevice / RSD في iOS 17+، ثم تشغيله باستخدام خدمة التحكم في العمليات DVT (خارج App Sandbox — بدون installd، وبدون IPA موقّع مجانًا).

./run_dvt.sh enable      # build (clang + ld64.lld) → deploy → `dvt launch --stream`

run_dvt.sh يؤتمت السلسلة بأكملها:

  1. يبدأ/يتحقق من usbmuxd، ويفحص الجهاز باستخدام ideviceinfo (libimobiledevice)؛
  2. يُجمّع poc/poc.c تجميعًا متقاطعًا إلى Mach-O بصيغة arm64 مجرّدة (بدون سلسلة أدوات Apple): clang -c → ld64.lld -platform_version ios … -syslibroot … -undefined dynamic_lookup؛ تُقرأ نسخة SDK من ملف binary SDKSettings.plist عبر plistlib؛
  3. يفتح نفق RSD في مساحة المستخدم (pymobiledevice3) ويستدعي dvt launch --stream.

الحالة: التجميع المتقاطع على Linux يعمل (يُنتَج ملف Mach-O حقيقي بصيغة arm64). خطوة النشر على الجهاز لا تزال قيد العمل (WIP) — راجع HANDOFF.md «Сессия 12». لاحظ أيضًا أن مسار IOKit في PoC (مُحدِّد AppleMobileFileIntegrity رقم 11) يتطلب الاستحقاق المقيّد بالمنصة com.apple.private.amfi.developer-mode-control، لذا سيُرفض ملف ثنائي غير موقّع من Apple بواسطة userclient حتى عند تشغيله عبر DVT — والطريقة المدعومة لتمكين وضع المطوّر هي بروتوكول lockdown الموثّق أعلاه.


كيف يعمل

خطوتان نظيفتان لكل شريحة معمارية (لتجنّب أن يبتلع مشغّل clang الخيارين -arch/-platform_version عند التفويض إلى ld64.lld):

  1. clang -c — كائن Mach-O، بدون ربط
  2. ld64.lld — ملف تنفيذي مع -arch arm64 -platform_version ios <min> <sdk> صريحين

يكتشف تلقائيًا clang-20...15 وld64.lld/lld وllvm-lipo وldid. تراجع سلس: arm64e → arm64 إذا كانت سلسلة الأدوات تفتقر إلى دعم ptrauth.


هيكل المستودع

تنزيل الأداة