我的最终结果是尝试看到我的iphone(我知道它是一个plist,因为我可以在hexdump中看到bplist00
)在我的iphone &之间发送的plist。嗅探iPhone和Mac之间的bonjour流量
我有一个应用程序通过bonjour服务在我的iphone和我的mac之间发送数据。
我使用tcpdump捕获流量并尝试将负载hexdump转换为二进制文件,然后将其转换为plist文本文件。
这里是我的步骤:
- 确保iPhone和Mac连接,有命令准备好发送
- 运行TCP转储:
sudo tcpdump -vSs 0 -A -i en1 -w Dump.pcap 'tcp port 57097'
我的无线网络上(我用Bonjour Browser找到哪个端口该服务已注册),然后点击电话上的发送命令。 - 的PCAP文件转换为文本文件:
tshark -V -r Dump.pcap > Dump.txt
(在end result is this) - 手动删除从文本文件的标题和其他信息。这样,我刚刚离开与有效载荷(我们现在have this文件中)
- 做一个反向的十六进制转储文件转换成二进制:
xxd -r Dump.txt Dump1.txt
- 转换二进制的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.
(虽然它ç应该是前一步的错误)。我不确定为什么当我要求进行XML转换时,它为什么会报告JSON错误?
这种低级别的网络捕获并不是我通常所说的(我通常比较喜欢fiddler或charles,但考虑到这不是通过HTTP,我需要降低堆栈)。
有人可以告诉我,如果我做的是正确的,或者是否有更简单的方法来做到这一点?
我该如何去捕获发送给我的Mac的plist?