Забудьте про калькуляторы: игру заставили работать там, где вообще нет файловой системы.

Разработчик Адам Райс превратил один из самых скучных интернет-протоколов в неожиданную платформу для запуска игр. Он показал, что классический шутер DOOM можно полностью загрузить и запустить через протокол DNS — без установки, файлов и привычной доставки данных.
Адам Райс давно экспериментирует с TXT-записями DNS, в которые можно записывать произвольный текст. Обычно такие записи применяют для проверки почты или служебных нужд, но никаких строгих ограничений по содержимому нет. Разработчик решил пойти дальше и использовать DNS как хранилище данных. Сначала он проверил идею на изображении — разбил файл на части, закодировал в Base64 и разместил в TXT-записях. Система без проблем собрала файл обратно с тем же хэшем.
Следующим шагом стал запуск полноценной программы. В качестве демонстрации Райс выбрал DOOM — традиционный тест на «невозможные» платформы. Он нашёл реализацию игры на C# названием managed-doom и адаптировал её для работы полностью из памяти. Исходный код переработали так, чтобы игра не обращалась к файловой системе и не требовала нативных библиотек. Звуковую часть убрали ради уменьшения объёма данных.
После сжатия все компоненты игры заняли около трёх мегабайт. Райс разбил их на 1966 TXT-записей в зоне DNS, размещённой через CloudFlare. Загрузка заняла около 15 минут. Для запуска он написал PowerShell-скрипт примерно на 250 строк, который делает около двух тысяч DNS-запросов, собирает данные в памяти и запускает игру через механизмы .NET.
Весь процесс обходится без записи файлов на диск и без установки зависимостей. Скрипт просто извлекает данные через стандартные DNS-запросы и выполняет их в оперативной памяти.
Эксперимент показывает, насколько гибким может быть DOOM, и насколько уязвимым может быть DNS. Протокол создавали почти 45 лет назад для сопоставления доменных имён и IP-адресов, но отсутствие строгой валидации позволяет использовать его в том числе как распределённое хранилище.
Райс подчёркивает, что подобные техники уже применяют для скрытой доставки вредоносного кода, а его проект лишь довёл идею до абсурда. Исходный код проекта опубликован на GitHub.