Для отладки работы 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 и видео. При небольшой сноровке можно сохранить видео себе в дорогу.