Я хотел бы для истории немного, так сказать, "приподнять ковёр" и показать подноготную происходившего в этой теме.
Когда PKG файлы удалось разбить на отдельные файлы, я пытался определить что есть что. Что есть изображение, что звуки, а что текст. Если для поиска текста достаточно блокнота, то вот для поиска изображений нужно что-то другое. И я написал небольшую программку, которая читает файл и пытается превратить его в изображение.
Поясню на всякий случай, что любой файл - это последовательность байт, и когда нам говорят что файл весит, скажем, 1024 байта это значит что где-то там в компьютере выстроились друг за другом ровно в ряд 1024 числа-байта. Но если нам говорят что эти 1024 байта представляют из себя некое изображение, то возникает вопрос:"А как же вот эту дружную колонну байтов превратить в двухмерное изображение?" Для пытливого читателя, ответ конечно же очевиден - изображение состоит из какого-то количества рядов и надо лишь разделить общее количество байт файла на длину одного ряда (ширину изображения), чтобы получить количество этих рядов (высоту изображения). Также стоит отметить, что многие изображения содержат внутри себя три или даже четыре байта на цвет одно пикселя, поэтому чтобы построить изображение байты файла возможно надо сначала объединить в трёх (или четырёх) байтные числа.
И вот, ведомый этими мыслями, я написал небольшую программу, которая может представить любой файл в виде картинки по заданным параметрам ширины и высоты изображения, которое хочется получить. Конечно вывести на экран весь файл целиком как изображение не получится, если он очень большой. Поэтому программа берёт только некоторый кусок файла.
Вот так например выглядит начало exe-шного файл игры:
Пестрящий хаос цветов, кажущееся отсутствие какого-либо порядка - это явный признак каких-то "машинных данных", не изображений, не текста, не звука.
Однако важную роль играет правильный выбор ширины изображения, ведь порядок наступает только в небольшом количестве случаев при выборе ширины и нарушается довольно легко. Тем не менее изображения даже с неверной шириной выглядят совершенно иначе и не сложно понять что здесь что-то есть.
Вот так выглядит начало одного из PKG файлов в трёхбайтных цветах при изменении желаемой ширины изображения:
И вот, прямо на глазах, из бурлящего хаоса раскрашенных байт вырисовывается таинственное изображение, а вы словно археолог радуетесь своей находке! И даже наличие всяких "мусорных метаданных" в начале изображения не сильно омрачает, а лишь придаёт таинственности - ведь они зачем-то были нужны, раз уж их туда вставили.
Однако изображение выше построено по объединению трёх байт в один цвет, чего делать не нужно, поэтому-то оно даже в лучшем своём виде косое. Отбросим данное правило и будем раскрашивать в цвет каждый байт, и, для разнообразия, поглядим нашим программным оком на некоторый кусок PKG файла где-то в его середине, так сказать сместимся от его начала в глубь и дебри:
Тут всё совсем хорошо - чётко отрисованный домик, в неверных цветах, да, но это лишь потому что мы не знаем нужной палитры... Да разве что со смещением мы не сильно попали (слева часть того же изображения, которая должна быть справа).
В общем оказалось весьма любопытно визуализировать какой-либо файл в виде картинки.