android获取静态apk包,如何从APK文件提取API调用?

使用Python,鉴于它是.apk文件,我试图提取Android应用程序进行的API调用。

有没有一种方法可以通过对包的APK进行静态分析来解析/提取包所使用的API的名称?

到目前为止,这是我尝试过/发现的内容。

我之前曾看到过此问题,但一直无法遵循(非常有限的)有效解决方案的答案。

我知道有些工具(例如Cartographer)可以完成此任务,但是我无法使代码的相关部分正常工作。CHABADA可以使用另一种工具,但是它不是开源的。

我已经能够从APK中获取其他信息,例如使用Androguard的外部类,AndroidManifest.xml使用APK Static Analyzer的文件的组件以及使用Apktool的文件,我可以将清单解码为可读格式,还可以获取smali文件。

先前的另一篇文章询问如何从以下代码行解析API的smali文件:invoke-virtual {p0, v0}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;

但这并不似乎是因为一个有用的方法invoke-virtual或invoke-direct并不一定表示API的使用,并解析smali文件是一个较重的任务相比,有一些办法只是静态分析的APK中提取所谓的API。

还建议使用Dexlib2,但我看不到它可以在哪里提取API调用,并且全部使用Java,而我一直在使用Python。

工具API密钥检测器为我提供了所使用的API密钥,但是我不知道如何从中获取API名称。

有什么办法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值