Внедрение протокола AirDrop

Я заинтересован в внедрении AirDrop в качестве клиента на устройстве, таком как iPad или Windows. Может ли кто-нибудь указать мне в правильном направлении для реализации протокола AirDrop в Python или C. Любая помощь по этому поводу будет очень признательна. Заранее спасибо.

  • Доступ к беспроводным управляющим фреймам 802.11 от Python
  • Как получить Python, чтобы узнать, к чему подключен Wifi?
  • Невозможно понять формат данных 802.11 Data Frame в файле PcapNG
  • Как подключиться к сети Wi-Fi с помощью Python?
  • как я могу отправлять сырые пакеты через Wi-Fi без сети?
  • Список всех беспроводных сетей Python для ПК
  • Расчет расстояния AP, включая отношение сигнал / шум
  • One Solution collect form web for “Внедрение протокола AirDrop”

    В интересах вас или любого, кто попытается перепроектировать и внедрить Airdrop, вот что я нашел и что вам нужно будет сделать, чтобы начать:

    Есть два этапа, и они могут выполняться независимо или параллельно.

    1. Обратный инженер так, как создается специальная сеть физической WLAN и называется

    Чтобы сделать это, откройте iStumbler отсюда http://istumbler.net/ и попробуйте посмотреть, появляется ли дополнительная ad-hoc сеть при запуске airdrop. Я кратко попробовал, и, похоже, есть незашифрованная, ad-hoc сеть 802.11b, ее название начинается с «H». (Но я могу ошибаться, попробуйте сами.) Попробуйте найти шаблон, используемый Airdrop для обозначения или идентификации сети. Попробуйте несколько компьютеров Mac, чтобы найти это.

    1. Обратный-инженер протоколов

    После того, как клиенты присоединились к сети WiFi, Airdrop обнаружит других клиентов, использующих Bonjour.

    Во-первых, как описано в http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/ , запустите это в своем терминале, чтобы заставить все работать без скрытой сети ad-hoc:

    defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1

    Затем перезапустите Finder.

    Получить Bonjour Browser отсюда: tildesoft.com

    При запуске Airdrop вы обнаружите, что ваш mac рекламирует услугу «_airdrop._tcp». Он также публикует различные IP-адреса хоста и порта (новый создается каждый раз, когда Airdrop открывается в Finder), который ваш Mac прослушивает. Он также публикует имя компьютера, а также два ключа «ehash» и «phash» и один ключ «флаги», который имеет значение 1. Вам нужно будет посмотреть, как генерируются эти два хэша, и если они требуются , Наверное, они есть. Попробуйте опубликовать свои собственные данные на втором компьютере, используя одну из доступных библиотек Bonjour, и посмотрите, отображаются ли они в Airdrop (в Finder).

    Я обнаружил, что служба TCP, предоставляемая каждым клиентом, использует SSL-соединение. Кажется, что сертификат сервера связан с вашим Apple ID. Вы можете найти сертификат в Keychain. Сервер также запрашивает сертификат клиента. Вероятно, это тот же сертификат Apple ID с другого компьютера. Вам придется поэкспериментировать с этим.

    Я не знаю, какой протокол используется внутри этого SSL-соединения и не имеет доступа ко второму Mac для исследования в настоящее время. Вам нужно ПОМНИТЬ соединение, чтобы узнать (попробуйте Чарльз и Вирешарк). В любом случае он будет использоваться для передачи значка пользователя, а также для согласования передачи и, возможно, для перемещения фактических данных.

    Я думаю, что открытая реализация этого будет очень полезной, даже если она окажется в конечном итоге ограничена пользователями с Apple ID – они, в конце концов, свободны.

    Удачи!

    Interesting Posts
    Python - лучший язык программирования в мире.