Финский инженер и хакер Оона Ряйсянен (Oona Räisänen), которая увлекается обработкой звука, случайно обнаружила на Youtube видеозапись, сделанную с вертолёта во время преследования автомобиля. Оону не увлекли приключения полиции, но она очень заинтересовалась необычным звуком, который услышала из колонок, особенно с левого канала.
Оона сначала подумала, что это помехи от двигателя, но когда изолировала левый канал и усилила звук (selostus2.mp3), то сразу стало ясно, что это некий таинственный цифровой сигнал!
Любопытство заставило девушку взяться за решение головоломки. Судя по спектрограмме левого канала, аппарат использовал бинарную частотную модуляцию (BFSK), когда значениям 0 и 1 присваиваются звуки определённой частоты. В данном случае частота изменялась между 1200 и 2200 Гц. Оона осуществила демодуляцию сигнала по фильтру нижних и верхних частот в open-source программе для аудиобработки SoX (Sound eXchange). На выходе получился цифровой поток на 1200 бод.
Поток состоит из пакетов по 47 байт, синхронизированных по начальным и конечным битам и разделённых между собой байтом 0x80. Большинство битов остаются неизменными на протяжении всего видеоролика, но три отдельные группы определённо изменяются. На скриншоте они обозначены синим.
Оона начала гадать, что бы это могло быть? Может быть, данные телеметрии? Или информация о направлении съёмки с видеокамеры? Какие-то метки времени по кадрам?
Проведя анализ трех групп данных, Ряйсянен пришла к мнению, что это именно телеметрия. Если отбросить первые четыре бита в каждом байте, то оставшиеся байты можно представить как пару трехзначных чисел в кодировке base-10. Если нанести их на оси координат x и y, то получится график, очень похожий на реальную схему передвижения вертолёта. На карте желтым показаны его примерные координаты, судя по картинке с видео, а слева вверху — график со значениями из таинственного потока данных (отображены первые несколько минут видеосъемки).
Если присмотреться ещё внимательнее, то можно заметить, что 100 координатных пар в точности соответствуют одной минуте видео.
Зная конечные координаты вертолёта (в конце он кружился над полицейским участком), можно привязать получившуюся траекторию к карте Google Earth.
Благодаря советам знающих товарищей из интернета Оона Ряйсянен поняла, что здесь используется 7-битная кодировка Bell 202 ASCII. После декодирования значения выглядят так:
#L N390386 W09434208YJ
#L N390386 W09434208YJ
#L N390384 W09434208YJ
#L N390384 W09434208YJ
#L N390381 W09434198YJ
#L N390381 W09434198YJ
#L N390379 W09434188YJ
Это полные пары долготы и широты с точностью до четвёртого знака (39,0386° N, 94,3420° W).
P.S. Кстати, год назад Оона Райсанен составила чёткую блок-схему с описанием всех звуков, которые издаёт диалап-модем при установке соединения.
P.P.S. О декодировании цифрового сигнала из открытых радиопередач Оона рассказала в рамках доклада на хакерской конференции Chaos Communication Congress в Гамбурге 30 декабря 2013 года (видео).
Автор: alizar