2017-01-06 24 views
0

Итак, я перехватил пакет, отправляемый с моего устройства Android на сервер приложений. Я хочу понять, что мой телефон отправляет на сервер.Попытка понять пакеты, захваченные с помощью tcpdump

Я укоренил телефон и установил tcpdump на него. Я использовал adb shell для запуска:

tcpdump -n -i wlan0 -w OUTPUT_FILE src host IP_ADDRESS and greater 200 

Я получил пакет на своем компьютере и запускаю его через wirehark.

Packet analysis

Мне сказали, что длинный список «........» превалирует в разделе ASCii потому, что нет ASCII представления конкретного HEX.

Это правда?

Я был в состоянии определить, что пакет не зашифрован, потому что я могу видеть четкие текстовые строки в ascii, которые я печатаю в приложении.

Я предполагаю, что данные являются либо двоичными, либо закодированными в base64 JSON, преобразованными в шестнадцатеричные и отправленными на сервер. Есть ли какой-нибудь шаг, который я могу предпринять для дальнейшего понимания структуры данных, отправленных с моего устройства на удаленный сервер?

Любые другие советы или случайные идеи были бы очень полезны.

ответ

1

Это правда?

Да.

Есть ли какой-либо шаг, который я могу предпринять для дальнейшего понимания структуры данных, отправленных с моего устройства на удаленный сервер?

Захваченный пакет включает в себя Ethernet Ⅱ заголовка и заголовок IPv4 и UDP-заголовок следующим образом:

Ethernet Ⅱ: from 20:e5:2a:4f:b9:4f (NETGEAR) to 44:80:eb:ea:ef:9b (Motorola) 
IPv4: from 169.55.244.58 to 192.168.1.12, not fragmented 
UDP: from port 14242 to port 48818, payload length=1406 bytes 

Права куска на 3-й линии (т.е. bb 19 43 4f 02 c8 2b a3) является началом данных приложения , Чтобы проанализировать данные приложения, вам нужно знать, какой протокол используется приложением для отправки пакета и узнать протокол.

+0

Спасибо! Это очень полезно. – user508771

+0

«вам нужно знать, какой протокол использует приложение», вы имеете в виду UDP (который мы уже знаем), или вы имеете в виду что-то вроде бережливости, буферов протоколов JSON. Я знаю, что если я напечатаю что-то в приложении и нажму «отправить», он будет отображаться как ascii в теле данных. Поэтому я предполагаю, что данные не находятся в двоичном формате. Как я должен разбираться в протоколе и анализировать полезную нагрузку данных? – user508771

+0

Я имел в виду протокол по UDP. Вероятно, приложение использовало протокол для передачи данных с порта 14242 на порт 48818, а начало данных приложения ('bb 19 43 4f 02 c8 2b a3') на самом деле является началом заголовка протокола. Но поскольку приложение не использовало хорошо известный порт, нет способа узнать, что такое протокол из захваченного пакета. Вам нужно прочитать подробный проектный документ приложения. – kaitoy