# 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

<figure><img src="/files/Mvz1fGIviiNDDd0879Bb" alt=""><figcaption><p>Tâche avant modification</p></figcaption></figure>

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".

<figure><img src="/files/Cp0KdTIqr99ZgxFaJJt6" alt=""><figcaption><p>Code permettant de faire la validation</p></figcaption></figure>

<figure><img src="/files/29djNCr5LqVf4EGQjf7O" alt=""><figcaption></figcaption></figure>

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.

<figure><img src="/files/lhEAL7K5GkiRUsp6lWYJ" alt=""><figcaption><p>Résultat après modification</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://blog.s1rn3tz.ovh/pentest-mobile/android/bypass/contournement-des-detections-de-rootage/props-dangereux.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
