私の最終結果は、私のiPhoneと私のMacの間で送信されているplistを試してみることです(bplist00
hexdumpで見ることができるので、plistであることはわかっています)。
bonjour サービスを介して iPhone から Mac にデータを送信するアプリがあります。
tcpdump を使用してトラフィックをキャプチャし、ペイロードの hexdump をバイナリに変換してから、plist テキスト ファイルに変換します。
私の手順は次のとおりです。
- iPhoneとMacが接続されていることを確認し、コマンドを送信する準備をしてください
sudo tcpdump -vSs 0 -A -i en1 -w Dump.pcap 'tcp port 57097'
ワイヤレス ネットワークでtcp dump: を実行し ( Bonjour Browserを使用して、サービスが登録されているポートを見つけました)、電話で send コマンドを実行します。- pcap ファイルをテキスト ファイルに変換します
tshark -V -r Dump.pcap > Dump.txt
(最終結果は次のようになります) 。 - テキスト ファイルからヘッダーやその他の情報を手動で削除して、ペイロードだけが残るようにします (これがファイルに含まれています)。
- ファイルをバイナリに変換するためにリバース 16 進ダンプを実行します。
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 でエラーが報告される理由がわかりません。
この低レベルのネットワーク キャプチャは、通常は似たようなものではありません (通常、私はフィドラーやチャールズで上位にいますが、これが HTTP 経由ではないことを考えると、スタックを下位に移動する必要があります)。
私がやっていることが正しいかどうか、またはこれを行う簡単な方法があるかどうかを誰かに教えてもらえますか?
Mac に送信されている plist をキャプチャするにはどうすればよいですか?