2017-07-18 2 views
0

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

+0

Möglicherweise Duplikate - https://stackoverflow.com/questions/13739815/how-to-generate-call-graph-from-android-apk –

Antwort

0

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.

+0

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? –

+0

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. –

Verwandte Themen