DOOM запустили в Microsoft Paint, холст кормят кадрами через буфер обмена

DOOM запустили в Microsoft Paint, холст кормят кадрами через буфер обмена

DOOM запустили в Microsoft Paint, холст кормят кадрами через буфер обмена

Технический директор Microsoft Azure Марк Руссинович выпустил DoomPaint — проект, который позволяет играть в DOOM прямо на холсте Microsoft Paint. Правда, калькулятором Paint так и не стал: игру обсчитывает движок ViZDoom, а встроенный редактор Windows лишь показывает готовые кадры.

DoomPaint запускает движок без отдельного окна, формирует изображение и отправляет его в Paint через буфер обмена.

Каждый кадр вставляется на холст как новая картинка. Разрешение по умолчанию составляет 640×400 пикселей, а частота достигает родных для DOOM 35 кадров в секунду. При нагрузке производительность может скатиться до уровня, который Руссинович метко назвал табличным.

Играть при этом можно полноценно: доступны управление с клавиатуры, стрельба, бег, открытие дверей, звуковые эффекты и MIDI-саундтрек. Есть и бонус, которого не было в оригинале: Ctrl+Z превращается в перемотку времени.

Каждый кадр хранится в истории Paint, поэтому несколько отмен способны буквально оживить погибшего героя. А сохранение файла создаёт обычный PNG со сценой игры — Paint ведь понятия не имеет, что его заставили изображать монитор.

 

Главной проблемой стал сам буфер обмена. Если десятки раз в секунду очищать его и записывать новый кадр, Paint может не успеть прочитать предыдущий и выдать ошибку. Поэтому DoomPaint публикует один объект OLE на всю сессию и обновляет содержащиеся в нём данные. Следующий кадр появляется только после подтверждения, что Paint забрал предыдущий.

Вставка запускается синтетическим Ctrl+V либо через меню Paint, если приложение игнорирует нажатие. Низкоуровневый перехватчик клавиатуры не даёт игровым клавишам случайно нажимать кнопки редактора.

Проект опубликован на GitHub и требует Python. После запуска файла run.bat скрипт сам создаёт окружение, устанавливает зависимости и открывает Paint.

Бреши в 7-Zip позволяют запускать файлы и отключают проверку SmartScreen

Microsoft Defender для конечных точек может пропустить тщательно подготовленный зловред, но это ещё не означает победу атакующего. В ходе фишингового теста маяк Sliver в оболочке ShellcodePack не вызвал ни статического обнаружения, ни поведенческого предупреждения и успешно связался с сервером управления.

Однако при загрузке через браузер и запуске из Проводника его мгновенно остановил Windows SmartScreen.

Секрет оказался в метке происхождения файла — Mark of the Web (MotW). Браузеры добавляют к загруженным из интернета объектам поток Zone.Identifier со значением ZoneId=3.

SmartScreen видит его, проверяет репутацию файла в облаке Microsoft и блокирует неизвестные неподписанные программы. Defender при этом работает отдельно и может вообще не заметить угрозу.

Но вся эта защитная магия рассыпается, если MotW исчезает. И здесь на сцену выходит 7-Zip. Распространение метки на извлечённые файлы в архиваторе остаётся отключённым по умолчанию: параметр Propagate Zone.Id stream установлен в положение No. Распакованный файл теряет интернет-клеймо, а SmartScreen не получает повода вмешаться.

Проблема уже вышла за рамки спорной настройки. Уязвимость CVE-2025-0411 позволяла сбрасывать MotW через вложенные архивы; её исправили в 7-Zip 24.09. Позднее обнаружили CVE-2026-58052: версии до 26.02 могли некорректно обрабатывать метку при распаковке специально подготовленных RAR5-архивов. Патч появился в версии 26.03.

Вывод для простой: нужно обновить 7-Zip, принудительно включить перенос Zone.Id и проверить SmartScreen на реальных рабочих станциях. Потому что обойти EDR — ещё половина дела. Но если архиватор сам снимет с файла красный флажок, последняя линия защиты может даже не узнать, что пора спасать пользователя.

RSS: Новости на портале Anti-Malware.ru