AEZAKMI не должно было существовать: настоящие коды GTA San Andreas изначально были сломаны

Оригинальные чит-коды игры задумывались совсем другими, но особенности шифрования заставили их работать неправильно. HESOYAM, BAGUVIX и другие — это не то, что должны были вводить игроки.

AEZAKMI не должно было существовать: настоящие коды GTA San Andreas изначально были сломаны

Оббе Вермей продолжает вспоминать золотые времена 3D-эпохи Grand Theft Auto, раскрывая нам все больше «внутряка» студий Rockstar.

В этот раз тема откровений — чит-коды для GTA San Andreas. Все мы так или иначе помним те самые абстрактные слова, а у кого-то наверняка сохранился легендарный листочек со всеми чит-кодами на любой случай.

Вот только HESOYAM, AEZAKMI, BAGUVIX — это всего лишь ошибка кода, а оригинальные коды содержали в себе вполне логичные слова, а зачастую и целые словосочетания. Все они активировались путем ввода последовательности символов, к примеру:

  • ifiwerearichman — добавит вам больше денег
  • ilovescotland — поможет вызвать дождь
  • boooooring — ускорить игру, чтобы было не скучно
AEZAKMI не должно было существовать: настоящие коды GTA San Andreas изначально были сломаны

Как NOPOLICEPLEASE превратилось в AEZAKMI и при чём тут хеш-коды

По неизвестной причине разработчики не хотели оставлять чит-коды для одиночной игры в открытом виде, поэтому было принято решение «захешировать» их.

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


Именно поэтому я использовал «хэш-коды» для хранения читов. Хэш-код - это одно число, которое вычисляется из строки. Простой (пример) алгоритм хеширования может складывать ASCII-значения каждого символа строки. Хэш-код для ILOVESCOTLAND будет равен 983. Для GUNSGUNSGUNS это будет 951.

Оббе Вермей
Разработчик

Простыми словами — для каждого символа в чит-коде присваивалось числовое значение, а сумма этих чисел и формировала тот самый хэш-код.

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

Плохая новость заключается в том, что совершенно разные строки могут давать один и тот же хэш-код. Поэтому геймеры находили случайные строки (например, HDLMAAXOPK), а не ту, которую я задал (ILOVESCOTLAND). Это также означало, что читы срабатывали чаще, чем я предполагал.

В конечном итоге все чит-коды в игре были обнаружены путём случайного перебора символов. Иногда и вовсе подобные случаи непреднамеренной активации мешали даже спидраннерам в их скоростных забегах, вспомнил Оббе.

88
14 комментариев

Посмотрел канал Вадима М?

2
Ответить
Автор

прочитал твиттер пользователя Obbe Vermeij 🤭

Ответить

clear weather - skincancerforme Гениально

1
1
Ответить

Когда проходил СА на 100%, за всю игру два раза сработал чит код просто случайно, видимо какую то комбинацию все таки набрал. Благо хоть заметил, иначе можно было бы заруинить себе сейв и прохождение.

1
Ответить

Криптография в гта

1
Ответить

Странно, я думал хэш функции придумали как раз для получения уникального значения
И что за алгоритм такой что на 2 набора букв длинной в 10 символов захуярил одинаковый хэш, не совсем понял

Ответить
Автор

короче проблема в коллизии хеш-функций, но я вообще не шарю, поэтому не буду выебываться

Ответить