Обнаружив приложение Android, найдите URL-адрес API

Мне любопытно узнать, как я могу определить URL-адрес API приложения Android (любое приложение, которое я установил), если оно вызывает вызовы API на какой-либо онлайн-сервер (например, служба RESTful). Я предполагаю, что мне нужно захватить пакеты на устройстве и, возможно, проанализировать их в Wireshark или что-то найти URL-адрес? Я достаточно компетентен в разработке Java/Android, но немного потерял, когда дело доходит до любого бизнеса сетевого анализа.

Ответы

Ответ 1

Вы можете сделать это с помощью WireShark. Я перечисляю шаги здесь

  1. Установите WireShark на свой компьютер
  2. Теперь нам нужно создать виртуальное устройство Android (AVD), поэтому мы будем загружать Android SDK с официального сайта. Android SDK поставляется с эмулятором для тестирования
  3. после настройки Android SDK создайте виртуальное устройство Android (AVD), на которое мы будем устанавливать приложение
  4. запустите это виртуальное устройство. вы можете использовать командную строку для запуска (emulator @<AVD name>)
  5. после создания виртуального устройства установите приложение с помощью команды adb install app_file_name.apk
  6. Теперь мы можем начать захват пакетов, поэтому я предлагаю закрыть другое приложение на вашем компьютере, которое использует сеть, чтобы наши захваченные пакеты были более релевантными.
  7. Теперь запустите Wireshark с правами root
  8. выберите интерфейс, который вы хотите захватить и нажмите начать, чтобы начать захват.

    wireshar start image

  9. Теперь начните использовать это приложение, чтобы пакеты передавались туда и сюда, и Wireshark его захватывал.

    list of packets

  10. Если вы использовали приложение, охватывающее все виды деятельности, то вы можете остановить Wireshark для захвата пакетов.

  11. Теперь начнем основной бизнес, чтобы тщательно анализировать пакеты, но не все пакеты полезны для нашей работы. так что давайте фильтровать пакеты, которые актуальны для вас. позволяет ваш IP-адрес 192.168.0.32 затем отфильтровать все пакеты, чей IP это. поэтому выражение фильтра будет ip.addr==192.168.0.32 применить этот фильтр. тем не менее, мы применяем другой фильтр, чтобы перечислять только релевантные пакеты, поэтому возможно, что приложение обращается к API по протоколу HTTP, поэтому примените фильтр HTTP. выражение будет http. Вы можете применить оба фильтра сразу ip.addr==192.168.0.32 and http нажмите ip.addr==192.168.0.32 and http чтобы применить.

    wireshark details

  12. внимательно посмотрите информацию о перечисленных пакетах, вы увидите много важных деталей, ключи API, файлы cookie и т.д.

Ответ 2

Очень быстрый метод.
Зайдите в PlayStore, найдите пакетный захват

Скачайте, установите и запустите.
Это легко, просто и быстро. Он предоставит вам подробную информацию об API, URL и ответ с их заголовками.

Это приложение следует концепции Packet Sniffing. Таким образом, это может не работать с такими защищенными приложениями, как WhatsApp, Facebook, Twitter.

ОБНОВЛЕНИЕ 1:
Захват пакетов больше не доступен в playstore, попробуйте OS Monitor

Ответ 3

Использовать прокси-сервер отладки. Нажмите кнопку воспроизведения, и вы сможете захватывать URL-адреса и просматривать более подробную информацию.

https://play.google.com/store/apps/details?id=com.dans.apps.webd

Ответ 4