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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
zenfone9-root — حساب جذر مؤقت (uid 0) على ASUS Zenfone 9 المقفل بواسطة أداة تحميل الإقلاع عبر CVE-2025-21479 + تسريب العنوان الفيزيائي المعتمد على perf. GPLv3. | Kitploit
أدوات/GitHubGitHub/ramenfast/zenfone9-root
أمان أندرويدتصعيد الامتيازاتتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةأمن الجوالأمن الأجهزةالأوراق والأبحاثاستغلال الملفات الثنائية
GitHubramenfast/zenfone9-root

zenfone9-root

منذ 3س 27دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

حساب جذر مؤقت (uid 0) على ASUS Zenfone 9 المقفل بواسطة أداة تحميل الإقلاع عبر CVE-2025-21479 + تسريب العنوان الفيزيائي المعتمد على perf. GPLv3.

عرض المستودع

zenfone9-root — صلاحيات جذر مؤقتة على ASUS Zenfone 9 ذي أداة تحميل الإقلاع المقفلة

كود بحثي وملاحظات للحصول على صلاحيات جذر مؤقتة (uid 0) على ASUS Zenfone 9 (AI2202) الذي لا يمكن فتح أداة تحميل الإقلاع الخاصة به — لأن ASUS أوقفت أداة الفتح الخاصة بها، وأزالت مفتاح فتح OEM من خيارات المطور، وترفض بشكل قاطع fastboot oem unlock / flashing unlock على البرامج الثابتة الحالية.

هذا ليس فتحًا لأداة تحميل الإقلاع ولا يقوم بكتابة أي شيء إلى أي قسم. إنه جذر وقت التشغيل: سلسلة من البدائيات على جانب الجهاز تنتهي بامتلاك العملية المستدعية لبيانات اعتماد الجذر. إعادة التشغيل تمحوه.

تم التحقق على: ASUS Zenfone 9 (AI2202)، Android 14، البنية 34.0304.2004.145، SPL 2024-07-05، النواة 5.10.205-android12-9-00029-g3f12df86bfdb-ab11799032، SM8475 / Adreno 730، أداة تحميل الإقلاع مقفلة.

التفويض / النطاق. كل ما هنا يعمل ضد جهاز يملكه المشغّل، عبر اتصال ADB مُصرّح به. لا يتم مهاجمة أي خادم من البائع، ولا يتم تجاوز أي مفتاح توقيع أو رمز فتح، ولا يُكتب أي شيء إلى أي قسم. الهاتف المستخدم للتطوير هو هاتف احتياطي، تم نسخه احتياطيًا، ويُحفظ دون اتصال. اختبر على أجهزة تملكها وتستطيع تحمل خسارتها.

السلسلة

النتيجة هي uid 0 في سياق SELinux u:r:kernel:s0 (يرث SID الخاص بـ init_cred)، أي غير مقيّد فعليًا. يجب أن يكون SELinux في وضع Permissive لهذه الخطوة — تحت وضع Enforcing تُقتل العملية بدلاً من ذلك، لأن تبديل بيانات الاعتماد يتجاوز خطاف SELinux.

البدء السريع

اضبط ZF9_SERIAL على الرقم التسلسلي لجهازك أولاً (جميع السكربتات تقرأه):

root@kitploit:~
export ZF9_SERIAL=<your-device-serial>
root@kitploit:~
# 0. one-time: build and push the device binaries (needs an Android NDK)
#    see scripts/ for the exact clang invocations used
adb push cheese_pa call_capset /data/local/tmp/

# 1. full cycle: SELinux -> permissive, patch, run a command as root, restore everything
scripts/root-now.sh id
scripts/root-now.sh sh        # root shell

يقوم السكربت دائمًا باستعادة نص النواة الأصلي وحالة SELinux (محمي بـ trap)، ويتحقق من الاستعادة بالقراءة العكسية.

