Estoy interesado en implementar AirDrop como cliente en un dispositivo como un iPad o una computadora con Windows. ¿Alguien puede señalarme en la dirección correcta para implementar el protocolo AirDrop en Python o C. Cualquier ayuda sobre esto sería muy apreciada. Gracias por adelantado.Implementación del protocolo AirDrop
Respuesta
Para el beneficio de usted o cualquier persona que trate de realizar ingeniería inversa e implementar lanzamiento desde el aire, aquí es lo que he encontrado y lo que tendrá que hacer para empezar:
hay dos pasos involucrados y pueden hacerse de forma independiente o en paralelo.
- ingeniería inversa de la forma en que se creó y nombró
Para ello, obtener iStumbler de aquí http://istumbler.net/ y tratar de ver si una red ad-hoc adicional aparece la red ad-hoc WLAN física cuando se está ejecutando Airdrop. Lo he intentado brevemente y parece que hay una red 802.11b no encriptada y ad-hoc, cuyo nombre comienza con una "H". (Pero podría estar equivocado, intente esto usted mismo). Intente encontrar el patrón utilizado por Airdrop para nombrar o identificar la red. Intenta con múltiples Macs para encontrar esto.
- ingeniería inversa de los protocolos
vez que los clientes han unido a la red Wi-Fi, lanzamiento desde el aire detectará otros clientes mediante Bonjour.
En primer lugar, tal como se describe en http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/, ejecute esto en su terminal para que todo funcione sin la red oculta ad-hoc:
defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1
A continuación, reinicie Buscador .
Consigue el navegador Bonjour desde aquí: tildesoft.com
Al iniciar lanzamiento desde el aire se encuentra que su Mac anuncia un servicio de "_airdrop._tcp". También publica las diversas direcciones IP del host y el puerto (se crea una nueva cada vez que se abre Airdrop en Finder) que su mac está escuchando. También publica el nombre de la Computadora así como dos claves "ehash" y "phash" y una clave "banderas" que tiene un valor de 1. Tendría que ver cómo se generan estos dos hashes y si son necesarios. . Probablemente lo sean Intente publicar sus propios datos en una segunda computadora utilizando una de las bibliotecas Bonjour disponibles y fíjese si aparecen en Airdrop (en Finder).
He encontrado que el servicio TCP expuesto por cada cliente está utilizando una conexión SSL. El certificado del servidor parece estar vinculado a tu ID de Apple. Puedes encontrar el certificado en el llavero. El servidor también solicita un certificado de cliente. Probablemente sea el mismo certificado de identificación de Apple de la otra computadora. Tendrás que experimentar con esto.
No sé qué protocolo se usa dentro de esa conexión SSL y no tengo acceso a una segunda Mac para investigar actualmente. Tendrás que MITMAR la conexión para averiguarlo (prueba con Charles y Wireshark). En cualquier caso, se usará para transferir el icono del usuario, así como para negociar la transferencia y posiblemente también para mover los datos reales.
Creo que una implementación abierta de esto sería de gran beneficio, incluso si al final se limitara a usuarios con una ID de Apple, son gratis después de todo.
¡Buena suerte!
Muchas gracias. Buenos consejos para comenzar. Llegué tan lejos como monitorear con el navegador Bonjour pero renuncié después de eso. – petschekr
Gracias por la útil respuesta, también estoy interesado en esto –
- 1. Implementación del protocolo Bittorrent
- 2. virar un protocolo de NSObject a una implementación del protocolo
- 3. Excepción del protocolo WCF
- 4. Comprensión del protocolo ZMODEM
- 5. ¿Cómo proporciono una implementación predeterminada para un protocolo Objective-C?
- 6. Consejos sobre el diseño/implementación de un protocolo propio
- 7. rendimiento del protocolo de Subversion
- 8. la aplicación del Protocolo UIActivityItemSource
- 9. Al utilizar las objeciones, la implementación del protocolo personalizado se estrella con el selector no reconocido
- 10. Existe una buena implementación en C de Buffers del Protocolo de Google
- 11. Método estático del protocolo Objective-C?
- 12. ¿AJAX empuja una aberración del protocolo HTTP?
- 13. ¿Puede el servicio web RESTful beneficiarse del protocolo SPDY?
- 14. Implementación del gráfico direccionado
- 15. Implementación del servidor Push
- 16. Implementación del repositorio Xml
- 17. Implementación del contexto
- 18. Implementación del algoritmo C5?
- 19. Android y Protocolo Buffers
- 20. ¿El protocolo uwsgi es más rápido que el protocolo http?
- 21. protocolo sin estado y protocolo con estado
- 22. Implementación del patrón de decorador
- 23. Implementación gratuita del carrusel WPF
- 24. Implementación del patrón de adaptador
- 25. Implementación del algoritmo Bentley-Ottmann
- 26. Implementación del algoritmo de Dijkstra
- 27. Implementación del patrón de repositorio
- 28. Implementación del temporizador de JavaScript
- 29. implementación del proyecto github php
- 30. Implementación del navegador EcmaScript 5
Relacionado: http://stackoverflow.com/questions/5220136/how-the-new-mac-os-airdrop-works –