Комментарии 8
Я не вполне понимаю, что именно делает PICO-8, но предположу, что она, вероятно, применяет техники стеганографии, скрывающие данные в «сырых» байтах изображения.Вот что бывает, когда лень пойти почитать. Хотя там английским по белому написано, что «данные кодируются в двух младших битах каждого цветового канала argb». Что крайне забавно, т.к. png буквально напрашивается на то чтобы хранить данные в приватных некритических чанках. Но или авторы PICO-8 боялись, что при распространении через интернет оптимизаторы выкинут лишние чанки, либо просто хотели выпендриться.
Игровой фреймворк love2d использует технологию аналогичную rarjpeg: в конец исполняемого файла просто подшивается архив с ресурсами игры, и при исполнении, открывает сам себя как архив, выуживая оттуда main-скрипт как точку входа, попутно монтируя себя в качестве корневого каталога местной виртуальной ФС.
Читалкам архивов всё равно, что в начале исполняемого файла есть какие-то байты, он ищет заголовок архива и начинает работать с ним.
Читалкам архивов всё равно, что в начале исполняемого файла есть какие-то байты, он ищет заголовок архива и начинает работать с ним.
это жульничество. Я-то ожидал сейчас построят файл, который одновременно и валидная картинка и валидный ELF (ну или a.out). А тут binfmt_misc.
Да как тут сделаешь? Там у всех заголовки обязательные и у всех не совместимые. Может быть теоретически a.out подошёл бы, я так и не видел формата этих файлов. Но насколько я знаю этот формат давно не поддерживается и gcc давно генерирует внутри тот же elf…
Для PNG — конечно. Но у ImageMagick десятки форматов, может хоть какой-то подошел бы. Некоторые почти без заголовка. Например aai — первый uint32 это ширина, второй uint32
это длина, потом просто изображение. Но с "\177ELF" слишком большая картинка получается, не открывается. Есть и другие с очень мягкими требованиями, я не все перепробовал.
Вообще-то есть и совсем raw форматы, без заголовка в принципе, но это неспортивно, их не открыть и не посмотреть без дополнительной информации (надо HxW в командной строке указать)
это длина, потом просто изображение. Но с "\177ELF" слишком большая картинка получается, не открывается. Есть и другие с очень мягкими требованиями, я не все перепробовал.
Вообще-то есть и совсем raw форматы, без заголовка в принципе, но это неспортивно, их не открыть и не посмотреть без дополнительной информации (надо HxW в командной строке указать)
Да, я тоже ждал чего-то в духе файла-химеры в стиле pocorgtfo (https://github.com/angea/pocorgtfo)
Есть такой интересный проект Pixilang, который позволяет выделывать с данными всякое.
Напомнило эту статью 10-летней давности:
habr.com/ru/post/102153
Мои эксперименты в этой области:
habr.com/ru/post/234877/#comment_7914141
habr.com/ru/post/102153
Мои эксперименты в этой области:
habr.com/ru/post/234877/#comment_7914141
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Исполняемые PNG: запускаем изображения как программы