🧊Props dangereux

Description

Les props sont des propriétés enregistrées dans les fichiers .prop présents dans la partition "boot" des systèmes android. Dans ces fichiers, il existe un fichier nommé default.prop contenant deux propriétés qui sont "ro.secure" et "ro.debuggable". ces deux propriétés sont parfois utilisées dans le cadre de la détection de rootage car ils sont changés lorsqu'un appareil est rooté. En effet, la propriété "ro.secure" permet de donner ou non les permissions et "ro.debuggable" permet le deboggage. Un appareil rooté aura ses propriétés configurés de cette manière.

  • ro.secure=0

  • ro.debuggable=1

Contournement

Ici, l'application détecte que mon appareil est rooté car la propriété ro.debuggable=1. On va alors faire du reverse engineering afin de contourner cette validation.

D'abord, on va rechercher comment est effectué la validation dans le code smali en recherchant par mot clé "ro.debuggable".

Ici, on voit que la condition suivante est utilisée:

SI ro.debuggable (lignes 2005 à 2007) ET ro.secure (lignes 2012 à 2014) NE sont PAS (if-nez v1 ligne 2026) égales à 1 (pour ro.debuggable) et 0 (pour ro.secure) ALORS on retourne le resultat négatif et SINON on retrourne le flag.

Afin de contourner cette condition on va alors simplement l'inverser en remplacant "if-nez" en "if-eqz" qui va dire donc à l'inverse que si ro.debuggable=1 et que ro.secure=0 alors on revois la réponse négative et sinon on renvoie le flag.

Une fois cela fait, on va simplement recompiler et auto-signer l'application puis la réinstaller sur le système.

Dernière mise à jour