61

I'm curious as to how I could figure out the API URL an Android application (any app I have installed) uses if it makes API calls to some online server (a RESTful service for example). I presume I have to capture packets on the device and maybe analyse them in Wireshark or something to find the URL? I'm fairly competent in Java/Android development, but a bit lost when it comes to any sort of network analysis business.

4

7 に答える 7

83

これはWireSharkの助けを借りて行うことができます。ここに手順をリストしています

  1. コンピューターにWireSharkをインストールする
  2. 次に、Android 仮想デバイス (AVD) を作成する必要があるため、公式サイトから Android SDK をダウンロードします。Android SDK には、テスト用のエミュレーターが付属しています
  3. Android SDK をセットアップした後、アプリをインストールする Android 仮想デバイス (AVD) を作成します。
  4. その仮想デバイスを起動します。コマンドラインを使用して開始できます ( emulator @<AVD name>)
  5. adb コマンドを使用して仮想デバイス インストール アプリを作成した後adb install app_file_name.apk
  6. これでパケットのキャプチャを開始できるので、ネットワークを使用しているコンピュータ上の他のアプリケーションを閉じて、キャプチャしたパケットの関連性を高めることをお勧めします。
  7. ルートアクセスでwiresharkを開始します
  8. キャプチャするインターフェイスを選択し、[開始] をクリックしてキャプチャを開始します。

    ワイヤーシェア開始イメージ

  9. そのアプリの使用を開始すると、パケットが前後に転送され、wireshark がそれをキャプチャします。

    パケットのリスト

  10. あらゆる種類のアクティビティをカバーするアプリを使用した場合は、wireshark を停止してパケットをキャプチャできます。

  11. 現在、パケットを注意深く分析するための主なビジネスを開始していますが、すべてのパケットが私たちの仕事に役立つわけではありません。あなたに関連するパケットをフィルタリングしましょう。IP アドレスを 192.168.0.32 にすると、IP がこれであるすべてのパケットがフィルタリングされます。したがって、フィルター式はip.addr==192.168.0.32 このフィルターを適用します。それでも、別のフィルターを適用して関連するパケットのみをリストするため、アプリが HTTP プロトコルで API にアクセスしている可能性があるため、HTTP フィルターを適用します。という表現になりますhttp。両方を一度に適用することができますフィルターを適用するには、ip.addr==192.168.0.32 and httpEnter キーを押します。

    ワイヤーシャークの詳細

  12. リストされたパケットの情報を注意深く参照してください。多くの重要な詳細、API キー、Cookie などが表示されます。

于 2014-05-09T15:08:42.117 に答える
23

非常に高速な方法です。PlayStore に移動し、 Packet Capture
を検索します

ダウンロード、インストール、実行します。
それは簡単で簡単です。API、URL、およびヘッダー付きの応答に関する詳細が表示されます。

このアプリケーションは、パケット スニッフィングの概念に従います。したがって、これは WhatsApp、Facebook、Twitter などの安全性の高いアプリケーションでは機能しない可能性があります。

更新 1:
パケット キャプチャはプレイストアで利用できなくなりました。OSモニターを試してください。

更新 2:
パケット キャプチャが再び利用可能になりました。

于 2017-10-04T17:08:41.697 に答える