23

iPadやWindowsコンピューターなどのデバイスにクライアントとしてAirDropを実装することに興味があります。誰かがPythonまたはCのいずれかでAirDropプロトコルを実装するための正しい方向に私を向けることができますか?これに関する助けをいただければ幸いです。前もって感謝します。

4

1 に答える 1

59

あなたまたはAirdropをリバースエンジニアリングして実装しようとする人のために、私が見つけたものと、始めるためにあなたがしなければならないことは次のとおりです。

関係する2つのステップがあり、それらは独立してまたは並行して実行できます。

  1. 物理WLANアドホックネットワークの作成方法と名前の付け方をリバースエンジニアリングする

これを行うには、ここhttp://istumbler.net/からiStumblerを入手し、airdropの実行中に追加のアドホックネットワークが表示されるかどうかを確認してください。簡単に試してみましたが、暗号化されていないアドホック802.11bネットワークがあり、その名前は「H」で始まっています。(しかし、私は間違っている可能性があります。これを自分で試してください。)ネットワークに名前を付けたり識別したりするためにAirdropが使用するパターンを見つけてください。これを見つけるために複数のMacから試してみてください。

  1. プロトコルをリバースエンジニアリングする

クライアントがWiFiネットワークに参加すると、AirdropはBonjourを使用して他のクライアントを検出します。

まず、http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/で説明されているように、これをターミナルで実行して、隠されたアドホックネットワークなしで動作させます。

デフォルトの書き込みcom.apple.NetworkBrowserBrowseAllInterfaces1

次に、Finderを再起動します。

ここからBonjourブラウザを入手してください:tildesoft.com

Airdropを起動すると、Macがサービス「_airdrop._tcp」をアドバタイズしていることがわかります。また、Macがリッスンしているホストとポート(AirdropがFinderで開かれるたびに新しいIPアドレスが作成されます)のさまざまなIPアドレスを公開します。また、コンピューターの名前と、値が1の2つのキー「ehash」と「phash」および1つのキー「flags」を公開します。これらの2つのハッシュがどのように生成され、必要かどうかを確認する必要があります。 。おそらくそうです。利用可能なBonjourライブラリの1つを使用して、2台目のコンピューターで独自のデータを公開し、Airdrop(Finder)に表示されるかどうかを確認してください。

各クライアントによって公開されているTCPサービスがSSL接続を使用していることがわかりました。サーバー証明書はAppleIDにリンクされているようです。証明書はキーチェーンにあります。クライアント証明書もサーバーから要求されます。これはおそらく、他のコンピュータからの同じAppleID証明書です。これを試してみる必要があります。

そのSSL接続内でどのプロトコルが使用されているかわかりません。また、現在調査する2台目のMacにアクセスできません。接続を確認するには、接続をMITMする必要があります(CharlesとWiresharkを試してください)。いずれの場合も、ユーザーアイコンの転送、転送のネゴシエーション、場合によっては実際のデータの移動にも使用されます。

これをオープンに実装することは、最終的にApple IDを持つユーザーに限定されることが判明したとしても、非常に有益だと思います。結局、彼らは無料です。

幸運を!

于 2012-08-03T11:23:58.973 に答える