AndroidアプリケーションのapkからすべてのAPI呼び出しを抽出します。 apktoolを使ってapaliからsmaliコードファイルを入手しました。手動でいくつかのAPI呼び出しを見つけることができますが、私は自動化されたメソッドが必要です。例えば、私はこのコード行でgetNetworkInfo
コールを見ることができます:私はsmaliコードでの経験がないandroid apkの.smaliファイルからすべてのAPI呼び出しを抽出する
invoke-virtual {p0, v0}, Landroid/net/ConnectivityManager;->getNetworkInfo(I)Landroid/net/NetworkInfo;
とAndroidアプリケーションの分析と非常に少ないです。私は "getNetworkInfo"が1であることを知ったので、私は上記のAPI呼び出しを検出しました。もちろん、私がしたくないことは、すべての可能なAPI呼び出しのリストから始めて、smaliファイル内のそれぞれを1つずつ検索することです。
APIコールの別の兆候がありますか? invoke-virtual
またはinvoke-direct
は、常にAPI呼び出しを意味しますか?
を検索することによって開始することができ、私はDEXファイルにアクセスするためにdexlib2を使用することをお勧めしますプログラム的に、smaliファイルを解析しようとするよりもむしろ。 – JesusFreke