APK-Analysator für Linux

Dies könnte dieser Frage ziemlich nahe kommen , aber meine Anforderungen sind etwas anders. Ausgehend von einer .apkDatei (z. B. von einer Drittanbieterquelle wie F-Droid heruntergeladene Android-App ) kann dieser Analysator

  • sollte auflisten, welche Bibliotheken von ihm verwendet werden
  • sollte auflisten, ob die App einige Werbemodule verwendet
  • ein Hinweis auf potenziell gefährliche Komponenten (Stichwort: Malware) wäre toll
  • muss unter Linux laufen (nicht unbedingt nativ: PHP, Python oder Java wären auch in Ordnung – aber etwas, das zB Wine erfordert, ist keine Option).
  • darf nicht erfordern, dass das gesamte Android SDK (oder ein ähnlich großes Framework) installiert wird (Teile davon, wie die aaptBinärdatei, sind erforderlich, ist in Ordnung)
  • Das Abrufen von Online-Ressourcen ist in gewissen Grenzen akzeptabel (aber zB kein „Heimrufen für Statistiken“), aber der Offline-Betrieb wird bevorzugt

Tiefgreifende Code-Analyse, Dekompilierung, Byte-Code-Analyse usw. sind nicht erforderlich – nur das Auflisten von Bibliotheken und Modulen ist in Ordnung (wenn es zusätzlich eine URL für weitere Details geben kann, zählt das als Bonus). Eine GUI ist nicht erforderlich (schaden aber nicht) – eine Kommandozeilenschnittstelle ist jedoch ein Muss.

Die Ergebnisse sollten für die automatische Nachbearbeitung strukturiert sein (vorzugsweise JSON oder XML). Mein Traumfall wäre etwas, das ich einfach in ein Verzeichnis entpacke, dann von dort aufrufe wie ./apkanalyzer com.foobar– und es spuckt etwas JSON/XML nach STDOUT.

Mir ist bewusst, dass ein solches Tool möglicherweise nicht in der Lage ist, alle Bibliotheken/Werbemodule zu erkennen (insbesondere, da es möglicherweise jeden Tag neue gibt) – aber je mehr es weiß, desto besser. Wenn es "unbekannte Bibliotheken/Module" als solche meldet und die Möglichkeit gibt, sie bekannt zu machen (zB über eine Konfigurationsdatei), wäre das ein Bonus.

Das Programm muss frei sein (wie in „Free Beer“), sollte möglichst auch frei sein (wie in „Free Speech“) und sollte frei sein (wie in „Hazzle-Free Setup“ ;).

Nur so nebenbei: Ich habe natürlich zuerst mein Google-Fu ausprobiert. Eine gute Ressource, die ich gefunden habe, ist android-security-awesome mit einer langen Liste verfügbarer Dienste und Tools. Aber das ist kein Ersatz für eine gute Empfehlung :)
Ich habe gerade LibRadar gefunden , das ziemlich nahe zu kommen scheint (aber einige Anzeigenmodule nicht richtig zu erkennen scheint: zB AdMob wird als Google Play Store angezeigt). Muss das mal genauer prüfen. Verwandte Frage zu SO (Fragen des Teils "Wie kann ich"): Identifizieren Sie enthaltene Bibliotheken/Module aus Manifest

Antworten (2)

LibRadar scheint meinen Anforderungen zu entsprechen:

  • Bibliotheken auflisten: Ja. Und kategorisiert sie sogar.
  • Anzeigenmodule auflisten: Ja, unter den Bibliotheken, die ihre eigene Kategorie verwenden.
  • Hinweis auf potenziell gefährliche Komponenten: Entweder hatte ich (noch) keine, oder es kennzeichnet sie nicht explizit. Es gibt jedoch normalerweise eine URL für den Hintergrund an.
  • muss unter Linux laufen: Das tut es. In Python geschrieben, kann es plattformübergreifend verwendet werden.
  • muss nicht das gesamte Android SDK erfordern: offensichtlich nicht, da es für mich sofort einsatzbereit war (heruntergeladen von seinem Git-Repo). Scheint erforderliche Komponenten mitzuliefern (z. B. apktool)
  • Ergebnisse sollten für die automatische Nachbearbeitung strukturiert werden: Spuckt JSON nach STDOUT aus, also ja.

Es erkennt möglicherweise nicht die neuesten Inhalte, aber es scheint sogar Bibliotheken anzuzeigen, die ihm selbst unbekannt sind. Unter Verwendung der IDs dieser Bibliotheken kann man nach Details über sie suchen und diese Informationen „überlagern“ – was ich sehr nützlich finde. Ein großes Plus ist, dass es sogar die Berechtigungen auflistet, die eine Bibliothek dem Set hinzufügt. Ein vereinfachtes Beispiel (konvertiert in meine eigene Array-Struktur, um es einfacher zu sehen):

[3] => Array
    (
        [name] => Parse.com
        [pkgname] => com/parse/
        [type] => Mobile Analytics
        [perms] => Array
            (
                [0] => android.permission.ACCESS_NETWORK_STATE
                [1] => android.permission.WAKE_LOCK
                [2] => android.permission.INTERNET
            )

        [url] => https://parse.com/docs/cn/android/guide
    )

LibRadar wird also das sein, was ich jetzt verwenden werde. Passt ganz gut zu meinen Anforderungen und fügt sogar einen Bonus hinzu, wenn man die Berechtigungen auflistet, die vom gegebenen Framework verwendet werden.

Ein weiterer passender Kandidat wäre εxodus standalone :

  • listet Bibliotheken auf: nur Datenschutzverletzer alias ATS (Ads and Tracking Services) alias Tracker – aber das sind in meinem Fall die relevantesten
  • Anzeigenmodule auflisten: ja.
  • Hinweis auf potentiell gefährliche Bestandteile: nur an ATS.
  • muss unter Linux laufen: ja. Als LibRadar ist dies in Python geschrieben.
  • muss nicht das gesamte Android SDK erfordern: nein, es benötigt nur dexdump, das einfach mit installiert werden kann sudo apt-get install dexdump.
  • Ergebnisse sollten für die automatische Nachbearbeitung strukturiert werden: Ja, es bietet JSON-Ausgabe.

Dies ist Teil des Exodus Privacy - Projekts und verwendet dieselbe Engine wie ihr Webscanner , sodass sie auf dem neuesten Stand gehalten wird. Wenn das Ziel nur darin besteht, diese Tracker zu fangen, ist dies ein guter Kandidat. Beispielausgaben und Installationsanweisungen finden Sie hinter dem ersten (fettgedruckten) Link dieser Antwort. Wie LibRadar ist es kostenlos und Open Source und erfüllt daher auch diese Anforderung.