Apple的"DVD或CD共享"协议如何工作?

And*_*rew 6 macos networking protocols reverse-engineering

Mac有一个"DVD或CD共享"服务,用于远程访问光驱.(Apple还提供仅实现共享一半的Windows软件,无需读取.)我想使用Linux提供的服务来读取Mac上的光盘.但我找不到任何软件甚至有关协议的信息.我想我会记录我在这里找到的东西,看看别人能想出什么.

我的朋友在他的Mac上启用了"DVD或CD共享".我可以通过zeroconf(使用Avahi)看到该服务.值得注意的是:

Service Type: _odisk._tcp
Address: <hostname>.local/192.168.1.115:49152
Run Code Online (Sandbox Code Playgroud)

搜索"_odisk._tcp",我在"Mac Hacker's Handbook"中找到了提及.你可以在第69和70页找到它.我没有这本书,所以我使用了亚马逊的预览版.它显示了一些基于HTTP的协议的示例.

但是,我无法提出成功的要求.我第一次尝试在zeroconf给出的端口上"GET /",我得到了"401 Unauthorized".我让我的朋友关掉安检.然后,"GET /"返回"404 Not Found".我尝试了书中第一个列表的路径"GET/ods-ask-status?askID = 2",得到"406 Not Acceptable".所以我知道我正在做些什么.但是,我无法通过406.我一直在输入HTTP请求(使用nc),并完全按照书中的跟踪(仅更改主机)进行尝试,并输入各种Accept :和Accept-*:标题.由于亚马逊预览中的跟踪难以阅读,我尝试了其他解释.没运气.(如果有人有这本书,也许他们可以输入这个列表.)

我找不到该协议的其他文档.此时,我应该使用DVD或CD共享两台计算机并嗅探它们,但这对我来说现在很难设置.所以我在这里提出这个问题.也许你可以通过编写这个协议的开源实现来获得名声.;-)

Mar*_*gel 4

github 上有一个服务器实现,它似乎可以完成服务器端的工作: https: //github.com/nightwend/ODSServer

该协议似乎是基于 HTTP 范围请求来访问磁盘映像;然而,它似乎需要特定的 User-Agent: headers 才能工作(恶心!)

似乎也存在支持从服务器内发布 CD/DVD(带有附加信息)的更新版本: https: //github.com/rcknr/ODSServer/tree/dev

  • 发送到的那个存储库已经消失,但它是在 https://github.com/nightwend/ODSServer 上分叉的 (2认同)