Вопрос по c, python – Реализация протокола AirDrop [закрыто]

20

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

Связанные с:stackoverflow.com/questions/5220136/… Dan D.

Ваш Ответ

1   ответ
52

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

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

Reverse-engineer the way the physical WLAN ad-hoc network is created and named

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

Reverse-engineer the protocols

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

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

по умолчанию написать com.apple.NetworkBrowser BrowseAllInterfaces 1

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

Загрузите браузер Bonjour отсюда: tildesoft.com

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

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

Я не знаю, какой протокол используется в этом соединении SSL, и у меня нет доступа ко второму компьютеру Mac для расследования в настоящее время. Вы должны будете MITM соединение, чтобы выяснить (попробуйте Чарльз и Wireshark). В любом случае он будет использоваться для передачи значка пользователя, а также для согласования передачи и, возможно, также для перемещения фактических данных.

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

Удачи!

Error: User Rate Limit Exceeded petschekr
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы