Первый Doom смогли взломать и сделать внутри игры «змейку»
Она летает прямо по экрану, поверх монстров и марсианских коридоров.
Кстати, на сайте читать удобнее
Разработчик под ником kgsws нашел в коде оригинального Doom эксплойт, позволяющий запускать внутри игры собственный код. Уязвимость, связанная с обработкой сохранений, работает и в первой, и во второй части Doom.
В разговоре с Vice kgsws рассказывает, что решил поискать эксплойт, заинтересовавшись, можно ли добавить в оригинальный Doom что-то новое, не модифицируя саму игру.
Для демонстрации возможностей эксплойта разработчик реализовал в Doom «змейку». Она отрисовывается поверх игры и интерфейса, управление «змейкой» нестандартное: процесс, объясняет kgsws, больше напоминает вождение автомобиля.
Исходники «змейки» и самого эксплойта выложены в открытый доступ. В описании на GitHub разработчик поясняет, что функция игрового движка P_UnArchivePlayers некорректно проверяет состояние спрайта игрока: благодаря этому можно манипулировать структурой данных player_t.
Куча Doom при загрузке аллоцируется в случайном месте памяти, но kgsws выяснил, что отыскать нужные адреса можно благодаря копированию структуры player_t в переменную players[0], местонахождение которой известно. Дальше к нужным местам памяти можно обращаться просто по смещениям.
В итоге разработчик смог создать загрузчик, позволяющий встраивать собственный код в сохранения Doom и Doom 2. Таким образом, уверен kgsws, можно создавать очень продвинутые модификации.
- Инженер собрал огромную Nintendo Switch для детской больницы
- Фото: в Гонконге изъяли сотни контрабандных майнинг-ускорителей Nvidia
- Mount and Blade 2 исполнился год: главное из отчета разработчиков
- Зак Снайдер поучаствует в создании уникальных кроссовок в стиле Дарксайда
- Авторы Pokemon Go тизерят очки дополненной реальности
- Началось серийное производство модулей памяти DDR5