Вечная жизнь в играх своими руками



              

Общая тактика и стратегия взлома - часть 2


Сравнение первого и второго дампов (сейвов) показывает кучу отличий, соответствующих передвижениям монстров и прочим изменениям игрового мира. Но ни патронов, ни жизней в изменившихся ячейках не оказывается — ведь эти параметры заведомо не менялись! ОК, вычеркиваем изменившиеся ячейки из списка "подозреваемых" лиц, и сравниваем второй дам с третьим, игнорируя ранее изменявшиеся ячейки. На этот раз отличий будет не так уж и много. Ищем ячейки, дельта изменения которых соответствует количеству выстрелов или потерянных жизней/здоровья. Если таких ячеек больше одной, повторяем операцию 3 до тех пор, пока не останется только одна изменившаяся ячейка или, как вариант, последовательно хачим все подходящие ячейки, в надежде, что рано или поздно нам повезет.

В некоторых играх количество патронов хранится в нескольких переменных, дублирующих друг друга, но только одна из них значима, а остальные на хакерском жаргоне называются "тенями", отвечающими, например, за вывод текущего значения на экран. При модификации "теневой" переменной количество патронов/жизней чаще всего остается неизменным, и даже если оно возрастает, оружие перестает стрелять задолго до исчерпания своего "боезапаса", а нас все равно убивают. Ну не уроды?!

Сравнивать можно как дампы памяти, снятые с работающей программы, так и "сейвы" — файлы сохранений. Зная адрес нужной ячейки, мы можем повесить резидента, прописывающего сюда максимально возможное значение и при необходимости обновляющего его каждые несколько секунд (или чаще). Еще можно запустить soft-ice и, установив точку останова, перехватить тот код, который уменьшает количество патронов с каждым выстрелом — тогда мы сможем его хакнуть. Но это потребует дополнительных телодвижений, что не всегда удобно, поэтому многие хакеры ограничиваются правкой сейвов, выдавая игроку полный боезапас и максимум здоровья, однако, подлинное бессмертие в этом случае уже не достигается — патроны и жизни продолжают убывать и чтобы не умереть, их приходится постоянно пополнять.


Содержание  Назад  Вперед