我想从Android应用程序的apk中提取所有API调用。我已经使用apktool从apk获取smali代码文件。手动我可以发现一些API调用,但我需要一种自动方法。例如,我可以看到getNetworkInfo
呼叫在这行代码:从android中的.smali文件中提取所有API调用apk
invoke-virtual {p0, v0}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
我有smali代码没有经验,很少有Android应用程序分析;我只发现了上面的API调用,因为我碰巧知道“getNetworkInfo”是一个。但是,当然,我不想做的事情是从所有可能的API调用列表开始,并在smali文件中逐一搜索它们中的每一个。
是否有API调用的另一个迹象? invoke-virtual
或invoke-direct
将总是意味着一个API调用?
我会建议使用dexlib2访问DEX文件以编程方式,而不是试图解析smali文件。 – JesusFreke