使用Soot CLI在dex中选择类以创建控制流程图

时间:2019-07-15 03:44:33

标签: java android apk soot androguard

我正在从事一个有关APK的项目,我需要从APK中提取依赖关系图。例如,如果有这样的功能,

public int getSize(){
        int value = 0;
        final String strValue =
                mSize.getText().toString();

        if (strValue != null
                && !strValue.isEmpty())
            value = Integer.valueOf(strValue);
        return value;
    }

我需要在图中提取以下信息:

  • getSize()返回一个整数
  • value是一种int类型(因为它是一个局部变量,所以该名称将被编译器替换)
  • strValue是一种字符串类型,并将mSize.getText()。toString()的结果分配给它。
  • 等。

我尝试使用烟灰生成CFG,但我无法仅分析dex文件中所需的类,它为APK中的所有类和子类生成CFG,并卡在中间。 -i命令仅适用于.java格式的文件(我认为),并且导致我的问题是类文件位于classes.dex文件中,该命令对我不起作用。

我还尝试使用androguard为选定的类生成调用图和CFG,但是变量名和分配的类型更像注册表级别的命令,我需要自己手动读取和创建连接。

所以我的问题是,是否有一种方法可以使用烟灰遍历给定的类并在dex文件中生成依赖关系图,或者,

是否有一种方法可以使用androguard自动获取包含上述变量详细信息的图形?

0 个答案:

没有答案