iOS Siri 协议

Siri协议

Siri采用https(默认端口443)协议与服务器进行通信,Siri官方服务器地址是https://guzzoni.apple.com

http请求头

ACE /ace HTTP/1.0
Host: guzzoni.apple.com
User-Agent: Assistant(iPhone/iPhone4,1; iPhone OS/5.0/9A334) Ace/1.0
Content-Length: 2000000000
X-Ace-Host: 4620a9aa-88f4-4ac1-a49d-e2012910921     
iPhone/iPhone4,1表示4s,iPhone/iPhone3,1表示4。

截获Siri请求数据包

利用nodejs建立了一个Siri 服务器,可以获取到iphone上Siri发送过来的数据,把所有数据记录到文件后,用Winhex打开

 

 

0x0D 0x0A 0x0D 0x0A 是https请求头结束 请求头是类似http协议,但采用的是ACE方法而不是常用的GET/POST

0xAA 0xCC 0xEE 0x02 这4个字节是数据开始,后面紧跟着的是zlib压缩的数据(Deflate/Inflate)

通过Inflate解压后,得出以下的二进制数据

数据包头是5个字节
03 00 00 00 01 => 03是客户端的ping包,后面的1是包序列,如果客户端发送了大约4-5个包后没收到服务端返回的数据包(04开头),则Siri提示Sorry了。 
02 00 00 02 43 => 02表示二进制的plist数据,02 43转换成10进制后是579,表示后面接着的长度为579字节的数据是一个完整的二进制plist。我们把这段数据复制出来保存到一个plist文件,就可以用plist文件编辑器查看到里面的内容。



class => 包类型 LoadAssistant一般为tls连接后第一个包,向服务器加载Siri Assistant
aceId => 这个是客户端生成的一个标识,服务端返回的数据包以refId来匹配
iphone4上采用Spire直连guzzoni.apple.com,就要取sessionValidationData

如果验证通过,服务器就会返回AssistantLoaded。Siri往服务器发送语音,服务器识别后就返回识别后的文本

 

用Nodejs写了一个取4s siri key的服务器程序,详细教程请到http://www.sirinode.com/ 下载

 

posted on   谷夕  阅读(2287)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?

导航

< 2012年2月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示