实施AirDrop协议

发布于 2021-01-29 15:10:55

已关闭 。这个问题需要更加集中。它当前不接受答案。


想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。

去年关闭。

改善这个问题

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

关注者
0
被浏览
61
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

    1. 对物理WLAN自组织网络的创建和命名方式进行反向工程

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

    1. 对协议进行逆向工程

    客户加入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。您可以在钥匙串中找到证书。服务器也请求客户端证书。这可能与另一台计算机上的Apple ID证书相同。您将不得不对此进行试验。

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

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

    祝好运!



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看