
Ein Toolkit zur Laufzeitanalyse mobiler Anwendungen mit einer Web-GUI, unterstützt von Frida, geschrieben in Python.
/ | \ ____ __ __ ______ ____
/ ~ \/ _ \| | \/ ___// __ \
\ Y ( <_> ) | /\___ \ ___/
\___|_ / \____/|____//____ >\___ >
\/ House \/ \/
Dynamisches Mobile-Analyse-Tool
Kontakt: [email protected]
House: Ein Laufzeit-Mobilanwendungs-Analyse-Toolkit mit einer Web-GUI, angetrieben von Frida, geschrieben in Python. Es wurde entwickelt, um Mobilanwendungen durch die Implementierung von dynamischem Funktionen-Hooking und -Intercepting zu bewerten und soll das Schreiben von Frida-Skripten so einfach wie möglich machen.
git clone https://github.com/nccgroup/house
cd house
pip3 install -r requirements.txt
pip3 install pipenv
pipenv --python=/usr/bin/python3 install
pipenv --python=/usr/bin/python3 shell
python3 app.py <PORT>
# or:
mkvirtualenv --python=/usr/local/bin/python3 house
workon house
pip install -r requirements.txt
python app.py <PORT>
# or: (only for Mac OS)
git clone https://github.com/nccgroup/house
cd house
pip3 install -r requirements.txt
pip3 install pipenv
pipenv --python=/usr/local/bin/python3 install
pipenv --python=/usr/local/bin/python3 shell
python3 app.py <PORT>
Standardmäßig bindet House an http://127.0.0.1:8000.
Um einen Überblick über die Fähigkeiten von House zu erhalten, besuchen Sie das Benutzerhandbuch für Details.


Hinweis: Stellen Sie sicher, dass Sie Ihre Frida-Version auf >= 12.8.3 aktualisieren für das Hooken von /dex/jar-Funktionen.
In diesem Abschnitt wird ein kleines Beispiel zur Veranschaulichung der grundlegenden Nutzung von
House gegeben. Der Demofall wird gegen eine kleine Test-Android-Anwendung durchgeführt:
com.ha0k3.overloads.
Stellen Sie sicher, dass ein Android-Gerät über USB angeschlossen ist und der Frida-Server auf dem Gerät läuft. Überprüfen Sie, ob der Frida-Server erfolgreich gestartet wurde, mit dem folgenden Befehl: frida-ps -U.
Starten Sie die House-Anwendung durch Ausführen von app.py: python app.py <PORT>.
Öffnen Sie einen Browser und navigieren Sie zu http://127.0.0.1:PORT.
Beachten Sie, dass die Geräteinformationen auf der Seite angezeigt werden; falls nicht, klicken Sie auf die Schaltfläche Aktualisieren oder starten Sie die Anwendung und den Frida-Server neu.


Sideload. Derzeit wird das Sideloading von Stetho unterstützt, was es uns erleichtert, die Benutzeroberfläche, den Speicher usw. zu untersuchen.





Skript-Rendering und Funktionsverfolgung:

Hooks für Funktionen in dynamisch geladenen dex/jar-Dateien:

Mini-Script-Option:

Verwaltung des Skriptverlaufs:

Über House können Forscher die Argumente, die an die Zielfunktionen übergeben werden, dynamisch ändern und weiterleiten.

Manchmal kann House die Argumentinformationen nicht perfekt parsen. Beispielsweise kann ein Argument einen speziellen Typ haben. In der Beispiel-App implementiert sie die isLit-Funktion, die ein benutzerdefiniertes Objekt als Argument nimmt. Um solche Situationen zu bewältigen, bietet House ein einfaches "REPL". Sicherheitsforscher können im REPL dynamisch Frida-Skripte eingeben und das Verhalten der Funktionen ändern.

Mehrere REPL-Funktionen werden von House bereitgestellt, um das Testen zu erleichtern:
inspectObject(obj) verwendet java.lang.reflect, um Feldinformationen innerhalb eines Objekts zu untersuchen.setRetval(ret) nimmt einen Parameter und versucht, ihn mithilfe des Konstruktors des ursprünglichen Rückgabewerts in den korrekten Rückgabetyp umzuwandeln.getStackTrace() gibt den Stack-Trace aus.
Hinweis: Für Constructor-Methoden-Hooking/Intercept geben Sie $init als Methodennamen ein.
Damit House funktioniert, benötigen Sie:
Bitte versuchen Sie, sowohl den Frida-Server als auch House neu zu starten. Wenn es immer noch nicht funktioniert, reichen Sie bitte ein Issue ein.
Tritt oft auf, wenn mehrere USB-Geräte angeschlossen sind. Versuchen Sie, die Zielanwendung neu zu starten.
House wurde mit Frida-Version 12.8.6 getestet. Es könnte einige Probleme mit anderen Versionen geben. Stellen Sie außerdem sicher, dass Frida-Python mit der Version des Frida-Servers übereinstimmt. Wenn es immer noch nicht funktioniert, versuchen Sie, die generierten Frida-Skripte manuell auszuführen, um zu sehen, ob es funktioniert.
Besonderer Dank gilt den folgenden Open-Source-Projekten für Inspirationen zu House:
Wenn Sie weitere Fragen zu House haben oder bei der Erweiterung helfen möchten, kontaktieren Sie:
Oder senden Sie eine E-Mail an: Hao Ke