2012-05-21 15 views
17

Ich bin daran interessiert, AirDrop als Client auf einem Gerät wie einem iPad oder Windows-Computer zu implementieren. Kann jemand mich in die richtige Richtung für die Implementierung des AirDrop-Protokolls in Python oder C zeigen. Jede Hilfe zu diesem Thema würde sehr geschätzt werden. Danke im Voraus.Implementierung des AirDrop-Protokolls

+0

In Verbindung stehende: http://StackOverflow.com/Questions/5220136/How-the-New-Mac-OS-Airdrop-works –

Antwort

43

Zum Nutzen Sie oder jemand, der Reverse Engineering werden versuchen, und Airdrop zu implementieren, hier ist was ich gefunden habe und was werden Sie anfangen zu tun haben, zu:

Es gibt zwei Schritte beteiligt und sie können unabhängig oder parallel durchgeführt werden.

  1. Reverse-Engineering, wie die physikalische WLAN-Ad-hoc-Netzwerk erstellt und benannt

Um dies zu tun, bekommen iStumbler von hier http://istumbler.net/ und versuchen zu sehen, ob eine zusätzliche Ad-hoc-Netzwerk zeigt sich wenn der Abwurf läuft. Ich habe es kurz versucht und es scheint ein unverschlüsseltes, ad-hoc 802.11b Netzwerk zu geben, dessen Name mit einem "H" beginnt. (Aber ich könnte mich irren, versuchen Sie es selbst.) Versuchen Sie, das von Airdrop verwendete Muster zu finden, um das Netzwerk zu benennen oder zu identifizieren. Versuchen Sie es mit mehreren Macs, um das zu finden.

  1. Reverse-Engineering die Protokolle

Sobald Kunden das WiFi-Netzwerk beigetreten sind, Airdrop andere Clients Bonjour erkennt.

Zuerst wird, wie bei http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/ beschrieben, führen Sie dies in Ihrem Terminal-Dinge zum Laufen zu bringen ohne das versteckte Ad-hoc-Netzwerk:

defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1

Dann Finder neu starten .

den Bonjour-Browser von hier: tildesoft.com

Wenn Airdrop Sie beginnen werden feststellen, dass Ihr Mac einen Dienst "_airdrop._tcp" wirbt. Es veröffentlicht auch die verschiedenen IP-Adressen des Hosts und des Ports (ein neuer wird jedes Mal erstellt, wenn Airdrop im Finder geöffnet wird), den Ihr Mac überwacht. Es veröffentlicht auch den Namen des Computers sowie zwei Schlüssel "ehash" und "phash" und einen Schlüssel "flags", der den Wert 1 hat. Sie müssten schauen, wie diese zwei Hashes erzeugt werden und ob sie benötigt werden . Wahrscheinlich sind sie es. Versuchen Sie, Ihre eigenen Daten auf einem zweiten Computer mit einer der verfügbaren Bonjour-Bibliotheken zu veröffentlichen und schauen Sie, ob sie in Airdrop (im Finder) angezeigt werden.

Ich habe festgestellt, dass der TCP-Dienst von jedem Client eine SSL-Verbindung verwendet. Das Serverzertifikat scheint mit Ihrer Apple ID verknüpft zu sein. Sie können das Zertifikat im Schlüsselbund finden. Ein Client-Zertifikat wird ebenfalls vom Server angefordert. Dies ist wahrscheinlich nur das gleiche Apple ID-Zertifikat von dem anderen Computer. Du wirst damit experimentieren müssen.

Ich weiß nicht, welches Protokoll innerhalb dieser SSL-Verbindung verwendet wird, und habe derzeit keinen Zugriff auf einen zweiten Mac, um es zu untersuchen. Sie müssen MITM die Verbindung, um herauszufinden (versuchen Sie Charles und Wireshark). In jedem Fall wird es verwendet, um das Benutzersymbol zu übertragen sowie die Übertragung auszuhandeln und möglicherweise auch die tatsächlichen Daten zu verschieben.

Ich denke, eine offene Implementierung wäre von großem Vorteil, auch wenn es sich letztendlich herausstellen würde, dass sie sich auf Benutzer mit einer Apple ID beschränkt - sie sind doch kostenlos.

Viel Glück!

+0

Vielen Dank. Tolle Tipps, um loszulegen. Ich bin mit Bonjour Browser so weit gegangen und habe danach aufgegeben. – petschekr

+0

Danke für die hilfreiche Antwort, interessiert mich auch –

Verwandte Themen