# Verwendung des integrierten Frida

FIRERPA hat die neueste Version von Frida integriert, sodass Sie den frida-server nicht selbst starten müssen. Unser integriertes Frida verfügt bereits über verschiedene Open-Source-Versteck-Patches sowie zusätzliche, von uns hinzugefügte Versteckfunktionen, sodass Sie sich keine Sorgen über die Erkennung von Frida machen müssen. Wenn unser integriertes Frida erkannt wird, bedeutet das, dass fast alle frida-server, die Sie herunterladen können, ebenfalls erkannt werden. Sie können es also bedenkenlos verwenden und müssen sich nicht um diese Kleinigkeiten kümmern.

```{hint}
Ab Version 7.18 von FIRERPA erfordert das integrierte FRIDA einen Token-Parameter für die Verbindung. Die Client-Bibliothek hat dies natürlich bereits für Sie erledigt. Wenn Sie eine Version vor 7.18 verwenden, lesen Sie bitte die [Dokumentation für ältere Versionen](https://github.com/firerpa/lamda/tree/5.0#连接内置的-frida) für die Verwendungsmethode.
```

```{attention}
Ab Version 9.0 erfordert das von uns verwendete integrierte Frida 17.x, dass Sie die frida-java-bridge selbst in Ihr Skript packen, andernfalls treten Fehler wie "Java not defined" auf. Diese Änderung ist eine offizielle Änderung von Frida. Gemäß den offiziellen Änderungshinweisen müssen Sie ein neues Node.js-Projekt erstellen und die Java Bridge einbinden. Für Details verweisen wir auf https://github.com/oleavr/frida-agent-example oder verwenden Sie unser bereitgestelltes `tools/frida_script_generate.py`, um Ihre ursprünglichen JS-Skripte neu zu verpacken.
```

## Verwendung über Code

Mit der FIRERPA-Client-API können Sie einfach `d.frida` wie unten gezeigt verwenden, um eine Instanz zu erhalten, die mit dem frida-server verbunden ist. Sie müssen die Verbindung nicht selbst mit der Frida-Bibliothek herstellen.

```python
conn = d.frida
conn.enumerate_processes()
```

Wenn Sie die zugrunde liegende Implementierung verstehen möchten, können Sie sich natürlich auch den folgenden Code ansehen.

```python
# Dynamischen Token abrufen
token = d._get_session_token()

manager = frida.get_device_manager()
conn = manager.add_remote_device("192.168.0.2:65000", token=token)
conn.enumerate_processes()
```

Der Rest hängt davon ab, wie Sie es verwenden. Sie haben jetzt erfolgreich eine Instanz erhalten.

## Verwendung über die Befehlszeile

Die Verwendung über die Befehlszeile kann etwas komplizierter sein, da wir auch die Sicherheit Ihres Geräts gewährleisten müssen. Wir möchten Sie auch daran erinnern, sich nicht von den Befehlen in anderen Artikeln einschränken zu lassen. Beachten Sie, dass viele Frida-Befehle in Artikeln den Parameter `-U` verwenden. Wir verwenden ihn hier nicht. Wenn Sie also keine Verbindung herstellen können, stellen Sie sicher, dass Ihr Befehl genau dem Beispiel entspricht.

Bevor wir beginnen, möchten wir erwähnen, dass wir dringend empfehlen, Befehle wie `frida`, `frida-itrace`, `frida-trace`, `frida-ps` über den Remote-Desktop zu verwenden, da Sie in dieser Umgebung keine weiteren Aktionen durchführen müssen. Sie führen einfach `frida` aus, ohne zusätzliche Verbindungsparameter wie `-U` oder `-H` angeben zu müssen.

![Frida](/assets/images/frida-remote-desktop.png)

