Ivan Punchatz / Bethesda Softworks
Техноблогер Адам Райс добавил в систему DNS классический Doom и успешно загружает его оттуда.
Для этого Райс использовал TXT-записи, которые обычно используются для проверки доменов и противодействия спаму. Большинство доменов в основном требует около 6 таких записей. Однако по определению они могут содержать произвольные данные. По словам техноблогера, там где можно хранить данные, можно сохранить и файл, например, игру Doom.
TXT-записи могут хранить до 2 тыс. символов. Любой домен может иметь тысячи записей. Поскольку DNS-записи кэшируются на многих уровнях в сети, это позволяет хранить значительный объем данных и загружать их с высокой скоростью.
Сначала Райс хотел просто сохранить файл, например, изображение, через кодирование двоичных данных в текстовый формат base64, разбив их на большое количество отдельных фрагментов при необходимости, поскольку преобразование в текст требует значительных накладных расходов. Он даже хотел сохранить фильм таким образом, однако в таком случае даже 1 ГБ данных требовал бы создания 670 тыс. записей. Поэтому он решил остановиться на чем-то, что действительно демонстрировало бы абсурдность такого подхода. Конечно же, выбор остановился на Doom.
Энтузиасту нужен был простой способ декомпиляции и повторной сборки Doom из DNS-записей в память. Поэтому он использовал порт игры на C# под названием managed-doom. C# — язык байт-кода, который предполагает, что исходный код изначально компилируется в кроссплатформенный бинарный файл, а затем запускается на движке .NET, который выполняет окончательное воспроизведение в инструкции целевого процессора по аналогии с Java.
Поскольку Райс стремился избежать записи файлов на диск, он использовал ИИ-помощника Claude для настройки некоторых частей загрузки игры, чтобы считывать все данные из памяти. Он удалил аудиофайлы, поскольку они занимали много места, однако после ряда манипуляций со сжатием ему удалось уменьшить размер игры до 3,8 МБ, распределенных в 2 тыс. DNS-записей.
После этого Райс написал скрипт загрузки PowerShell, который загружает TXT-записи с одного из собственных доменов, собирает данные и проверяет их на наличие повреждений. Все компоненты игры остаются в памяти и позволяют запустить ее как и любую другую программу на платформе .NET. Он разместил собственный проект на GitHub для всех желающих повторить это абсурдное достижение
Ранее мы писали, что созданная ИИ операционная система не смогла запустить Doom и подключиться к интернету. Между тем инженер, уволенный из Meta, научил собаку «вайбкодить«видеоигры с помощью Claude Code.
Источник: Tom’s Hardware
Контент сайту призначений для осіб віком від 21 року. Переглядаючи матеріали, ви підтверджуєте свою відповідність віковим обмеженням.
Cуб'єкт у сфері онлайн-медіа; ідентифікатор медіа - R40-06029.