Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
DFRoot — Outil de root Android pour Samsung Galaxy S25 Ultra (SM-S938B) qui enchaîne DirtyFrag CVE-2026-43284 et CVE-2026-43499 pour obtenir le root automatiquement au démarrage via KernelSU. | Kitploit
Outils/GitHubGitHub/a2333c/dfroot
Sécurité AndroidEscalade de PrivilègesMécanismes de PersistanceExploitationPentesting d'Applications MobilesPost-ExploitationTests d'IntrusionSécurité MobileUtilitaires et FrameworksDéveloppement de Charges Utiles
GitHub
31il y a 4 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
a2333c/dfroot

DFRoot

Outil de root Android pour Samsung Galaxy S25 Ultra (SM-S938B) qui enchaîne DirtyFrag CVE-2026-43284 et CVE-2026-43499 pour obtenir le root automatiquement au démarrage via KernelSU.

Voir le dépôt

DFRoot —— Version adaptée pour SM-S938B (Galaxy S25 Ultra) · Canal rapide + Manuel

Fork de diabl0w/DFRoot, spécialement adapté pour Samsung Galaxy S25 Ultra (SM-S938B / pa3q), interface et sortie d'exécution entièrement en chinois.

Deux chaînes, une seule interface :

MéthodeVulnérabilitéCaractéristiques
Canal rapideDirtyFrag (CVE-2026-43284)Celle du DFRoot amont, quelques secondes à quelques dizaines de secondes
ManuelCVE-2026-43499Probabiliste, échelle à trois tours, jusqu'à une quinzaine de minutes

Par défaut « Auto » : exécute d'abord le canal rapide, et s'il échoue, enchaîne automatiquement sur la méthode manuelle.

En une phrase : obtention automatique du root au démarrage. À chaque démarrage, on tente d'abord le canal rapide pendant quelques secondes ; en cas d'échec, on enchaîne automatiquement sur la chaîne manuelle, avec trois tours de tentatives selon le principe « rapide → stable → patient ».