الحالة الحالية — بصراحة

  • الجذر مُثبت. إيصال التحقق: uid=0(root) gid=0(root) context=u:r:kernel:s0، capset(NULL,NULL) -> 0.
  • إعادة تطبيقه ليست موثوقة بالكامل بعد. البدائية الأساسية هي سباق (تحديث TTBR0 مقابل الأمر الذي يستخدمه): خسارته تسبب خطأ صفحة GPU، ثم يقوم KGSL بخنق ذلك السياق (gpu fault threshold exceeded 3 faults in 3000 msecs)، وبعدها تفشل الأوامر الإضافية بـ EPERM. نجاح الترقيع الملاحظ يتراوح بين 13/13 و2/13 كلمة مزدوجة عبر التشغيلات.
  • أبقِ GPU مشغولاً. البدائية تتسابق مع تبديل سياق GPU: نفس ترقيع الـ 13 كلمة مزدوجة تحقق 0-2/13 كلمة مزدوجة مع GPU خامل و11-13/13 مع حمل screenrecord قيد التشغيل. تبدأ السكربتات حملها الخاص لكل عملية (القراءات تتسابق أيضًا)، لكن لا تشغّل أبدًا الأجزاء الداخلية لهذه الأدوات عارية.
  • دالة مرقّعة جزئيًا خطيرة (مستدعي capset يمكنه تنفيذ بيانات غير صالحة). تكتب السكربتات تعليمة الدخول أخيرًا، وتتحقق من كل كلمة مزدوجة، وتستعيد عند الفشل — لكن إذا تدهورت إحدى التشغيلات، أعد التشغيل قبل إعادة المحاولة.
  • لا استمرارية، ولا فتح لأداة تحميل الإقلاع. تبقى الرومات المخصصة مستحيلة بدون ASUS.

قواعد السلامة التي تستحق الحفاظ عليها: اقرأ قبل كل كتابة، استعد دائمًا ما ترقّعه، لا تترك أبدًا إدخال جدول صفحات محقونًا نشطًا، لا تلمس الذاكرة الفيزيائية الآمنة/TZ (فهي قاتلة)، وأعد التشغيل لاستعادة حالة متدهورة. يحتوي ROADMAP.md على القائمة الكاملة للمزالق مع الأدلة وراء كل منها.

تخطيط المستودع

root@kitploit:~
ROADMAP.md      durable handoff: verified constants, procedure, gotchas, open paths
STATUS.md       current state + verification receipts
src/            pa_leak.{c,h} · cheese.c · cheese_pa.c (workhorse: PROBE/POKE/SELFTEST/ROOT modes)
                call_capset.c · host_kallsyms.c (offline symbol resolver)
scripts/        root-now.sh · patch-dwords.sh · demo-root.sh · verify-backup.sh
tools/          btf_offsets.py

صور البرامج الثابتة وحزم OTA وسجلات الجهاز لا يتم إيداعها عمدًا (انظر .gitignore).

الشكر والتقدير

  • zhuowei/cheese — إثبات مفهوم CVE-2025-21479 الذي يبني عليه هذا المنفذ، بالإضافة إلى محلل kallsyms الخاص به.
  • Qingizi7/cve-2025-21479_iqooneo8 — سلسلة جذر وقت التشغيل على نفس SoC (SM8475)، والتي أثبتت الجدوى.
  • Project Zero: Attacking the Qualcomm Adreno GPU — البحث الأصلي عن KGSL/SMMU وتعريفات ioctl.
  • نشرة أمان Qualcomm ليونيو 2025 — إصلاح microcode الذي يسبق هذا الجهاز تاريخه بحوالي 11 شهرًا (أنهت ASUS الدعم، لذا لن يصل أبدًا).

الترخيص

GPLv3 — انظر LICENSE.

تنزيل الأداة
المرحلةما تفعلهالموقع
1CVE-2025-21479 (Adreno KGSL): يتم تصنيف حزمة SDS خطأً كحزمة ringbuffer، مما يسمح لمساحة المستخدم بإصدار CP_SMMU_TABLE_UPDATE وتوجيه TTBR0 الخاص بـ GPU إلى عنوان فيزيائي يختاره المهاجمsrc/cheese.c
2تسريب العنوان الفيزيائي: perf_event_paranoid = -1 على هذه البنية، لذا فإن نقطة مراقبة عتادية على صفحة نملكها تُرجع PERF_SAMPLE_PHYS_ADDR — العنوان الفيزيائي لتلك الصفحة. يستبدل تسريب pagemap الذي اعتمد عليه المصدر الأصلي (PFNs مُصفّرة هنا)src/pa_leak.{c,h}
3قراءة/كتابة فيزيائية عشوائية: بناء جدول الصفحات المزيف عند عنوان فيزيائي معروف (من المرحلة 2)، فلا يانصيب رشّ ولا تجوال عشوائيsrc/cheese_pa.c
4الجذر: حل رموز النواة دون اتصال من صورة البرامج الثابتة، اشتقاق إزاحة KASLR على الجهاز، ترقيع __do_sys_capset بدالة commit_creds(&init_cred)، استدعاء capset()src/call_capset.c, scripts/