Для отладки работы web части или api на мобильных устройствах часто требуется провести анализ трафика и запросов от устройств. Устройства часто не предоставляют инструментов удобных для отладки. Рассмотрим вариант анализ трафика с помощью usb wifi адаптера и tcpdump
Схема отладки достаточно простая. Трафик мобильно устройства нужно пустить через настольный ПК или ноутбук. Для этого нам потребуется подключение компьютера по eth и wifi адаптер способный работа в режиме AC или SoftAC.
Для работы я использую Ubuntu 14.04. На примере это ОС кратко покажу процесс. Процесс настройки в сети описан достаточно подробно. За основу взял рецепт с хабра Временное переключение WIFI в режим точки доступа
Для работы wifi в режиме точке доступа для ubuntu 14.04 потребовалось добавить команды
nmcli nm wifi off rfkill unblock wlan
Без них выпадали ошибки:
wlan1: Unable to setup interface. wlan1: Could not connect to kernel driver ELOOP: remaining timeout: -1.883950 eloop_data=0x1c7bd70 user_data=0x1c7b0d0 handler=0x444eb0
Скрипт запуска выглядит так:
#!/bin/bash
nmcli nm wifi off
rfkill unblock wlan
# Start
# Configure IP address for WLAN
sudo ifconfig wlan1 192.168.150.1
# Start DHCP/DNS server
sudo service dnsmasq restart
# Enable routing
sudo sysctl net.ipv4.ip_forward=1
# Enable NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Run access point daemon
sudo hostapd /etc/hostapd.conf
# Stop
# Disable NAT
sudo iptables -D POSTROUTING -t nat -o eth0 -j MASQUERADE
# Disable routing
sudo sysctl net.ipv4.ip_forward=0
# Disable DHCP/DNS server
sudo service dnsmasq stop
/etc/hostapd.conf
# Define interface interface=wlan0 # Select driver driver=nl80211 # Set access point name ssid=laptop-wifi # Set access point harware mode to 802.11g hw_mode=g # Set WIFI channel (can be easily changed) channel=6 # Enable WPA2 only (1 for WPA, 2 for WPA2, 3 for WPA + WPA2) wpa=2 wpa_passphrase=wifipass
Для анализа трафика можно воспользоваться tcpdump. Утилита очень мощная но требующая время на изучение.
Анализ GET запросов
Анализ POST запросов
Запустив в консоли команду и запустив на устройстве приложение (например ivi) можно получить url по которым запрашивается API и видео. При небольшой сноровке можно сохранить видео себе в дорогу.