Aller au contenu

Le root, comment ça fonctionne ?


Recommended Posts

Hello

 

je ne cherche pas un tuto sur comment rooter mon phone ou un phone en particulier,

 

je me demandais juste si quelqu'un savait 'techniquement' comment ça marche 

 

c'est un hack je suppose, mais on hacke quoi, comment, est ce que quelqu'un y comprends un peu quelque chose ?

 

( parce que je trouve ça quand même surprenant qu'un tel hack se répands sur tous les forums, et que tout le monde ( moi y compris ^^ ) s'en sert, sans savoir ce que ça fait ( enfin, on sait quelle est la conséquence, mais on sait pas comment ça marche )

 

Merci !

 

( et à ceux qui me répondraient que c'est pas bien d'utiliser le mot 'hack', je répondrais que si c'est un hack, et qu'on a pas le droit d'en parler, alors tous les tutos sur le root sont à supprimer ;), mais j'espère qu'on pourra parler tranquillement du sujet )

Lien vers le commentaire
Partager sur d’autres sites

Rooter un terminal Android, c'est obtenir par un moyen quelconque l'élévation des droits d'un processus "normal" vers un processus ayant les droits "root". 

 

Le principe est d'exploiter une faille de sécurité (un bug, quoi). Dans tout système d'exploitation (Unix, Windows....), il est nécessaire de donner de façon contrôlée aux processus "normaux" accès à des fonctions qui nécessitent les droits "root".

Toute la subtilité est dans le "de façon contrôlée" c'est à dire pour faire la fonction demandée (par exemple : ne serait-ce que pour faire un shutdown ou redémarrer) et rien d'autre.

 

Une grande partie de ces failles résident dans une validation incorrecte de l'environnement qui a accès à ces droits root, ce qui permet de faire "dévier" vers du code arbitraire contrôlé par l'appelant. Ce code en profite pour "ouvrir une porte" vers "le monde root" qui peut être utilisée après.

 

Les grandes familles de failles sont :

- la validation incomplète des arguments passés à une fonction : on lui passe des arguments farfelus, elle ne le détecte pas et son comportement en est affecté, on peut même lui faire faire un peu ce qu'on veut

- les débordements de pile (contexte d'appel à une fonction et variables locales) qui écrasent des données et permettent de modifier des variables ou le déroulement du retour de la fonction

- les débordements de tampon mémoire (idem pour les variables ou d'autres tampons mémoire)

- les "race conditions" : portion de code qu'on peut détourner de sa fonction grâce à un événement extérieur

- ... j'en oublie sans doute, mais ce sont les principaux

Lien vers le commentaire
Partager sur d’autres sites

Et en complément, "rooter" signifie (en utilisant comme dit ci dessus des failles ou d'autres méthodes) installer dans la répertoire système "/system/xbin/"  les binaires "su" et "daemonsu" ce qui s’occuperont de donner de façon controlée des droits superutilisateur (root) aux applications qui en font la demande.

 

Parmi les autres méthodes de root, on peut citer, sur les appareils qui le permettent, et avec un bootloader déverrouillé celle consistant à booter dynamiquement l'appareil sur une image système permettant de passer outres les contrôles d’accès et effectuer l'installation des binaires de cette façon avant de redémarrer en mode normal. Dans ce cas il n'y pas vraiment d'exploitation de faille, mais par contre ça nécessite le déverrouillage du bootloader qui, suivant les constructeurs peut faire sauter la garantie.

Lien vers le commentaire
Partager sur d’autres sites

Le root est à Linux ce que l'Administrateur est à Windows, un utilisateur du système qui a des droits supérieurs.

 

Les ordinateurs vendus avec Windows sont préinstallés avec la possibilité pour le client d'en être l'Administrateur, et de faire ce qu'il veut dessus.

Par contre, les smartphones vendus avec Android (basé sur Linux) sont préinstallés avec l'impossibilité (sauf méthodes présentées ci-dessus) pour le client d'en être root, et ne peut donc pas faire ce qu'il veut dessus.

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ces réponses instructives,

Et donc, ça nécessite la maîtrise de quoi, linux, un ou

plusieurs langages de programmation...??

Comment en arrive-t-on à la détection de la faille, et à son exploitation ?

Ça a l'air si complexe !

Lien vers le commentaire
Partager sur d’autres sites

Pour développer un "exploit" et en faire un programme de rootage ? oui, il faut une connaissance intime de Linux et des mécanismes internes de son noyau. Et ça devient de plus en plus compliqué. Si on compare ce que fait Towelroot par rapport à des exploits d'il y a un an ou deux comme "Root by restore", le niveau de compétence système requis est monté de plusieurs niveaux de magnitude :)

 

Il faut aussi être introduit dans des cercles de hackers où ce genre d'info sur des failles circule.

Et avoir beaucoup de temps libre :)

 

Ca a l'air complexe ? ça l'est !

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...