案例

OWL:开源的 Apple 无线直连(AWDL)实现

以用户态 C 守护进程在 Linux 和 macOS 上重新实现 Apple 无线直连(AWDL)——Apple 设备用于 AirDrop 等点对点连接的专有 Wi-Fi 自组网协议;README 称其为达姆施塔特工业大学 SEEMOO 实验室 Open Wireless Link 项目逆向工程的成果。OWL 执行主节点选举,同步可用窗口和信道序列,解析并构造 AWDL 动作帧与数据帧,并提供带链路本地 IPv6 地址的 awdl0 虚拟网络接口,使未经修改的 IPv6 程序(如 SEEMOO 的 AirDrop 客户端 OpenDrop)能够与 Apple 设备通信。作者在 MobiCom 2018 论文中描述了还原出的协议。

目标
协议
类别
独立重建案例
关联
独立重建项目
来源复核于

使用条件与局限

  • 仓库已归档;README 称 OWL 是实验性软件、已不再维护,并未支持 AWDL 的全部功能,可能与之后的 AWDL 版本不兼容,同时声明与 Apple 无关联、未获其认可。最后一次代码改动是 2022 年 1 月修复缓冲区越界读取;2026-08-17 和 2026-10-12 的提交只是替换了指向原 owlink 网站的链接,README 说明该网站已与本项目无关。仓库没有标签或发布版本。
  • 需要支持主动监听模式和帧注入、且可直接访问的 Wi-Fi 网卡:作者使用 Atheros AR9280 开发和测试;不支持未做 USB 或 PCIe 直通的虚拟机,也不支持 WSL。OWL 需以 sudo 在一个无线接口上运行,运行后该接口只用于 AWDL,因此不能同时连接接入点;可用信道为 6、44 和 149,具体取决于当地的无线电管理规定,无法使用所选信道时 OWL 只能监听。
  • 使用 CMake 3.5+ 和 C 编译器构建,依赖 libpcap、libev,Linux 上还需 libnl;macOS 上使用 CoreWLAN,并需要 tuntaposx 等 tun/tap 驱动。googletest 和 radiotap 库以 git 子模块引入。ubuntu-latest 与 macos-latest 上的工作流会构建代码并运行 googletest 测试,覆盖帧缓冲区解析、选举、对端管理和同步;与 Apple 设备的互通情况来自作者报告。
  • 构建时不需要任何 Apple 文件,仓库只包含源代码、测试、构建文件和一张架构图;实际使用需要附近有启用 AWDL 的 Apple 设备。README 列出的已知不足包括:选举指标和计数器取静态值;信道序列在启动时固定,因为动态调整需要进一步了解 Apple 的实现;不能同时连接接入点。README 还引用了该团队的 MobiCom 2018 协议论文及演示,以及一篇 USENIX Security 2019 的 AWDL 安全分析论文。
  • GPL-3.0 许可(COPYING);AWDL 和 AirDrop 仍是 Apple 的专有技术。本次审阅未使用 Wi-Fi 硬件或 Apple 设备构建或运行;所审来源未确立任何 AI 或 REA 使用。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · seemoo-lab/owl · 修订 0ee3263
  2. CMakeLists.txt GitHub · seemoo-lab/owl · 修订 0ee3263
  3. .gitmodules GitHub · seemoo-lab/owl · 修订 0ee3263
  4. daemon/owl.c GitHub · seemoo-lab/owl · 修订 0ee3263
  5. src/frame.h GitHub · seemoo-lab/owl · 修订 0ee3263
  6. tests GitHub · seemoo-lab/owl · 修订 0ee3263
  7. .github/workflows/test.yml GitHub · seemoo-lab/owl · 修订 0ee3263
  8. COPYING GitHub · seemoo-lab/owl · 修订 0ee3263
  9. https://doi.org/10.1145/3241539.3241566

同分区更多条目:协议

协议分区全部 66 项资源协议案例(26)