о Airplay Mirroring… вещи после настройки fp [закрыто]

Мой проект заключается в получении расшифрованных данных экрана Airplay Mirrorred h.264 с моего устройства Android.
Поскольку я ничего не знаю о AES-подобных вещах ... Поэтому я пропустил этот шаг с жестко закодированными данными, омнипеками, между My iPad и AppleTV.

Началось с«Неофициальный протокол трансляции».
Похожая последовательность, и я спросил с моего iPad с "fp-setup".

Было очень полезно изучитьИсходный код AirTunesControllerЯ получил довольно много подсказок из этого кода. Итак, я взял стартовые файлы «FPLY» со своего iPad, AppleTV. Только что ответил на мой iPad, и шаг "fp-setup" сделан!

Последовательность
получил FPLY311 от iPad,
Я ответил с FPLY312,
получил FPLY313 от iPad,
Я ответил FPLY314 .. тогда мне пришел "POST / stream" с некоторыми списками двоичных параметров (bplist).
Это похоже на ... (снято с моего adb logcat)

D / Server (432): сервер зеркального отображения AIRPLAY: обнаружено новое соединение
D / Server (432): AIRPLAY Server: добавлено новое соединение
D / Server (432): BReNTT: /stream.xml
D / Server (432): BReNTT: /stream.xml >> GET
D / Server (432): BReNTT: отвечает 536 байт контента
D / Server (432): BRENTT: / fp-setup, размер тела: 16
D / Server (432): 0x46 0x50 0x4c 0x59 0x03 0x01 0x01 0x00 0x00 0x00 0x00 0x04 0x02 0x00 0x03 0xbb
D / Server (432): BRENTT: / fp-setup >> POST >> 311
D / Server (432): BReNTT: отвечает 257 байт контента
D / Server (432): BRENTT: / fp-setup, размер тела: 164
D / Server (432): 0x46 0x50 0x4c 0x59 0x03 0x01 0x03 0x00 0x00 0x00 0x00 0x98 0x01 0x8f 0x1a 0x9c
D / Server (432): 0x7d 0x0a 0xf2 0x57 0xb3 0x1f 0x21 0xf5 0xc2 0xd2 0xbc 0x81 0x4c 0x03 0x2d 0x45
D / Server (432): 0x78 0x35 0xad 0x0b 0x06 0x25 0x05 0x74 0xbb 0xc7 0xab 0x4a 0x58 0xcc 0xa6 0xee
D / Server (432): 0xad 0x2c 0x91 0x1d 0x7f 0x3e 0x1e 0x7e 0xd4 0xc0 0x58 0x95 0x5d 0xff 0x3d 0x5c
D / Server (432): 0xee 0xf0 0x14 0x38 0x7a 0x98 0x5b 0xdb 0x34 0x99 0x50 0x15 0xe3 0xdf 0xbd 0xac
D / Server (432): 0xc5 0x60 0x47 0xcb 0x92 0x6e 0x09 0x3b 0x13 0xe9 0xfd 0xb5 0xe1 0xee 0xe3 0x17
D / Server (432): 0xc0 0x18 0xbb 0xc8 0x7f 0xc5 0x45 0x3c 0x76 0x71 0x64 0x7d 0xa6 0x86 0xda 0x3d
D / Server (432): 0x56 0x48 0x75 0xd0 0x3f 0x8a 0xea 0x9d 0x60 0x09 0x2d 0xe0 0x61 0x10 0xbc 0x7b
D / Server (432): 0xe0 0xc1 0x6f 0x39 0x1c 0x36 0x9c 0x75 0x34 0x4a 0xe4 0x7f 0x33 0xac 0xfc 0xf1
D / Server (432): 0x0e 0x63 0xa9 0xb5 0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4 0x9e 0x4b 0xe9 0x67
D / Server (432): 0xc5 0x06 0x7f 0x2a
D / Server (432): BRENTT: / fp-setup >> POST >> 313
D / Server (432): BRENTT: отвечает ...
D / Server (432): 0x46 0x50 0x4c 0x59 0x03 0x01 0x04 0x00 0x00 0x00 0x00 0x14 0x0e 0x63 0xa9 0xb5
D / Server (432): 0x8b 0xfc 0xe2 0x15 0xe9 0x60 0x01 0xc4 0x9e 0x4b 0xe9 0x67 0xc5 0x06 0x7f 0x2a
D / Server (432): BRENTT: отвечает 142 байта контента
D / Server (432): BRENTT: / stream >> POST !! Длина контента составляет 750

Наконец я получил список .. с Param1 и Param2.
Это ключ AES и данные вектора инициализации AES, 72 байта и 16 байтов соответственно. И с того же порта 7100 внезапно двоичные данные на экране iPad приходили ко мне постоянно.

Ключ: значение DeviceInfoTime = -422009852.719235
Ключ: macAddress Значение = 64: 20: 0C: EF: DF: 81
Ключ: param1 - двоичный тип.
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 Value = 110088818777987
Ключ: значение connectTime = 0,009737
Ключ: версия Значение = 200,54
Ключ: значение latencyMs = 90
Ключ: fpsInfo type = 4
Ключ: значение authTime = 422009852.735252
Ключ: значение prepareTime = 0,004542
Ключ: значение configTime = 0,004692
Ключ: ResolutionDNSTime Значение = 0,008402
Ключ: timestampInfo type = 4
Ключ: param2 - двоичный тип.
BRENTT-Debug (432): 66 A7 5D 63 6D 80 C8 30 19 95 2A EC 2D D7 2F 1C

А также..
Это вопрос, который я хочу вам задать.

Согласно неофициальному протоколу трансляции,
Если существуют необязательные параметры Param1 и Param2, данные на экране шифруются, верно?

Как мне работать с этими 72 байтами и 16 байтами данных AES для расшифровки данных экрана h.264, поступающих с моего iPad ??

Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос