【问题标题】:Building a Control Flow Graph for Android APK from smali code从 smali 代码为 Android APK 构建控制流图
【发布时间】:2017-07-18 06:33:04
【问题描述】:

是否有任何工具可以直接解析 smali 代码以构建 CFG?我知道 Androguard 做了类似的事情,但它似乎对 apk 文件使用了反编译,如果 apk 使用混淆技术,这在某些情况下可能会变得不可靠。

【问题讨论】:

标签: android apk smali control-flow-graph androguard


【解决方案1】:

看看https://androguard.blogspot.co.il/2011/02/android-apps-visualization.html

关于您对 Androguard 的担忧。

好像对apk文件使用反编译

你的意思是“拆解”吗?好吧,工具需要理解字节码才能构建调用图。如果您的意思是“反编译为 Java”,我很确定这不会发生。

在 apk 使用混淆技术的情况下不可靠

有多种混淆技术。大多数与调用图无关。例如。 name mangling 将org.apache.http.client.HttpClient 之类的类名替换为a.b.c 之类的无意义的名称。您仍然会在 CFG 中看到此类及其函数。

【讨论】:

  • 我发现第6672行的这个文件github.com/vivainio/androguard/blob/master/androguard/core/…负责将字节码转换为有用的信息。我可以说这是反汇编而不是反编译吗?
  • 整个模块负责将二进制 dex 格式解析为实际的操作码及其部分——比如 smali。它更像是对机器字节码执行相同操作的反汇编程序。无论如何,这部分对于查看哪些方法相互调用确实是必不可少的,但(大部分)与混淆无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 1970-01-01
  • 2011-04-06
  • 2018-11-27
相关资源
最近更新 更多