小智 58
为了您或任何试图逆向工程和实施Airdrop的人的利益,我发现了以下内容以及您需要做些什么才能开始:
涉及两个步骤,它们可以独立或并行完成.
要做到这一点,从这里获取iStumbler http://istumbler.net/并尝试查看在空投运行时是否会显示额外的ad-hoc网络.我曾经简单地试过,似乎有一个未加密的ad-hoc 802.11b网络,它的名字以"H"开头.(但我可能是错的,请亲自尝试一下.)尝试找到Airdrop用来命名或识别网络的模式.尝试使用多台Mac来查找.
一旦客户加入了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浏览器:tildesoft.com
启动Airdrop时,您会发现您的mac广告服务"_airdrop._tcp".它还会发布主机和端口的各种IP地址(每次在Finder中打开Airdrop时都会创建一个新的地址),你的mac正在监听它.它还发布了计算机的名称以及两个键"ehash"和"phash"以及一个值为1的键"标志".您必须查看如何生成这两个哈希值以及是否需要这些哈希值.可能他们是.尝试使用其中一个可用的Bonjour库在第二台计算机上发布您自己的数据,看看它们是否出现在Airdrop中(在Finder中).
我发现每个客户端公开的TCP服务都使用SSL连接.服务器证书似乎与您的Apple ID相关联.您可以在钥匙串中找到证书.服务器还请求客户端证书.这可能与其他计算机上的Apple ID证书相同.你将不得不尝试这个.
我不知道在SSL连接中使用了什么协议,并且当前无法访问第二台Mac进行调查.你将不得不MITM连接找出(尝试查尔斯和Wireshark).在任何情况下,它都将用于传输用户图标以及协商传输,还可能用于移动实际数据.
我认为开放式实现这一点会带来很大的好处,即使它最终只限于拥有Apple ID的用户 - 毕竟它们是免费的.
祝好运!