
Statisches Entpacken gängiger Android-Banker-Malware.
Kavanoz (türkisch für Glas) ist ein Tool, um gängige Android-Banker-Malware statisch zu entpacken. Wolltest du jemals die Payload aus gepackter Malware extrahieren, ohne einen Android-Emulator auszuführen? Ich auch nicht :) Aber hier ist trotzdem ein Tool.

pip install kavanoz
Um aus dem Quellcode zu installieren, klone das Repository und führe eine editierbare Installation mit -e durch. Das bedeutet, wenn du Plugins im Projekt bearbeitest oder hinzufügst, werden diese ohne Neuinstallation verwendet.
git clone https://github.com/eybisi/kavanoz.git
cd kavanoz
pip install -e .
über die Befehlszeile
kavanoz /tmp/filepath
Du kannst den Parameter -vvv verwenden, um ausführliche Logs auszugeben. (nützlich zum Debuggen von Plugins)
als Python-Bibliothek
from kavanoz.core import Kavanoz
from kavanoz import utils
utils.set_log("DEBUG")
k = Kavanoz(apk_path="tests/test_apk/coper.apk")
for plugin_result in k.get_plugin_results():
if plugin_result["status"] == "success":
print("Unpacked")
print(plugin_result)
break
Stelle sicher, dass du kavanoz als editierbare Installation (mit -e) installierst. Um neue Plugins hinzuzufügen, erstelle einfach eine neue Datei im loader-Ordner. Erweitere die Unpacker-Klasse aus der Datei unpack_plugin.py. Definiere die start_decrypt-Funktion mit deiner Implementierung.
def start_decrypt(self, apk_object: APK, dexes: "list[DEX]"):
Füge folgende Funktion hinzu, um einen frühen Ausstieg aus dem Plugin zu ermöglichen.
def lazy_check(self,apk_object:APK, dexes: "list[DEX]"):
Wenn die Extraktion erfolgreich ist, weise self.decrypted_payload_path den Pfad der extrahierten Datei zu. Du kannst Hilfsfunktionen aus der Unpacker-Klasse verwenden:
Stelle sicher, dass du python -m unittest ausführst, bevor du einen PR eröffnest. Um Test-APK-Dateien zu erhalten, verwende den Befehl git lfs pull.
dex.get_class(smali_annotation_of_class) erhalten.self.apk_object.get_files() abrufen.application = self.apk_object.get_attribute_value("application", "name"), um die im Manifest definierte Application-Klasse zu erhalten.apkdetect.com für die einzigartigen Samples, mit denen wir arbeiten konnten.