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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DFRoot — أداة root لنظام Android لهاتف Samsung Galaxy S25 Ultra (SM-S938B) تقوم بتسلسل DirtyFrag CVE-2026-43284 وCVE-2026-43499 للحصول على صلاحيات root تلقائيًا عند الإقلاع عبر KernelSU. | Kitploit
أدوات/GitHubGitHub/a2333c/dfroot
أمان أندرويدتصعيد الامتيازاتآليات الاستمراريةالاستغلالاختبار اختراق تطبيقات الجوالما بعد الاستغلالاختبار الاختراقأمن الجوالالأدوات والمكوناتتطوير الحمولات
GitHub
31منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

DFRoot

أداة root لنظام Android لهاتف Samsung Galaxy S25 Ultra (SM-S938B) تقوم بتسلسل DirtyFrag CVE-2026-43284 وCVE-2026-43499 للحصول على صلاحيات root تلقائيًا عند الإقلاع عبر KernelSU.

عرض المستودع

DFRoot —— نسخة معدّلة لـ SM-S938B (Galaxy S25 Ultra) · المسار السريع + اليدوي

fork لـ diabl0w/DFRoot، معدّ خصيصًا لـ Samsung Galaxy S25 Ultra (SM-S938B / pa3q)، الواجهة ومخرجات التشغيل بالكامل بالصينية.

مسارَان، واجهة واحدة:

الطريقةالثغرةالميزة
المسار السريعDirtyFrag (CVE-2026-43284)مسار DFRoot الأصلي، من ثوانٍ إلى عشرات الثواني
اليدويCVE-2026-43499احتمالي، ثلاث مراحل متدرجة، حتى عشرات الدقائق

الافتراضي «تلقائي»: يشغّل المسار السريع أولًا، وإن لم ينجح ينتقل تلقائيًا إلى الطريقة اليدوية.

باختصار: الحصول على root تلقائيًا عند الإقلاع. في كل إقلاع يُجرَّب المسار السريع لثوانٍ؛ وإن لم ينجح، يُنتقل تلقائيًا إلى المسار اليدوي، مع إعادة المحاولة على ثلاث مراحل وفق «سريع → ثابت → صبور».

بعد الحصول على root يُشغَّل تلقائيًا أمرا cmd connectivity (لإزالة إعلانات «مثبّت الحزم» من سامسونج)، وتُطبع الأوامر والمخرجات ورموز الخروج في سجل الواجهة — انظر القسم الخامس «إعدادات إعلانات المثبّت». بدءًا من v1.8 يُكتب هذان الأمران كـ سكربت إقلاع لـ KernelSU، وفي كل إقلاع لاحق ينفّذه KernelSU نفسه بصلاحيات root دون فتح التطبيق ودون نافذة تفويض.

ما الذي تغيّر في v1.9

  • إصلاح Cannot run program "su": error=2, No such file or directory: في v1.8، ولتجنّب إعادة تشغيل إضافية، أُزيل تمرير --soft-reboot إلى ksud؛ لكن su في KernelSU يُثبَّت على /system/bin/su بواسطة وحدة النواة في مرحلة post-fs-data فقط، و late-load في ksud يشغّل فقط المراحل late-load / post-mount / service / boot-completed (مصدر KernelSU userspace/ksud/src/late_load.rs) —— بدون إعادة تشغيل الإطار، لن تظهر نقطة التثبيت هذه في دورة الإقلاع الحالية أبدًا، وسيفشل su -c … في التطبيق حتمًا بـ error=2. المشكلتان لهما السبب الجذري نفسه؛
  • إضافة مسار root ثالث: ksud المضمّن في التطبيق (KsudChannel) —— يحتوي APK على نسخة إضافية من ksud (libksud.so، موضوعة في jniLibs/arm64-v8a/، تُثبَّت في nativeLibraryDir، ويمكن للتطبيق تنفيذها مباشرة عبر execve)، لفتح root shell عبر libksud.so debug su، وتُكتب الأوامر في stdin الخاص بها. يتم رفع الصلاحيات عبر ioctl(KSU_IOCTL_GRANT_ROOT) في النواة، دون الاعتماد على /system/bin/su، ودون نافذة تفويض، ودون إعادة تشغيل إطار النظام؛
  • ترتيب المسارات: helper (عندما تكون الطريقة اليدوية قد انتهت للتو) → ksud → su. يُطبع في السجل أولًا سطر فحص ذاتي * root 通道:helper=…,ksud=可用,su=…، ليظهر مكان التعطّل بنظرة واحدة؛
  • إعادة محاولة الإعدادات أصبحت 4 مرات × 15 ثانية (نحو 45 ثانية): في اللحظة التي ينجح فيها المسار السريع للتو يكون ksud قد بدأ للتو، وفشل المحاولات الأولى أمر طبيعي، والآن يُعاد المحاولة تلقائيًا؛
  • قبل تشغيل su تُضاف /data/adb/ksu/bin و /debug_ramdisk و /data/adb/magisk و /data/adb/ap/bin إلى PATH، ووُسِّعت SU_PATHS إلى 8 مسارات (بعض إصدارات KernelSU تضع su في هذه المجلدات فقط).

