
مجموعة أدوات الحصول على صلاحيات الجذر بنقرة واحدة لجهاز vivo iQOO Neo9S Pro (MT6989) تستغل CVE-2026-43499 futex PI UAF عبر ناقل MCAST، مع نصوص برمجية ومستندات تحليلية.
مجموعة root بنقرة واحدة GhostLock المخصصة لـ vivo iQOO Neo9S Pro (V2339FA، MediaTek MT6989). يحتوي هذا المستودع على: تصحيح نقل MCAST، سكربت بنقرة واحدة، وثائق تحليل كاملة؛ المجموعة الكاملة القابلة للتشغيل (مع الملفات الثنائية و KernelSU) متوفرة في Releases.
Device: vivo iQOO Neo9S Pro (V2339FA / PD2339, MT6989) Firmware: PD2339_A_16.2.12.1.W10.V000L1 (Android 16) Kernel: 6.1.145-android14-11-maybe-dirty Vulnerability: CVE-2026-43499 (futex PI requeue UAF) For device owners / security research only. Use on your own device.
setsockopt(SOL_IP, MCAST_JOIN_SOURCE_GROUP, buf, 0x108) كأساس للتسميم، ما يغطي بالكامل rt_mutex_waiter القديم، ويكمل السلسلة كاملة (W1→W2→W3→KernelSU).ghostlock-kit-20260913.zip من Releases وفك ضغطه.cd <解压目录>\ghostlock-kit
powershell -ExecutionPolicy Bypass -File .\scripts\run-at-lockscreen.ps1 -Reboot
[+] Root 成功! تكون العملية قد اكتملت (لا تفتح قفل الهاتف أثناء التشغيل). للتحقق:adb shell su -c id
# uid=0(root) gid=0(root) groups=0(root) context=u:r:ksu:s0
الفشل يؤدي إلى kernel panic وإعادة تشغيل تلقائية، وينتظر السكربت ويعيد المحاولة تلقائيًا (معدل النجاح حوالي 25–30% لكل محاولة؛ وفي توقيت شاشة القفل ينجح تقريبًا من المحاولة الأولى). صلاحية root مؤقتة (KernelSU late-load)، ويلزم إعادة تشغيل السكربت بعد إعادة تشغيل الهاتف.
.
├── scripts/
│ ├── run-at-lockscreen.ps1 # 一键:重启→锁屏等待→推送校验→运行→自动重试(推荐)
│ └── retry-if-needed.ps1 # 通用重试(不强制重启)
├── src/
│ └── ghostlock-mcast.patch # 源码改动(基线 ghostlock-app @ 50d2b72)
├── docs/ # 分析文档(利用报告/transport 分析/waiter 与 PI walk/设备手册/排查记录)
└── LICENSE # Apache-2.0(继承上游)
الملفات الثنائية والمجموعة الكاملة (files/ghostlock، files/ksud، files/offsets.json، KernelSU APK) غير مضمّنة في مستودع git،
يرجى تنزيل ghostlock-kit-20260913.zip من Releases.
| الأصل | الوصف | SHA-256 |
|---|---|---|
ghostlock-kit-20260913.zip | المجموعة الكاملة (سكربتات + ملفات ثنائية + APK + وثائق) | df547f6b2852a0d86582958e049ef5a44599a5a91ce0dace2162fb7d0fcab11d |
الملفات الأساسية داخل المجموعة (MD5):
| الملف | MD5 |
|---|---|
files/ghostlock (برنامج الاستغلال) | e581609ed114d33efa3b8a1958f85637 |
files/ksud (وضع المستخدم الرسمي KernelSU v3.3.0) |
FUTEX_WAIT_REQUEUE_PI، يبقى task->pi_blocked_on معلّقًا مشيرًا إلى rt_mutex_waiter على مكدسه.setsockopt(SOL_IP, MCAST_JOIN_SOURCE_GROUP, buf, 0x108) الدالة do_ip_setsockopt تنفّذ
memset(0x108) + copy_from_user(0x108)، ويغطي نطاق النسخ [S'−0x338, S'−0x230) هذا الـ waiter بالكامل (يقع waiter عند إزاحة المخزن 0x60)؛
وضبط buf[8]=0 يجعل التحقق من العائلة يفشل، فيعود syscall نظيفًا بعد النسخ.sched_setattr → rt_mutex_adjust_prio_chain يقرأ waiter المزوّر → rb_erase بإعادة ربط left-only
يشكّل أساس الكتابة .راجع docs/ للتفاصيل (تشمل سلسلة الأدلة، تحليل التفكيك، ومشاهد الانهيار).
# 基线:ghostlock-app @ 50d2b72(含 PR#127)
git clone https://github.com/YuKongA/ghostlock-app.git
cd ghostlock-app && git checkout 50d2b72
git apply /path/to/src/ghostlock-mcast.patch
make NDK_ROOT=<your-ndk> ghostlock
محتوى التصحيح: MCAST transport (do_mcast_fake_lock_route)، اختيار المسار، منطق observe/البناء المسبق،
GHOSTLOCK_WALK_LOG (تحديد walk من جهة consumer)، نسخ pstore الاحتياطي في سكربت root، GHOSTLOCK_SKIP_VR.
ksud و APK في هذه المجموعة مأخوذان من إصدار v3.3.0 الرسمي، والحقوق محفوظة لمؤلفيهمخصص فقط لمالك الجهاز لإجراء بحث أمني محلي على جهازه الخاص واستخدام root شخصي؛ يُمنع استخدامه على أي جهاز غير مصرّح به أو لأي غرض غير قانوني. قد يؤدي استخدام هذه الأداة إلى عدم استقرار الجهاز أو مخاطر على البيانات، لذا احتفظ بنسخة احتياطية وتحمل العواقب المترتبة.
de059ed8ffd896129a0a4bbe338c946a |
files/offsets.json (إزاحات هذا الطراز) | a2498197161b01bdcc5dffc0614fbfbd |
*(target) := valuecred = init_cred → W3 مسح seccomp (يُتخطى في مسار shell) → سكربت root يحمّل KernelSU متأخرًا.| المشكلة | المعالجة |
|---|
| إعادة تشغيل الهاتف بعد الفشل | طبيعي (حدث احتمالي)؛ بعد إعادة التشغيل لا تفتح القفل، وأعد تشغيل السكربت مباشرة |
| المدير يعرض "غير مثبّت/لا يعمل" | تأكد أولًا من أن su -c id يعمل؛ افتح المدير وحدّث، ولا تُزِل التطبيق أو توقفه قسريًا |
| اختفاء root بعد إعادة التشغيل | طبيعي (late-load غير دائم)؛ أعد تشغيل السكربت |
| الرغبة في استخدام ReSukiSU | غير متاح على هذا الجهاز (يتجمد ويعيد التشغيل فور فتح المدير)، وإن لزم فجهّز إصدارًا متطابقًا |
| بعد تحديث النظام | قد يصبح offsets.json غير صالح، ويلزم إعادة توليده/استيراده |