# Pasteboard

## Méthode  1 : Objection

On peut utiliser objection pour récupérer le contenu du pasteboard :&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2FJSeeVVZ6v1M6595vAhSd%2Fimage.png?alt=media&#x26;token=1e87c2ed-bbc4-43b3-b238-820990601c8c" alt=""><figcaption></figcaption></figure>

Voilà on a réussi à obtenir le contenu du pasteboard.

## Méthode 2 : Frida et Script

Pour réussir ce challenge à l'aide de frida, la première chose à faire est de déterminer la classe responsable du Pasteboard en Objective C ou en Swift.

Voici la classe :&#x20;

{% embed url="<https://developer.apple.com/documentation/uikit/uipasteboard?language=objc#1654138>" %}

Donc on trace à l'aide de frida-trace la classe UIPasteboard :&#x20;

```bash
frida-trace -U -m "*[UIPasteboard *]" DVIA-v2
```

#### Résultat :&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2FOhbiWVNLZBYwGgB4Api5%2Fimage.png?alt=media&#x26;token=67dc6604-07a7-4862-a4d6-ea5d6db6d673" alt=""><figcaption></figcaption></figure>

Plusieurs méthode sont utilisé mais laquelle choisir. En regardant de nouveau la doc et la maniere dont les développeurs utilise la classe on déduit que la méthode qui nous intéresse est generalPasteboard :&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2F7QmINfkiMMcOQ9AaAe8k%2Fimage.png?alt=media&#x26;token=46023ba7-c398-42e4-bd3e-019f10f1991d" alt=""><figcaption></figcaption></figure>

{% embed url="<https://stackoverflow.com/questions/30392257/app-specific-uipasteboard>" %}

On trace de nouveau :&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2Ft0vZaHLTQnIbYdOM8kuv%2Fimage.png?alt=media&#x26;token=f3f9e142-1754-4e7a-81e1-9cace81893a3" alt=""><figcaption></figcaption></figure>

On sait que la methode generalPasteboard renvoie un objet ayant les méthodes suivantes : hasStrings() , string() ....... (cf.doc) :&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2FCDrmmBOAopR8Hew4XMky%2Fimage.png?alt=media&#x26;token=cc770ada-1d40-428e-86c6-0ce14d7d0620" alt=""><figcaption></figcaption></figure>

On va donc modifier le script généré par frida\_trace et se situant dans le dossier \_\_handler\_\_/UIPasteboard/generalPastboard.js  pour afficher le contenu :&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2FhANlnS9HP4qSBBKkX22c%2Fimage.png?alt=media&#x26;token=ea08367f-f226-412d-81cb-bd8badd62d49" alt=""><figcaption></figcaption></figure>

#### Résultat :&#x20;

<figure><img src="https://1236449586-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnLNcn403FNHCLyLwYmTO%2Fuploads%2Fdtg8D6IwJffw0mSdAbN2%2Fimage.png?alt=media&#x26;token=55a93781-ef4b-409f-b5ff-8fe3d13c98ad" alt=""><figcaption></figcaption></figure>