ما الذي تغيّر في v1.8

  • لم تعد هناك إعادة تشغيل إضافية بعد الإقلاع: لم يعد يُمرَّر --soft-reboot إلى ksud. سابقًا كان هذا المعامل يجعل ksud يعيد تشغيل إطار النظام بعد التثبيت —— ما يراه المستخدم هو «إعادة تشغيل ذاتية بعد الإقلاع»؛ والأسوأ أن إعادة التشغيل هذه تقطع عملية التطبيق مع «إعدادات إعلانات المثبّت» التي كانت تعمل؛
  • تحويل إعدادات إعلانات المثبّت إلى سكربت إقلاع لـ KernelSU: لم يعد يعتمد على التطبيق لتشغيل su في لحظة الإقلاع (حينها لا يكون KernelSU جاهزًا بعد، وكان يفشل في كل إقلاع على الأجهزة الفعلية، ويستلزم فتح KernelSU يدويًا ثم فتح التطبيق). الآن يُكتب الأمران نفسهما في /data/adb/service.d/dfroot-ads.sh، وينفّذه KernelSU بصلاحيات root في كل إقلاع —— دون المرور بالتطبيق، ودون المرور بـ su، ودون أي نافذة تفويض؛
  • إعادة محاولة تلقائية إذا فشلت المحاولة الأولى عند الإقلاع: تُوكَل إلى خدمة أمامية تعيد المحاولة كل 30 ثانية خلال الدقائق الخمس التالية، وتتوقف عند أول نجاح (وتثبّت سكربت الإقلاع في المحاولة الناجحة)؛
  • إضافة سطر «开机脚本:…» في الواجهة، يعرض مباشرة نتيجة تنفيذ السكربت الأخير.

ما الذي تغيّر في v1.7

  • تغيير اسم «慢速» في الطرق إلى «اليدوي»، مع تعديل الوصف تبعًا: يُجرَّب يدويًا إذا لم ينجح التلقائي؛
  • إضافة «إعدادات إعلانات المثبّت»: بعد الحصول على root يُشغَّل أمرا cmd connectivity تلقائيًا، وتُطبع الأوامر والمخرجات ورموز الخروج كاملة في سجل الواجهة (التنفيذ الناجح له مخرجات دائمًا)؛
  • يُفحَص الأمر في كل إقلاع وكل مرة يُفتح فيها التطبيق، ويُعاد التنفيذ إن لم ينجح؛
  • بقية السلوكيات دون تغيير (المسار السريع + الطريقة اليدوية + الإقلاع التلقائي).

أولًا: ما هما المسارَان

المسار السريع: DirtyFrag (CVE-2026-43284)

المسار المضمّن في DFRoot الأصلي، وكل شيفرته في app/src/main/jni/ (exp.c + مقطعتا shellcode + وحدة النواة في dirtyfrag-lkm/)، تُترجَم إلى libexp.so ويستدعيها التطبيق مباشرة:

  1. فك تشفير AES-CBC ESP في المكان + تعديل page cache لملف للقراءة فقط عبر splice()؛
  2. كتابة وحدة النواة في /vendor/lib64/libstagefrighthw.so ثم تحميلها بـ finit_module، وضبط SELinux على permissive؛
  3. ربط libc.so / libc++.so، واستغلال نطاق modprobe لتشغيل ksud المضمّن، و late-load لـ KernelSU.

سريع (ثوانٍ)، والثمن أنه يترك في /dev/df أثر «تم التحصين في هذه الدورة»، كما أن مسار تثبيت ksud فيه يختلف عن المسار اليدوي (انظر القسم السابع).

