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.

Passkeys сдали адрес: iCloud Private Relay раскрывает реальный IP

Защитная ширма Apple оказалась с дыркой. Исследователи Томми Мыск и Талал Хадж Бакри обнаружили, что сайты могут узнать реальный IP-адрес пользователя даже при включённом iCloud Private Relay. Для этого им достаточно поддерживать ключи доступа или хотя бы сделать вид, что поддерживают.

Проблема кроется в WebKit и механизме WebAuthn. При проверке ключа доступа запрос отправляет не Safari, а системная служба учётных данных.

В результате трафик проходит мимо Private Relay, а сервер получает настоящий IP. Причём взаимодействие пользователя не всегда требуется, сайт способен провернуть трюк без заметного окна или запроса.

Private Relay здесь важно не путать с VPN. Сервис защищает веб-трафик Safari, тогда как VPN работает на уровне всей системы. Поэтому системный запрос спокойно обходит эппловский заслон.

Исследователи нашли ещё два канала утечки: через предварительное разрешение DNS-имён и WebTransport. В первом случае сайт может определить реальные DNS-серверы пользователя, во втором — установить прямое соединение и снова увидеть его IP. Все три проблемы подробно описаны в исследовании Mysk.

Под ударом оказался не только Safari. На iOS браузеры обязаны использовать WebKit, поэтому уязвимость затрагивает и приложения с собственным прокси, включая Onion Browser для работы через Tor. Обычные системные VPN от этих конкретных утечек не страдают.

Исследователи подготовили тестовый сайт, на котором пользователи могут проверить своё устройство. В браузере Psylo разработчики уже закрыли все три канала утечки, отключив опасные функции по умолчанию.

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