Une fois le root obtenu, deux commandes cmd connectivity sont également exécutées automatiquement (pour supprimer les publicités de l'« Installateur de packages » Samsung), et les commandes, sorties et codes de retour sont tous consignés dans le journal de l'interface — voir la section 5 « Configuration des publicités de l'installateur ». À partir de la v1.8, ces deux commandes sont écrites comme script de démarrage de KernelSU, et seront exécutées par KernelSU lui-même en root à chaque démarrage, sans avoir à ouvrir l'application ni à passer par une fenêtre d'autorisation.

Ce qui a changé en v1.9

  • Correction de Cannot run program "su": error=2, No such file or directory : la v1.8, pour éviter un redémarrage supplémentaire, avait retiré le --soft-reboot passé à ksud ; or le su de KernelSU est précisément monté sur /system/bin/su par le module noyau à la phase post-fs-data, et le late-load de ksud n'exécute que les phases late-load / post-mount / service / boot-completed (source KernelSU userspace/ksud/src/late_load.rs) —— sans redémarrer le framework, ce point de montage n'apparaîtra jamais lors de ce démarrage, et su -c … dans l'application donnera forcément error=2. Ces deux problèmes ont la même cause racine ;
  • Ajout d'un troisième canal root : le ksud embarqué dans l'application (KsudChannel) —— l'APK embarque une copie supplémentaire de ksud (libksud.so, placé dans jniLibs/arm64-v8a/, installé dans nativeLibraryDir, l'App peut directement l'execve), utilise libksud.so debug su pour ouvrir un shell root, les commandes étant écrites dans son stdin. L'élévation de privilèges passe par l'ioctl(KSU_IOCTL_GRANT_ROOT) du noyau, sans dépendre de /system/bin/su, sans fenêtre d'autorisation, et sans redémarrer le framework système ;
  • Ordre des canaux : helper (juste après l'exécution de la méthode manuelle) → ksud → su. Le journal affiche d'abord une ligne d'auto-vérification * root 通道:helper=…,ksud=可用,su=…, ce qui permet de voir d'un coup d'œil où ça bloque ;
  • Configuration complémentaire passée à 4 fois × 15 secondes (environ 45 secondes) : ksud n'est lancé qu'au moment où le canal rapide vient de retourner un succès, il est normal que les premières tentatives échouent, désormais il réessaiera automatiquement ;
  • Avant d'exécuter su, on ajoute /data/adb/ksu/bin, /debug_ramdisk, /data/adb/magisk, /data/adb/ap/bin au PATH, et SU_PATHS est étendu à 8 entrées (certaines variantes de KernelSU ne placent su que dans ces répertoires).

Ce qui a changé en v1.8

  • Plus de redémarrage supplémentaire après le boot : on ne passe plus --soft-reboot à ksud. Auparavant, ce paramètre faisait redémarrer le framework système une fois après l'installation de ksud —— ce que l'utilisateur voyait était « un redémarrage automatique après le boot » ; pire encore, ce redémarrage interrompait le processus de l'application ainsi que la « configuration des publicités de l'installateur » en cours d'exécution ;
  • La configuration des publicités de l'installateur devient un script de démarrage KernelSU : elle ne dépend plus de l'application qui utilise su au moment du boot (à ce moment-là KernelSU n'est pas encore prêt, et sur appareil réel cela échouait à chaque démarrage, nécessitant d'ouvrir manuellement KernelSU puis l'application pour que ça fonctionne). Désormais les deux mêmes commandes sont écrites dans /data/adb/service.d/dfroot-ads.sh, et KernelSU l'exécutera en root à chaque démarrage —— sans passer par l'application, sans passer par su, sans aucune fenêtre d'autorisation ;
  • En cas d'échec au moment du boot, une nouvelle tentative automatique est effectuée : confiée au service de premier plan qui réessaie toutes les 30 secondes pendant les 5 minutes suivantes, et s'arrête dès qu'une tentative réussit (celle qui réussit installe au passage le script de démarrage) ;
  • Une ligne supplémentaire « 开机脚本:… » dans l'interface, affichant directement le résultat de la dernière exécution du script.

Ce qui a changé en v1.7

  • La méthode « Lente » est renommée « Manuelle », et sa description suit : en cas d'échec de l'auto, tenter manuellement ;
  • Ajout de la « Configuration des publicités de l'installateur » : une fois le root obtenu, exécute automatiquement les deux commandes cmd connectivity, avec commandes, sorties et codes de retour tous consignés dans le journal de l'interface (une exécution réussie produit toujours une sortie) ;
  • Vérification à chaque démarrage et à chaque ouverture de l'App, avec une tentative de rattrapage en cas d'échec ;
  • Les autres comportements restent inchangés (canal rapide + méthode manuelle + automatique au démarrage).

1. Ce que sont les deux chaînes

Canal rapide : DirtyFrag (CVE-2026-43284)

Celle fournie par le DFRoot amont, tout le code se trouve dans app/src/main/jni/ (exp.c + deux segments de shellcode + le module noyau dans dirtyfrag-lkm/), compilé en libexp.so et appelé directement par l'App :

  1. Déchiffrement AES-CBC ESP en place + splice() pour modifier le page cache d'un fichier en lecture seule ;
  2. Écriture du module noyau dans /vendor/lib64/libstagefrighthw.so puis finit_module pour le charger, et passage de SELinux en permissive ;
  3. Hook de libc.so / libc++.so, lancement du ksud embarqué via le domaine de modprobe, late-load de KernelSU.

Rapide (quelques secondes), au prix de laisser une trace « déjà armé pour ce cycle » dans /dev/df, et son chemin d'installation de ksud diffère de celui de la méthode manuelle (voir section 7).

Manuel : CVE-2026-43499

Les trois binaires sont précompilés (inchangés octet par octet) :

FichierEmplacementRôle
libcve43499root.sojniLibs/arm64-v8a/helper, ELF exécutable, execve direct par l'App, pas besoin de Shizuku
cve-2026-43499-app.soassets/payloads/payload, dlopen par le helper puis exécution de la vulnérabilité
ksud-s25u-kdpassets/payloads/KernelSU lui-même (ksud + kernelsu.ko embarqué)
1. helper --run-payload <payload> <helper> <log>   obtention du root (probabiliste)
2. helper -c "cp ksud …"                           dépôt de ksud dans /data/local/tmp
3. helper --late-load                              bind mount /system/bin/logcat,
                                                   puis exec "logcat late-load …" pour installer KernelSU

Critère de succès : présence simultanée de exploit completed et done=1 root=1 dans le journal.

La méthode « Manuelle » de l'interface exécute cette chaîne (la méthode « Auto » l'enchaîne également lorsque le canal rapide échoue).


Télécharger l’outil