اليدوي: CVE-2026-43499

الملفات الثنائية الثلاثة مترجَمة مسبقًا (دون أي تعديل بايت واحد):

الملفالموقعالوظيفة
libcve43499root.sojniLibs/arm64-v8a/helper، ملف ELF قابل للتنفيذ، ينفّذه التطبيق مباشرة عبر execve، لا يحتاج Shizuku
cve-2026-43499-app.soassets/payloads/payload، يُحمَّل بـ dlopen من helper ثم ينفّذ الثغرة
ksud-s25u-kdpassets/payloads/KernelSU نفسه (ksud + kernelsu.ko مضمّن)
1. helper --run-payload <payload> <helper> <log>   الحصول على root (احتمالي)
2. helper -c "cp ksud …"                           إنزال ksud إلى /data/local/tmp
3. helper --late-load                              bind mount لـ /system/bin/logcat،
                                                   ثم exec "logcat late-load …" لتثبيت KernelSU

معيار النجاح: ظهور exploit completed و done=1 root=1 معًا في السجل.

الطريقة «اليدوي» في الواجهة تشغّل هذا المسار (والطريقة «التلقائي» تنتقل إليه أيضًا إذا لم ينجح المسار السريع).


ثانيًا: كيف تتسلسل الوضعية التلقائية (v1.5 أضاف التسلسل، v1.6 أصلح الإقلاع التلقائي، v1.7 أضاف إعدادات إعلانات المثبّت، v1.8 أصلح إعادة تشغيل الإقلاع وإعدادات الإعلانات، v1.9 أصلح «su غير موجود»)

الضغط اليدوي على الزر (في الواجهة)
   └─ يعمل في العملية الحالية: الطريقة «تلقائي» = المسار السريع → اليدوي؛ الطريقة «يدوي» = اليدوي مباشرة

الإقلاع التلقائي (BootReceiver، يُنفَّذ مع كل من البثّين)
   │
   ├─ هل تم الحصول على root في هذه الدورة (بيانات اعتماد مثبّتة، أو root آخر لا يزال موجودًا)؟
   │      ├─ إعدادات إعلانات المثبّت لم تُنفَّذ بعد → تُنفَّذ مرة واحدة، انتهى
   │      └─ نُفِّذت سابقًا → تُتخطّى
   ├─ هل الخدمة الأمامية تعمل / الدورة السابقة لم تنتهِ؟ → تُتخطّى
   │
   ├─ الخطوة 1 · المسار السريع DirtyFrag (من ثوانٍ إلى عشرات الثواني، يعمل مباشرة داخل البث)
   │      ├─ نجاح → الخطوة 3
   │      ├─ فشل دون ترك أثر (/dev/df غير موجود) → المتابعة إلى الخطوة 2
   │      └─ فشل مع تحصين مسبق (/dev/df موجود) → التوقف، مع تلميح لإعادة تشغيل الهاتف
   │
   ├─ الخطوة 2 · الطريقة اليدوية CVE-2026-43499 (ثلاث مراحل متدرجة، تُوكَل إلى الخدمة الأمامية)
   │      ├─ نجاح → الخطوة 3
   │      └─ فشل المراحل الثلاث → لا مزيد من المحاولات في هذه الدورة، انتظار الإقلاع التالي
   │
   └─ الخطوة 3 · إعدادات إعلانات المثبّت (أمرا cmd connectivity، انظر القسم الخامس)
          ├─ نجاح → تُكتب كسكربت إقلاع لـ KernelSU (/data/adb/service.d/)، ويُنفَّذ تلقائيًا في كل إقلاع لاحق
          └─ فشل (لم يُفتح القفل بعد / KernelSU ليس جاهزًا بعد) → الخدمة الأمامية تعيد المحاولة كل 30 ثانية، بحد أقصى 5 دقائق

بث «الإقلاع (دون فتح القفل)» يشغّل المسار السريع فقط: المسار اليدوي يتطلب إنزال ksud إلى /data/local/tmp، وهو تخزين مشفّر ببيانات الاعتماد، ولا يمكن الكتابة فيه قبل فتح القفل، فتشغيله بلا جدوى. لذلك ينتظر المسار اليدوي بث «اكتمال الإقلاع» (بعد فتح المستخدم للقفل).

لماذا تغيّر الإقلاع التلقائي ليعمل داخل البث (إصلاح v1.6)

تنزيل الأداة