Gibt es irgendwelche Tools, die smali Code direkt analysieren, um CFG zu konstruieren? Ich weiß, dass Androguard etwas Ähnliches tut, aber es scheint Dekompilierung in der Apk-Datei zu verwenden, die in Situationen unzuverlässig werden kann, wenn die Apk Verschleierungstechniken verwendet.Erstellen eines Kontrollflussdiagramms für Android APK von smali code
Antwort
Werfen Sie einen Blick auf https://androguard.blogspot.co.il/2011/02/android-apps-visualization.html.
In Bezug auf Ihre Bedenken über Androguard.
es scheint
Dekompilierung auf der apk-Datei zu verwenden
Haben Sie "Demontage" zu verstehen? Nun, ein Werkzeug muss den Bytecode verstehen, um ein Aufrufdiagramm zu erstellen. Wenn Sie "zu Java dekompilieren" meinen, bin ich mir ziemlich sicher, dass das nicht passiert.
unzuverlässig in Situationen, wenn die apk Verschleierungstechniken verwendet
Es gibt verschiedene Verschleierungstechniken. Und die meisten haben nichts mit dem Call Graph zu tun. Z.B. Name Mangling ersetzt Klassenname wie org.apache.http.client.HttpClient
zu etwas bedeutungslos wie a.b.c
. Sie werden diese Klasse und ihre Funktionen weiterhin in CFG sehen.
Ich finde, dass diese Datei https://github.com/vivainio/androguard /blob/master/androguard/core/bytecodes/dvm.py bei Zeile 6672 ist verantwortlich für die Umwandlung des Bytecodes in nützliche Informationen. Habe ich Recht zu sagen, dass dies Demontage und keine Dekompilierung ist? –
Dieses gesamte Modul ist verantwortlich für das Parsen des binären dex-Formats zu tatsächlichen Opcodes und deren Teilen - wie smali. Es ist mehr wie ein Disassembler, der dasselbe für den Maschinen-Bytecode tut. In jedem Fall ist dieser Teil in der Tat wichtig, um zu sehen, welche Methoden sich gegenseitig aufrufen, aber (meistens) irrelevant für die Verschleierung sind. –
- 1. Wie behandelt Android beim Erstellen von APK zusätzlichen/alternativen Code?
- 2. Dekomplizierung eines Android apk
- 3. Android Studio: Fehler beim Erstellen von Apk
- 4. Android - Erstellen von signierten APK mit Proguard
- 5. Gibt es apktool auf Android? Ich möchte ".smali" zusammenstellen und neue ".apk" in einer Android-Anwendung erstellen
- 6. Ändern von .Smali-Dateien
- 7. Fehler beim Erstellen Android APK
- 8. Android Dex Fehler beim Erstellen von APK
- 9. Erstellen eines Kontrollflussdiagramms von einem AST mit einem Besuchermuster mit Hilfe von Java
- 10. Smali Code vs Java-Quellcode, wenn Reverse-Engineering eine Android-App
- 11. bearbeiten apk Code dekompiliert
- 12. Sicherheitsanalyse für Android App APK
- 13. Fehler beim Erstellen der apk in Android
- 14. Fehler beim Erstellen von signierten APK von Android Studio
- 15. Wie können wir Android apk für Python-basierte Anwendung erstellen
- 16. Wie smali in Java
- 17. Android Apk Split für verschiedene Bildschirmgrößen
- 18. Android Studio - Version APK für Geschmack
- 19. Android 7.0: Installieren von APK
- 20. Erstellen eines neuen Code-Refactorings für ReSharper
- 21. Proguard Ausnahme beim Erstellen von Release Android apk
- 22. Android APK vs Test APK?
- 23. Verpackung Adobe AIR Als .APK Für Android
- 24. Fehler beim Erstellen von Apk-Datei
- 25. Kein "apk" -Ordner, der beim Erstellen eines APK im Ordner "Build" erstellt wurde
- 26. Android: Wie die Code-Versionsnummer von build.gradle im Dateinamen .apk (app-release_v3.apk)
- 27. Ich kann kein APK erstellen
- 28. erstellen android apk manuell über die Kommandozeile (Makefile)
- 29. Android Installation von APK über Browser Link
- 30. Kann "APK" in Android Stduio nicht erstellen [libGDX]
Möglicherweise Duplikate - https://stackoverflow.com/questions/13739815/how-to-generate-call-graph-from-android-apk –