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). Это также означало, что читы срабатывали чаще, чем я предполагал.

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

22
23 комментария