Обнюхивать трафик Bonjour между iPhone и Mac - PullRequest
1 голос
/ 29 декабря 2011

Мой конечный результат - попытаться увидеть, как plist отправляется между моим iphone и моим mac (я знаю, что это plist, потому что я вижу bplist00 в hexdump).

У меня есть отправка приложенияданные между моим iphone и моим mac через службу Bonjour.

Я использую tcpdump для захвата трафика и пытаюсь преобразовать hexdump полезной нагрузки в двоичный файл, чтобы затем преобразовать его в текстовый файл plist.

Вот мои шаги:

  1. Убедитесь, что iphone и Mac подключены, подготовьте команду для отправки
  2. Запустите дамп tcp: sudo tcpdump -vSs 0 -A -i en1 -w Dump.pcap 'tcp port 57097' в моей беспроводной сети (я использовал Bonjour Browser , чтобы найти порт, на котором зарегистрирована служба), затем нажмите команду отправки на телефоне.
  3. Преобразование файла pcap в текстовый файл: tshark -V -r Dump.pcap > Dump.txt (конечный результат - это )
  4. Вручную удалите заголовки и другую информацию из текстового файла, так что я просто остался с полезной нагрузкой (теперь у нас есть это в файле)
  5. Сделать обратный шестнадцатеричный дамп, чтобы преобразовать файл вДвоичный файл: xxd -r Dump.txt Dump1.txt
  6. Преобразование двоичного списка в текстовый файл: plutil -convert xml1 Dump1.txt

Однако на шаге 6 происходит сбой: Dump1.txt: Property List error: Conversion of string failed. The string is empty. / JSON error: JSON text did not start with array or object and option to allow fragments not set. (хотя это может иметьбыла ошибка с более раннего шага).И я не уверен, почему он сообщает об ошибках в JSON, когда я просил преобразование XML?

Этот низкоуровневый захват сети не является чем-то, с чем я обычно похож (обычно я выше с fiddler илиЧарльз, но учитывая, что это не через HTTP, мне нужно опуститься вниз по стеку.

Может кто-нибудь сказать мне, правильно ли я делаю, или есть более простой способ сделать это?

Как я могу захватить список отправленных на мой Mac?

1 Ответ

0 голосов
/ 06 ноября 2015

Полагаю, ваша проблема где-то в шаге 4, где вы вручную редактируете запрос.Я просто пробовал что-то подобное, используя Charles вместо tcpdump, и получал точно такую ​​же ошибку с полезной нагрузкой, которая, как я знал, содержала plist.Не уверен, почему мы получили сообщение об ошибке JSON.

Мне удалось разрешить его путем непосредственного сохранения тела запроса двоичного кода plist из Charles в файл (Charles имеет опцию меню «Save Request»), затемзапустите на нем plutil -convert xml1 FILENAME -o -, и все заработало.

...