Da Sie bis hierher gelesen haben, möchten Sie den Befehl wahrscheinlich immer noch auf Ihrem Computer verwenden. Jetzt müssen Sie einige Informationen basierend auf Ihrer Installation zusammenstellen. Wenn Ihr FIRERPA mit einem Serverzertifikat gestartet wurde, müssen Sie diese Datei bereithalten. Außerdem benötigen Sie die IP-Adresse des zu verbindenden Geräts und den FIRERPA-Service-Port (standardmäßig 65000). Beachten Sie, dass dies nicht der Frida-Port 27042 ist, sondern der Port des FIRERPA-Dienstes. Sie müssen sich nur mit FIRERPA verbinden.

Zuerst müssen Sie den aktuellen Token über die API abrufen. Dieser Token ist eine feste 16-stellige Zeichenfolge, z. B. `czvpyqg82dk0xrnj`. Wir verstehen, dass diese Methode umständlich sein kann, und werden möglicherweise in Zukunft einige Verbesserungen der Benutzerfreundlichkeit vornehmen. Aus diesem Grund haben wir oben empfohlen, Frida-bezogene Befehle auf dem Remote-Desktop zu verwenden.

```python
token = d._get_session_token()
print (token)
```

Jetzt haben Sie einen Token von der obigen Schnittstelle erhalten. Nehmen wir an, es ist `czvpyqg82dk0xrnj`. Nun beginnen wir mit dem Schreiben des Frida-Befehls.
Für alle offiziellen Frida-Befehlszeilentools müssen Sie standardmäßig nur die Parameter `-H 192.168.0.2:65000` und `--token xxxxxxxxxxxxxxxx` hinzufügen, wie im folgenden Beispiel gezeigt. **Ganz, ganz, ganz wichtig:** Beachten Sie, dass hier kein `-U`-Parameter verwendet wird.

```bash
frida -H 192.168.0.2:65000 -f com.android.settings --token xxxxxxxxxxxxxxxx
```

Wenn Ihr FIRERPA-Server mit einem Serverzertifikat gestartet wurde, müssen Sie auch den Parameter `--certificate` zum Befehl hinzufügen.

```bash
frida -H 192.168.0.2:65000 -f com.android.settings --certificate /path/to/lamda.pem --token xxxxxxxxxxxxxxxx
```

Sie haben vielleicht bemerkt, dass es nur drei Unterschiede gibt: `-U` wird zu `-H`, da wir uns über das Netzwerk und nicht über USB verbinden; es gibt einen zusätzlichen `--token`-Parameter; und wenn der Server ein Serverzertifikat verwendet, gibt es auch einen `--certificate`-Parameter. Dies dient dazu, die Sicherheit Ihres Geräts zu gewährleisten und unbefugten Zugriff zu verhindern.

## Verwendung über die Befehlszeile (objection)

Für andere Tools wie objection sind diese Parameter normalerweise ebenfalls verfügbar. Die meisten nicht standardmäßigen Tools fügen diese Parameter jedoch nicht vollständig hinzu. Derzeit haben wir nur einen Patch für objection bereitgestellt, der die ursprüngliche Verwendung nicht beeinträchtigt. Da objection jedoch seit langem nicht mehr aktualisiert wurde, haben wir den Patch nicht an das Upstream-Repository gesendet. Sie können unseren bereitgestellten [objection-1.11.0-command-patch.diff](https://github.com/firerpa/lamda/blob/8.0/tools/objection-1.11.0-command-patch.diff) herunterladen und diesen Patch auf Ihr installiertes objection-Codeverzeichnis anwenden (den Installationspfad finden Sie mit dem Befehl `pip3 show objection`).

Danach können Sie es wie folgt verwenden. Wie Sie sehen, wurde nur der Parameter `--token` hinzugefügt.

```bash
objection -N -h 192.168.0.2 -p 65000 --token xxxxxxxxxxxxxxxx explore
```

Oder wenn der Server mit einem Serverzertifikat gestartet wurde, müssen Sie ebenfalls `--certificate` zum Befehl hinzufügen.

```bash
objection -N -h 192.168.0.2 -p 65000 --certificate /path/to/lamda.pem --token xxxxxxxxxxxxxxxx explore
```

## Anwendungs-APIs freigeben

Dieser Abschnitt wurde in das Kapitel `Verwendung von Frida zum Exportieren von Schnittstellen` verschoben.