Ziel: Reverse Engineering einer Android-Kamera-App (New X5 Mini)?
Hallo zusammen,
ich versuche aktuell, die Kommunikation zwischen einer Android-App und einer WLAN-Kamera zu analysieren und nachzubauen. Es handelt sich um die New X5 Mini Camera (1080p, Nachtsicht, Bewegungserkennung, WLAN) und ihre zugehörige App (Download-Link: https://www.pgyer.com/9lWi).
🔍 Was ich bisher gemacht habe:
1. APK entpackt (apktool):
.smali -Dateien durchsucht nach
http://, rtsp://, bindDevice, login, token, etc.
- Keine relevanten Login- oder Streaming-Endpunkte gefunden
- Netzwerklogik nicht erkennbar im Java/Smali-Code
2. Hinweise auf native Streaming-Logik:
.so -Dateien gefunden:
libInno.so, libvdp.so, liboctopus.so, libBizJni.so, libsls_producer.so
3. Ghidra-Analyse gestartet:
- JNI-Funktionen untersucht (Java_com_...)
- Funktionen mit MD5-ähnlicher Struktur gefunden (vermutlich für Token-Erzeugung)
- Strings wie
"rtsp://%s/live?token=%s"
- bisher nicht sichtbar
🤔 Problemstellung:
Die Streaming- und Authentifizierungs-Logik liegt tief in den nativen Bibliotheken. Ich möchte wissen:
- Wie finde ich heraus, welche Parameter (z. B. deviceId, username, password) in die Funktionen fließen?
- Wie kann ich die App live beobachten (via frida, tcpdump, strace, etc.), um an RTSP-URL oder Token zu kommen?
- Gibt es Tools oder Strategien, um JNI-Parameter und Netzwerkaufrufe abzugreifen?
🐍 Ziel: Eigener Python-Client
Ich will die Kamera ohne App steuern — z. B. per
requests.post()
zum Login oder via
cv2.VideoCapture("rtsp://...")
für Live-Stream.
Bin für jeden Hinweis dankbar! Auch Dumps, Hooking oder Struktur-Mapping wären hilfreich. Ich kann jederzeit Screenshots, Ghidra-Ausschnitte oder Smali-Snippets posten.
Danke euch