Сообщество Dark Souls на ПК осталось без мультиплеера: серверы отключили после того, как в сетевом коде трилогии обнаружили серьёзную дыру в безопасности.
Портал VGC поговорил с людьми, которые отыскали уязвимость, и выяснил дополнительные подробности.
Собеседники VGC предпочли сохранить анонимность, поэтому давайте назовём их «белыми хакерами». Они утверждают следующее:
Клип с демонстрацией того, что могут сделать хакеры через уязвимость в сетевом коде Dark Souls: игра вылетела и запустила генератор речи в Windows.
Не то чтобы это большой опыт, но мне доводилось модифицировать несколько других игр с сетевыми компонентами. Ничего не было сломано так, как неткод в Dark Souls. Всё выглядит, будто онлайн налепили на одиночную игру, даже не задумываясь о безопасности. Удивительно, насколько много игровых компонентов привязываются к памяти в сетевых пакетах и отсылаются другим игрокам, а затем напрямую используются клиентом игры у получающего. Нет почти никаких проверок на вменяемость данных. Не помогает и то, как построены исполняемые команды. Например, в Dark Souls III отключена рандомизация адресного пространства (ASLR), а страницы игрового кода отмечены как RWE (позволяется читать, записывать и исполнять). Должно быть только RE (читать и исполнять). Но так как этого нет, использование уязвимостей с удалённым запуском кода становится намного, намного проще. Что иронично, я подозреваю, разработчики приняли такие решения специально, чтобы облегчить внедрение античита от From. А античит от From оказался бесполезен и не останавливает большинство читеров.
«Белый хакер» в беседе с VGC
Мне довелось увидеть код из закрытого сетевого тестирования. Уже сейчас могу сказать, что в сетевом коде Elden Ring есть много точно таких же