Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。
6年前关闭。
Improve this question
我的项目是从Android设备中获取解密的Airplay Mirrorred h.264屏幕数据。
因为我对类似AES的东西一无所知...所以我跳过了我的iPad和AppleTV之间的全编码数据的全过程。
以"Unofficial Airplay Protocol"开头。
类似于序列,我从iPad询问“fp-setup”。
检查AirTunesController source code很有帮助,该代码给了我很多提示。因此,我从iPad,AppleTV抓取了“FPLY”启动二进制文件。刚刚回复我的iPad,“fp-setup”步骤就完成了!
顺序是..
从iPad收到FPLY311,
我回答了FPLY312,
从iPad收到FPLY313,
我回答了FPLY314 ..然后,“POST / stream”出现了一些二进制参数列表(bplist)。
看起来像..(从我的adb logcat捕获)
D /服务器(432):AIRPLAY镜像服务器:检测到新连接
D /服务器(432):AIRPLAY服务器:添加了新连接
D /服务器(432):BReNTT:/stream.xml
D /服务器(432):BReNTT:/stream.xml >>获取
D / Server(432):BReNTT:响应536字节的内容
D /服务器(432):BReNTT:/ fp-setup,主体大小:16
D /服务器(432):0x46 0x50 0x4c 0x59 0x03 0x01 0x01 0x00 0x00 0x00 0x00 0x04 0x02 0x00 0x03 0xbb
D /服务器(432):BReNTT:/ fp-setup >> POST >> 311
D / Server(432):BReNTT:响应257字节的内容
D /服务器(432):BReNTT:/ fp-setup,正文大小:164
D /服务器(432):0x46 0x50 0x4c 0x59 0x03 0x01 0x03 0x00 0x00 0x00 0x00 0x98 0x01 0x8f 0x1a 0x9c
D /服务器(432):0x7d 0x0a 0xf2 0x57 0xb3 0x1f 0x21 0xf5 0xc2 0xd2 0xbc 0x81 0x4c 0x03 0x2d 0x45
D /服务器(432):0x78 0x35 0xad 0x0b 0x06 0x25 0x05 0x74 0xbb 0xc7 0xab 0x4a 0x58 0xcc 0xa6 0xee
D /服务器(432):0xad 0x2c 0x91 0x1d 0x7f 0x3e 0x1e 0x7e 0xd4 0xc0 0x58 0x95 0x5d 0xff 0x3d 0x5c
D /服务器(432):0xee 0xf0 0x14 0x38 0x7a 0x98 0x5b 0xdb 0x34 0x99 0x50 0x15 0xe3 0xdf 0xbd 0xac
D /服务器(432):0xc5 0x60 0x47 0xcb 0x92 0x6e 0x09 0x3b 0x13 0xe9 0xfd 0xb5 0xe1 0xee 0xe3 0x17
D /服务器(432):0xc0 0x18 0xbb 0xc8 0x7f 0xc5 0x45 0x3c 0x76 0x71 0x64 0x7d 0xa6 0x86 0xda 0x3d
D /服务器(432):0x56 0x48 0x75 0xd0 0x3f 0x8a 0xea 0x9d 0x60 0x09 0x2d 0xe0 0x61 0x10 0xbc 0x7b
D /服务器(432):0xe0 0xc1 0x6f 0x39 0x1c 0x36 0x9c 0x75 0x34 0x4a 0xe4 0x7f 0x33 0xac 0xfc 0xf1
D /服务器(432):0x0e 0x63 0xa9 0xb5 0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4 0x9e 0x4b 0xe9 0x67
D /服务器(432):0xc5 0x06 0x7f 0x2a
D /服务器(432):BReNTT:/ fp-setup >> POST >> 313
D /服务器(432):BReNTT:正在响应...
D /服务器(432):0x46 0x50 0x4c 0x59 0x03 0x01 0x04 0x00 0x00 0x00 0x00 0x14 0x0e 0x63 0xa9 0xb5
D /服务器(432):0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4 0x9e 0x4b 0xe9 0x67 0xc5 0x06 0x7f 0x2a
D / Server(432):BReNTT:响应142字节的内容
D /服务器(432):BReNTT:/ stream >> POST !!内容长度为750
最终我得到了列表..与Param1和Param2。
它们分别是AES密钥和AES初始化向量数据,分别为72个字节和16个字节。
而且,突然从同一个端口7100,iPad的屏幕二进制数据连续传给我。
密钥:deviceInfoTime值= -422009852.719235
密钥:macAddress值= 64:20:0C:EF:DF:81
密钥:param1是Binary类型。
BReNTT-Debug(432):46 50 4C 59 01 02 01 00 00 00 00 3C 00 00 00 00
BReNTT-Debug(432):88 E4 F8 2C 81 78 C1 8B 47 51 AC 24 B2 7C 0C 2A
BReNTT-Debug(432):00 00 00 10 C8 99 DC 69 65 C1 08 1D E6 A9 D9 66
BReNTT-Debug(432):E2 BA 3E 34 54 8C DB C6 51 C3 22 DB 18 DC 22 F5
BReNTT-Debug(432):8F E1 54 A6 0A EC EE 18
密钥:sessionID值= -1483478994
密钥:deviceID值= 110088818777987
密钥:connectTime值= 0.000093
密钥:版本值= 200.54
密钥:latencyMs值= 90
密钥:fpsInfo类型= 4
密钥:authTime值= 422009852.735252
密钥:prepareTime值= 0.004542
密钥:configTime值= 0.004692
密钥:resolveDNSTime值= 0.008402
密钥:timestampInfo type = 4
密钥:param2是Binary类型。
BReNTT-Debug(432):66 A7 5D 63 6D 80 C8 30 19 95 2A EC 2D D7 2F 1C
和..
这是我想问你的问题。
根据非官方的Airplay协议,
如果存在可选的Param1和Param2,则对屏幕数据进行加密,对吗?
如何处理来自我的iPad的这72个字节和16个字节的AES数据以解密h.264屏幕数据?
谢谢。
想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。
6年前关闭。
Improve this question
我的项目是从Android设备中获取解密的Airplay Mirrorred h.264屏幕数据。
因为我对类似AES的东西一无所知...所以我跳过了我的iPad和AppleTV之间的全编码数据的全过程。
以"Unofficial Airplay Protocol"开头。
类似于序列,我从iPad询问“fp-setup”。
检查AirTunesController source code很有帮助,该代码给了我很多提示。因此,我从iPad,AppleTV抓取了“FPLY”启动二进制文件。刚刚回复我的iPad,“fp-setup”步骤就完成了!
顺序是..
从iPad收到FPLY311,
我回答了FPLY312,
从iPad收到FPLY313,
我回答了FPLY314 ..然后,“POST / stream”出现了一些二进制参数列表(bplist)。
看起来像..(从我的adb logcat捕获)
D /服务器(432):AIRPLAY镜像服务器:检测到新连接
D /服务器(432):AIRPLAY服务器:添加了新连接
D /服务器(432):BReNTT:/stream.xml
D /服务器(432):BReNTT:/stream.xml >>获取
D / Server(432):BReNTT:响应536字节的内容
D /服务器(432):BReNTT:/ fp-setup,主体大小:16
D /服务器(432):0x46 0x50 0x4c 0x59 0x03 0x01 0x01 0x00 0x00 0x00 0x00 0x04 0x02 0x00 0x03 0xbb
D /服务器(432):BReNTT:/ fp-setup >> POST >> 311
D / Server(432):BReNTT:响应257字节的内容
D /服务器(432):BReNTT:/ fp-setup,正文大小:164
D /服务器(432):0x46 0x50 0x4c 0x59 0x03 0x01 0x03 0x00 0x00 0x00 0x00 0x98 0x01 0x8f 0x1a 0x9c
D /服务器(432):0x7d 0x0a 0xf2 0x57 0xb3 0x1f 0x21 0xf5 0xc2 0xd2 0xbc 0x81 0x4c 0x03 0x2d 0x45
D /服务器(432):0x78 0x35 0xad 0x0b 0x06 0x25 0x05 0x74 0xbb 0xc7 0xab 0x4a 0x58 0xcc 0xa6 0xee
D /服务器(432):0xad 0x2c 0x91 0x1d 0x7f 0x3e 0x1e 0x7e 0xd4 0xc0 0x58 0x95 0x5d 0xff 0x3d 0x5c
D /服务器(432):0xee 0xf0 0x14 0x38 0x7a 0x98 0x5b 0xdb 0x34 0x99 0x50 0x15 0xe3 0xdf 0xbd 0xac
D /服务器(432):0xc5 0x60 0x47 0xcb 0x92 0x6e 0x09 0x3b 0x13 0xe9 0xfd 0xb5 0xe1 0xee 0xe3 0x17
D /服务器(432):0xc0 0x18 0xbb 0xc8 0x7f 0xc5 0x45 0x3c 0x76 0x71 0x64 0x7d 0xa6 0x86 0xda 0x3d
D /服务器(432):0x56 0x48 0x75 0xd0 0x3f 0x8a 0xea 0x9d 0x60 0x09 0x2d 0xe0 0x61 0x10 0xbc 0x7b
D /服务器(432):0xe0 0xc1 0x6f 0x39 0x1c 0x36 0x9c 0x75 0x34 0x4a 0xe4 0x7f 0x33 0xac 0xfc 0xf1
D /服务器(432):0x0e 0x63 0xa9 0xb5 0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4 0x9e 0x4b 0xe9 0x67
D /服务器(432):0xc5 0x06 0x7f 0x2a
D /服务器(432):BReNTT:/ fp-setup >> POST >> 313
D /服务器(432):BReNTT:正在响应...
D /服务器(432):0x46 0x50 0x4c 0x59 0x03 0x01 0x04 0x00 0x00 0x00 0x00 0x14 0x0e 0x63 0xa9 0xb5
D /服务器(432):0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4 0x9e 0x4b 0xe9 0x67 0xc5 0x06 0x7f 0x2a
D / Server(432):BReNTT:响应142字节的内容
D /服务器(432):BReNTT:/ stream >> POST !!内容长度为750
最终我得到了列表..与Param1和Param2。
它们分别是AES密钥和AES初始化向量数据,分别为72个字节和16个字节。
而且,突然从同一个端口7100,iPad的屏幕二进制数据连续传给我。
密钥:deviceInfoTime值= -422009852.719235
密钥:macAddress值= 64:20:0C:EF:DF:81
密钥:param1是Binary类型。
BReNTT-Debug(432):46 50 4C 59 01 02 01 00 00 00 00 3C 00 00 00 00
BReNTT-Debug(432):88 E4 F8 2C 81 78 C1 8B 47 51 AC 24 B2 7C 0C 2A
BReNTT-Debug(432):00 00 00 10 C8 99 DC 69 65 C1 08 1D E6 A9 D9 66
BReNTT-Debug(432):E2 BA 3E 34 54 8C DB C6 51 C3 22 DB 18 DC 22 F5
BReNTT-Debug(432):8F E1 54 A6 0A EC EE 18
密钥:sessionID值= -1483478994
密钥:deviceID值= 110088818777987
密钥:connectTime值= 0.000093
密钥:版本值= 200.54
密钥:latencyMs值= 90
密钥:fpsInfo类型= 4
密钥:authTime值= 422009852.735252
密钥:prepareTime值= 0.004542
密钥:configTime值= 0.004692
密钥:resolveDNSTime值= 0.008402
密钥:timestampInfo type = 4
密钥:param2是Binary类型。
BReNTT-Debug(432):66 A7 5D 63 6D 80 C8 30 19 95 2A EC 2D D7 2F 1C
和..
这是我想问你的问题。
根据非官方的Airplay协议,
如果存在可选的Param1和Param2,则对屏幕数据进行加密,对吗?
如何处理来自我的iPad的这72个字节和16个字节的AES数据以解密h.264屏幕数据?
谢谢。
最佳答案
这两个参数; param1和param2使用FairPlay加密。您将需要先弄清楚加密的工作原理,然后才能获得AES密钥来解密H.264视频流。
10-08 02:42