«СиДжей, кто-то угнал у нас самолёт»: обновление Windows 11 пробудило 20-летний баг в GTA SA

leer en español

«СиДжей, кто-то угнал у нас самолёт»: обновление Windows 11 пробудило 20-летний баг в GTA SA

Разработчики из Rockstar наглядно показали сообществу, что такое эффект бабочки.

image

Обновление Windows 11 24H2 вызвало неожиданную волну жалоб, но на этот раз ответственность за них лежит не на разработчиках Microsoft. Виновником оказался баг, который десятилетиями оставался незаметным в одной из самых культовых игр начала 2000-х — Grand Theft Auto: San Andreas. И лишь сейчас, спустя два десятилетия после релиза, он впервые проявился .

Речь идёт о загадочном исчезновении гидросамолёта Skimmer в некоторых версиях игры. Этот летающий транспорт, известный по миссиям со шпионскими перелётами над водой, внезапно полностью пропал из игры.

Первые жалобы начали поступать ещё в ноябре прошлого года, аккурат после начала распространения Windows 11 24H2, но причины казались непонятными. Проблемой заинтересовался разработчик под ником Silent, автор проекта SilentPatch, который занимается исправлением старых ошибок в классических играх Rockstar. Как выяснилось после долгого капания в коде, баг никак не связан с модами и проявляется только в новой версии Windows.

Silent объяснил, что в конфигурационном файле «vehicles.ide» строка, отвечающая за Skimmer, не содержит нескольких обязательных параметров. В Vice City этот транспорт числился лодкой, поэтому параметры были необязательными. Но в San Andreas Skimmer уже стал самолётом, и недостающие значения стали критичны. Поскольку движок игры не проверяет полноту данных, недочёт просто остался незамеченным с 2004 года.

Главный вопрос: почему баг всплыл только сейчас? Причина в изменённой работе стека памяти в Windows 11 24H2. Игра рассчитывала на то, что неинициализированные переменные получат какие-то значения автоматически — как это чудом происходило на прежних системах. Но в новой версии Windows стек начал обнуляться иначе, и «заглушки» из прошлого перестали спасать ситуацию. Как результат — самолёт просто исчез из игры.

Сам Silent подчёркивает, что Microsoft тут ни при чём. ОС вправе менять внутренние механизмы без предупреждений, и программы не должны зависеть от неинициализированных данных. Тем не менее, изменение поведение стека стало спусковым крючком для пробуждения древнего бага.

История напоминает о важности проверок и внимательности в работе с конфигурациями. Разработчики из Rockstar, скорее всего, получили предупреждение от компилятора ещё тогда, в 2004-м, но либо проигнорировали его, либо отключили.

Silent называет это «поучительным кейсом по обратной совместимости». Даже изменения на уровне системных функций могут ломать приложения, если те базируются на непредсказуемом поведении. Программам, особенно столь старым, не стоит рассчитывать на то, что операционная система будет прощать их оплошности вечно.

Реальные атаки. Эффективные решения. Практический опыт.

Standoff Defend* — это онлайн-полигон, где ты сможешь испытать себя. Попробуй себя в расследовании инцидентов и поборись за победу в конкурсе

*Защищать. Реклама. АО «Позитив Текнолоджиз», ИНН 7718668887