Comment l'application Android SuperUser détecte-t-elle qu'une application demande une racine?
Je suis en train d'écrire une application qui va utiliser su
pour exécuter certaines commandes dans le noyau linux. Je me demandais comment SuperUser chiffres que l'application demande pour les privilèges de root ? Aussi, existe-il des moyens connus (par le biais de l'obfuscation) dans lequel cette vérification peut être contourné ?
En d'autres termes:
Comment Android/(Superutilisateur) savent qu'une application nécessite les privilèges de root, malgré le fait qu'il n'y a pas les autorisations demandées explicitement dans le fichier manifeste android.
Je vous pose cette question à partir d'un point de vue sécurité. Je veux savoir les détails de la façon dont cela fonctionne, afin d'être sûr qu'une application malveillante ne peut pas contourner Superutilisateur.
source d'informationauteur asudhak
Vous devez vous connecter pour publier un commentaire.
Il y a deux parties pour le super-utilisateur du système - la superuser binaire (su sur le terminal) et le SuperUser.apk (application Android pour gérer des applications à l'aide de su). En regardant le code source de la su binairelorsque vous demandez su accès par
il publie une intention par le biais de l'android gestionnaire de messagerie, qu'une demande a demandé pour l'accès super-utilisateur.
L'application gestionnaire est à l'écoute de cette intention et demande à l'utilisateur de gérer la demande (autoriser/refuser).
Lorsque vous exécutez cette:
Vous essayez d'exécuter la commande "su" que seule une application avec des super-utilisateur, les autorisations peuvent faire! Donc, chaque fois qu'Android détecte que vous essayez d'exécuter "su" Il va se que l'Application aura besoin de super-utilisateur des autorisations.
Aussi, Android a une zone réservée qui seul système Android peuvent accéder. Si votre application est en train d'essayer d'accéder à quelque chose là, Android va comprendre que super-utilisateur est nécessaire.
Par exemple, disons que vous essayez de modifier le fichier host ou modifier certaines configurations de réseau comme le DHCP. Ou vous essayez d'accéder aux fichiers à partir du système de zone par exemple
/data
Android va vérifier si l'application dispose d'un super-utilisateur, les autorisations, et alors seulement à accorder l'accès à de telles choses.Sur les logiciels malveillants, chaque fois qu'une application a besoin de super-utilisateur d'accès, le système va demander à l'utilisateur d'accorder ou de refuser les autorisations de super-utilisateur de l'application. Alors seulement, l'application peut obtenir l'accès root. Donc, c'est à l'utilisateur de décider, de choisir d'accepter ou de refuser l'accès à la racine de n'importe quelle application. (Système invite l'utilisateur chaque fois une application tente d'accéder à quelque chose qui a besoin d'un accès root, SAUF vous raconter système pour mémoriser votre choix de l'acceptation ou du refus d'une application en particulier.)
PS: Vous pouvez envisager de vérifier site web pour l'application Superuser.
En fait c'est assez simple. Vanille Android n'a même pas de
su
ousuperuser
. Lorsque vous la racine de l'appareil d'exécuter un shell en tant que root. Ensuite, vous installez lesu
binaire etsuperuser.apk
. Après l'installation, vous définissez la coque arrière de il est normal que les autorisations. Tous ces racines-seules les applications peuvent désormais appelersu
pour demander l'accès à la racine.Quand
su
est exécuté, il appellesuperuser.apk
avec un message vous demandant si vous voulez élever ses privilèges. Lesu
binaire etsuperuser.apk
sont protégés par Android normale du bac à sable. Notez qu'une fois que vous donnez une application privilèges root, il est libre de faire ce qu'il veut, y compris l'écrasement de la ligue avec sa propre version.