我想從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