Хлопець відкрив перший doc-файл. Пробігся по ньому очима.
××××××××××○××○○○×××××××××××○○○○○○○○○○○○○○○○×○○○○○×○○×○×○
○×○○○××○○×○○×○○×○×○○○××○○○○○○○○○○○○○○○○×○○○○○○○×○○○○○○○
×○○○○○○○○○××○○○○○○○○○○○○○○××○○○○○○○○○○○○○○○○○○○○○××××××
×××××○○○○×○○○○○○○○○××○×××○○×○○○×○×○××××○○○○××○×○○×○××○○×
×○○○○○○○○○○○○○○○○○○×○○×○○×○×○○×○○×…
Потім через пошук змінив хрестики на одиниці, а кружечки на нулі. І ще раз проглянув файл.
111111111101100011111111111000000000000000010000010010100100
011001001001010001100000000000000001000000010000000100000000
011000000000000001100000000000000000000011111111111000010000
000001101110010001010111100001101001011001100000000000000000
0100100101001001…
«Ну й що?» — скептично звів брову. Послідовність могла означати що завгодно, хоча майже напевно не означала нічого. Просто випадковий набір нулів та одиничок. Навіть якщо це справді бінарний код, за ним може стояти будь-що: текст, таблиця, графічне зображення у будь-якому форматі чи навіть коротка програма. Не знаючи, що кодує кожен байт [12] Байт (англ. byte ) — одиниця вимірювання обсягу даних. Найменша одиниця пам’яті ЕОМ. Складається з 8 бітів. Біт (англ. bit — шматочок) — мінімальна одиниця кількості інформації. Це одиничний символ або сигнал, який може набувати одного з двох значень — 0 або 1.
, Тоха не зможе…
Серце раптово пропустило удар.
Байт.
Хлопець зміркував, що перед тим, як викидати папери до смітника та відмовлятися від ідеї, згодилося б розкласти всю послідовність на байти.
Він виділив першу послідовність, перекинув її у графічний термінал Linux і розмежував на блоки по вісім символів. Розбив на байти.
11111111 11011000 11111111 11100000 00000000 00010000
01001010 01000110 01001001 01000110 00000000 00000001
00000001 00000001 00000000 01100000 00000000 01100000
00000000 00000000 11111111 11100001 00000000 01101110
01000101 01111000 01101001 01100110 00000000 00000000
01001001 01001001…
Крутнувши коліщатко миші, Тоха перемістився до кінця послідовності та відчув, як спину обси´пали мурахи: останній блок був повним, у ньому містилося не два, не п’ять, не сім, а рівно вісім символів. Тобто загальна кількість символів у першій послідовності була кратною восьми. І це… Звісно, це міг бути збіг, але…
За такої кількості символів? Навряд.
Тоха повернувся на початок і зосередився на трьох перших байтах.
11111111 11011000 11111111
Вісім одиничок, один-один, нуль-один, одиниця та три нулі, і потім знову вісім одиничок. Хлопець давно працював із графікою, і це… чорт забирай, це дещо нагадувало.
Серцебиття пришвидшилося. Тоха вже знав, що має робити далі, проте зволікав. Вагався, хоча сам не розумів чому. Боявся розчарування? Чи навпаки — того, що може виявити?
Зрештою хлопець розкрив браузер, відшукав програму для конвертації двійкового коду в шістнадцятковий, скопіював до неї всю послідовність з одиничок і нулів, після чого натиснув «Convert».
За мить програма видала суттєво менший за кількістю символів результат:
ff d8 ff e0 00 10 4a 46 49 46 00 01 01 01 00 60
00 60 00 00 ff e1 00 6e 45 78 69 66 00 00 49 49…
— Розтуди його… — прошепотів Антон.
Він сів на ліжку. Скинув ноутбук із колін на ковдру, підібгав під себе ноги та склав перед обличчям долоні, немовби у безмовній молитві. Кілька секунд просто розгойдувався, втупившись у початок першого рядка, у перші три байти — ff d8 ff.
Тоха вже знав чи радше здогадувався, що вони позначають, але відмовлявся вірити в те, що, по-перше, йому вдалося розгадати все з першої спроби, а по-друге, що за Ліндиними послідовностями таки щось стоїть.
Щоб упевнитися, що не помиляється, хлопець знову перемкнувся на браузер, увів у пошуковому рядку «JPEG» і перейшов за першим посиланням, що викинув Google. То була стаття з «Вікіпедії» про графічний формат JPEG [13] JPEG (скор. від англ. Joint Photographic Experts Group — Об’єднана експертна група з фотографії) — растровий формат збереження графічної інформації, що використовує стиснення із втратами.
. Праворуч у таблиці зведеної інформації Тоха відшукав стандартний хедер [14] Від англ. header — заголовок.
, тобто уніфікований набір байтів, з якого починаються всі без винятку файли цього формату:
ff d8 ff
Він не помилився. Якщо послідовність появи позитронів у бульбашковій камері Ліндиної лабораторії справді відповідає двійковому коду, то починає цей код хедер JPEG-файла.
Хоча, якщо подумати, три байти — це не так багато. Це може бути просто збіг.
Тоха наморщив лоба, пригадуючи все, що знав про JPEG-формат. Згадав, що сигнатура JPEG-формату (тобто набір байтів, які є його «візитівкою») насправді містить більше за три байти, і кілька наступних також є уніфікованими, вони позначають певні параметри закодованого зображення. Які саме параметри, хлопець уже не пам’ятав, та це й не мало значення. Він надрукував у пошуковому рядку браузера «list of file signatures» [15] Перелік файлових сигнатур ( англ. ).
і натиснув «Enter». «Вікіпедія» запропонувала величезну таблицю з переліком сигнатур для всіх можливих типів файлів. Тоха знайшов JPEG і втупився в сигнатуру:
Читать дальше