2017-07-18 3 views
0

Y at-il des outils là-bas qui analysent le code smali directement pour construire CFG? Je sais que Androguard fait quelque chose de similaire mais il semble utiliser la décompilation sur le fichier apk qui peut devenir peu fiable dans des situations si l'apk utilise des techniques d'obfuscation.Construire un graphique de flux de contrôle pour Android APK à partir du code smali

+0

Peut-être des doublons - https://stackoverflow.com/questions/13739815/how-to-generate-call-graph-from-android-apk –

Répondre

0

Jetez un oeil à https://androguard.blogspot.co.il/2011/02/android-apps-visualization.html.

En ce qui concerne vos préoccupations au sujet d'Androguard.

il semble utiliser décompilation sur le fichier apk

Voulez-vous dire "désassemblage"? Eh bien, un outil doit comprendre le bytecode afin de construire un graphique d'appel. Si vous voulez dire "décompiler vers Java", je suis sûr que cela n'arrivera pas.

peu fiables dans des situations si l'apk utilise des techniques d'obscurcissement

Il existe différentes techniques d'obscurcissement. Et la plupart n'a rien à voir avec le graphique d'appel. Par exemple. nom mangling remplace le nom de classe comme org.apache.http.client.HttpClient à quelque chose de dénué de sens comme a.b.c. Vous verrez toujours cette classe et ses fonctions dans CFG.

+0

Je trouve que ce fichier https://github.com/vivainio/androguard /blob/master/androguard/core/bytecodes/dvm.py à la ligne 6672 est responsable de la conversion du bytecode en informations utiles. Ai-je raison de dire que c'est un démontage et non une décompilation? –

+0

L'ensemble de ce module est chargé d'analyser le format binaire dex aux opcodes réels et leurs parties - comme smali. C'est plus comme un désassembleur qui fait la même chose pour le bytecode machine. En tout cas, cette partie est en effet essentielle pour voir quelles méthodes s'appellent l'une l'autre mais (la plupart du temps) n'a aucun rapport avec l'obscurcissement. –