Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。

2年前关闭。



Improve this question




我对将AirDrop用作iPad或Windows计算机等设备上的客户端感兴趣。任何人都可以为我指出以Python或C实现AirDrop协议(protocol)的正确方向。对此将提供任何帮助。提前致谢。

最佳答案

为了您或任何尝试进行逆向工程和实现Airdrop的人的利益,这是我发现的内容以及开始工作所要做的事情:

涉及两个步骤,它们可以独立或并行完成。

  • 反向工程物理WLAN ad-hoc网络的创建方式并命名为

  • 为此,请从此处http://istumbler.net/获取iStumbler,并尝试查看在运行空投时是否显示了一个额外的临时网络。我已经尝试了一下,似乎有一个未加密的即席802.11b网络,其名称以“H”开头。 (但是我可能是错的,请自己尝试。)尝试查找空投用来命名或识别网络的模式。尝试从多台Mac上找到它。
  • 对协议(protocol)
  • 进行反向工程

    客户加入WiFi网络后,Airdrop将使用Bonjour检测其他客户。

    首先,如http://osxdaily.com/2011/09/16/enable-airdrop-ethernet-and-unsupported-macs/所述,在您的终端中运行此命令以使工作在没有隐藏的自组织网络的情况下进行:

    默认写com.apple.NetworkBrowser BrowseAllInterfaces 1

    然后重新启动Finder。

    从此处获取Bonjour浏览器:tildesoft.com

    启动Airdrop时,您会发现您的mac广告了“_airdrop._tcp”服务。它还会发布您的Mac正在监听的主机和端口的各种IP地址(每次在Finder中打开Airdrop都会创建一个新的IP地址)。它还发布了计算机的名称以及两个键“ehash”和“phash”以及一个键“flags”(值均为1)。您必须查看这两个哈希是如何生成的以及是否需要。可能是。尝试使用可用的Bonjour库之一在第二台计算机上发布您自己的数据,并查看它们是否显示在Airdrop中(在Finder中)。

    我发现每个客户端公开的TCP服务正在使用SSL连接。服务器证书似乎已链接到您的Apple ID。您可以在钥匙串(keychain)中找到证书。服务器也请求客户端证书。这可能与另一台计算机上的Apple ID证书相同。您将不得不对此进行试验。

    我不知道该SSL连接内使用了什么协议(protocol),并且目前无法访问第二台Mac。您必须与MITM建立连接才能找到(尝试使用Charles和Wireshark)。在任何情况下,它将用于传输用户图标以及协商传输,还可能用于移动实际数据。

    我认为,即使最终只限于具有Apple ID的用户,开放实现此操作也将带来巨大好处-毕竟他们是免费的。

    祝你好运!

    09-27 21:00