簡體   English   中英

嗅探iPhone和Mac之間的Bonjour通信

[英]Sniffing bonjour traffic between iPhone and Mac

我的最終結果是嘗試查看在iPhone和Mac之間發送的plist(我知道它是plist,因為我可以在hexdump中看到bplist00 )。

我有一個應用程序,通過Bonjour服務將iPhone之間的數據發送到Mac。

我使用tcpdump捕獲流量,並嘗試將有效負載hexdump轉換為二進制,然后將其轉換為plist文本文件。

這是我的步驟:

  1. 確保iPhone和Mac已連接,並准備發送命令
  2. 運行tcp dump: 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. 將二進制plist轉換為文本文件: 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. 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. (盡管這可能是先前步驟中的錯誤)。 當我要求進行XML轉換時,我不確定為什么它會在JSON上報告錯誤?

我通常不喜歡這種低級的網絡捕獲功能(我通常比較喜歡提琴手或查爾斯,但是考慮到這不是通過HTTP進行的,因此我需要降低堆棧的范圍)。

有人可以告訴我我做的是否正確,或者是否有更簡單的方法來做到這一點?

我該如何捕獲正在發送到Mac的plist?

我的猜測是您的問題在第4步附近,您在其中手動編輯了請求。 我只是嘗試使用Charles而不是tcpdump進行類似的操作,並且使用我知道包含plist的有效負載獲得了完全相同的錯誤。 不知道為什么我們收到JSON錯誤消息。

通過將二進制編碼的plist請求主體直接從Charles保存到文件(Charles具有“ Save Request”菜單選項),然后在其上運行plutil -convert xml1 FILENAME -o - ,我能夠解決該問題,並且它僅能正常工作精細。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM