# Fichiers d'emulateurs

## Description

L'utilisation d'un emultateur android laisse des traces dans le contenu de l'appareil. Des fichiers/pipes peuvent être retrouvé pour chaque technologie d'emulation (Genymotion,  Andy, Nox, Qemu).

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2FNmWGsf5LiOEkrSBR20gY%2Fimage.png?alt=media&#x26;token=3b991e3a-e1d7-4bb1-b54d-99388aa81d31" alt=""><figcaption></figcaption></figure>

La partie de code suivant référence par exemple un certain nombre de fichiers laissés par chaque type de technologie d'emulation qui peuvent ainsi être vérifiés un par un afin de s'assurer qu'aucune de ces technologies ne sont utilisées par l'appareil.

## Contournement

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2Fy6KTHJeQUubtc0ojUCHV%2Fimage.png?alt=media&#x26;token=7a7e2c5c-545f-41f2-b95c-3f50edc1e1e2" alt=""><figcaption><p>Tâche avant modification</p></figcaption></figure>

Comme le montre la capture ci-dessus, l'application a détecté la présence des pipes `/dev/goldfish_pipe` et `/dev/qemu_pipe` sur le système.

On va alors aller rechercher la chaîne de caractères "/dev/goldfish\_pipe" dans le code afin de retrouver la partie de code s'occupant de cette vérification.

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2F4m0Tm831ZXpddxCLjIFo%2Fimage.png?alt=media&#x26;token=f4946c0b-7b63-4aea-8e89-478b6c4b6115" alt=""><figcaption><p>figure 1</p></figcaption></figure>

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2FaGyQrRQgQhwXYGg64jsX%2Fimage.png?alt=media&#x26;token=f3a9c31c-2a40-4883-9cdd-6bf1518b93dc" alt=""><figcaption><p>Appel à la fonction getPIPES qui va vérifier si le PIPE existe</p></figcaption></figure>

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2F9jP6Pw4fvMOiGywpsxDs%2Fimage.png?alt=media&#x26;token=0c2a0722-9de2-4b04-8506-662621995113" alt=""><figcaption><p>Booléeen qui va définir si oui ou non les éléments existent</p></figcaption></figure>

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2FhHrjBSyph5hpbPjZW2jj%2Fimage.png?alt=media&#x26;token=c6495c7c-c0f2-4fa1-8fde-f6e0b8ab6531" alt=""><figcaption><p>Si un fichier/pipe existe (booléen =1) alors on va afficher le fichier/pipe en question sinon on renvoye le flag</p></figcaption></figure>

Ce système est donc simple à contourner. Il s'agit alors de décompiler le fichier apk, de retrouver la partie de code qu'on voit ci-dessus à l'aide d'une commande grep par exemple.

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2F8lnCTfaWPZWOLTwnouP1%2Fimage.png?alt=media&#x26;token=dcec3e1e-3c2d-4ef4-a5d8-48c4523d903e" alt=""><figcaption></figcaption></figure>

Puis de tout simplement remplacer les chemins vérifiés par l'application dans le tableau "PIPES" de la figure 1 afin de remplacer les chemins existants sur notre machine par des chemins n'existant pas. L'application constatera alors que les fichiers/pipes recherchés n'existent pas et le booléen "checkFiles4" sera alors à 0 renvoyant ainsi le flag.

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2FLs7oZ5ZqV3sRQBeLc7Sw%2Fimage.png?alt=media&#x26;token=0da176c0-7298-461f-9213-e92f647949a3" alt=""><figcaption><p>après modification</p></figcaption></figure>

La dernière étape est alors de recompiler et réinstaller l'application puis de relancer la vérification.

<figure><img src="https://3571537825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOIXudYEdnnE8JjXBrL0o%2Fuploads%2FOkyOqhkbulXqRccQEJSL%2Fimage.png?alt=media&#x26;token=5f41d63c-058a-4af6-9b0e-6fa8b97b6fd2" alt=""><figcaption><p>Tâche après modification</p></figcaption></figure>
