Wdrażanie protokołu zrzutu powietrza

Interesuje mnie wdrożenie AirDrop jako klienta na urządzeniu takim jak iPad lub komputer z systemem Windows. Czy ktoś może wskazać mi właściwy kierunek implementacji protokołu AirDrop w Pythonie lub C. Każda pomoc w tym zakresie byłaby bardzo mile widziana. Z góry dzięki.

Author: petschekr, 0000-00-00

1 answers

Z korzyścią dla Ciebie lub każdego, kto spróbuje inżynierii wstecznej i wdrożyć Airdrop, oto co znalazłem i co będziesz musiał zrobić, aby zacząć:

Istnieją dwa kroki, które mogą być wykonywane niezależnie lub równolegle.

    Dzięki temu, że sieć ad-hoc WLAN jest tworzona i nazywana przez użytkownika]}

Aby to zrobić, pobierz iStumbler stąd http://istumbler.net / i spróbuj sprawdzić, czy dodatkowa sieć ad-hoc pojawi się, gdy zrzut działa. Krótko próbowałem i wydaje się, że istnieje niezaszyfrowana, ad-hoc sieć 802.11 b, jej nazwa zaczyna się od "H". (Ale mogę się mylić, spróbuj sam.) Spróbuj znaleźć wzór używany przez Airdrop do nazwania lub identyfikacji sieci. Spróbuj znaleźć to z wielu komputerów Mac.

  1. inżynieria odwrotna protokołów

Gdy klienci dołączą do Sieci WiFi, Airdrop wykryje innych klientów korzystających z Bonjour.

Po pierwsze, zgodnie z opisem na http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/, uruchom to w swoim terminalu, aby wszystko działało bez ukrytej sieci ad-hoc:

Domyślnie zapisuje com.jabłko.NetworkBrowser BrowseAllInterfaces 1

Następnie uruchom ponownie Finder.

Pobierz przeglądarkę Bonjour stąd: tildesoft.com

Podczas uruchamiania Airdrop zobaczysz, że Twój mac reklamuje usługę " _airdrop._tcp". Publikuje również różne adresy IP host i port (nowy jest tworzony za każdym razem, gdy Airdrop jest otwarty w Finderze), na którym komputer Mac nasłuchuje. Publikuje również nazwę komputera, a także dwa klucze "ehash" i "phash" oraz jeden klucz "flags", który ma wartość 1. Trzeba by spojrzeć, jak te dwa hasze są generowane i czy są one wymagane. Pewnie tak. Spróbuj opublikować własne dane na drugim komputerze, korzystając z jednej z dostępnych bibliotek Bonjour i sprawdź, czy pojawiają się one w Airdrop (w Finderze).

I okazało się, że usługa TCP ujawniona przez każdego klienta używa połączenia SSL. Certyfikat serwera wydaje się być powiązany z Twoim Apple ID. Certyfikat można znaleźć w Pęku Kluczy. Certyfikat klienta jest również wymagany przez serwer. Jest to prawdopodobnie ten sam certyfikat Apple ID z drugiego komputera. Będziesz musiał z tym eksperymentować.

Nie wiem jaki protokół jest używany wewnątrz tego połączenia SSL i nie mam dostępu do drugiego Maca do zbadania obecnie. Będziesz musiał MITM połączenie, aby dowiedzieć się (spróbuj Charles I Wireshark). W każdym przypadku będzie on używany do przesyłania ikony użytkownika, a także negocjowania transferu i ewentualnie również do przenoszenia rzeczywistych danych.

Myślę, że otwarta implementacja tego rozwiązania byłaby bardzo korzystna, nawet gdyby ostatecznie okazała się ograniczona do użytkowników z Apple ID - w końcu są wolni.

Powodzenia!

 47
Author: jroith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-03 11:23:58