Сегодня я покажу некоторые приёмы изменения exe и общие сведения. Для
начала нужно определится, что менять? Простейшим является обычное
значение, а вот более сложным является изменение ассемблерного кода
игры. Чтобы поменять это, надо понять хотя бы навскидку, как
разработчики оформили это, то бишь здоровье война(начальное) и функция
разрушения стен очень разные вещи.
Далее - софт, я пользуюсь
ArtMoney 30 pro, который владеет как раз изменением кода, можно
попробовать другие программы, но подобное уже не гарантировано.
Программа для просмотра ассемблерного кода игры - Ida Pro (любой
версии), можно даже там поменять код и посмотреть, что стало(debugging),
но сохранить это нельзя. Впрочем, по неизвестным мне причинам, в
Stronghold это не работает :(
Итак, открываем артмоней, выбираем Искать -> Объект -> Файл, выбираем Stronghold Crusader.exe
Нажимаем искать, а что искать, всё зависит от типа
Точное значение - целое, дробное, т.е. одно любое значение.
Последовательность значений - от 2 до 20 точных значений, стоящих подряд в памяти(подряд - каждый четвёртый адрес)
Диапазон значений - значение, которое точно вам не известно, можно найти и таким способом.
Неизвестное значение - в изменении файла не участвует, т.к. отсев ненужных адресов невозможен(файл то не процесс, статичный)
Кодированное значение - тоже не участвует.
Записать дамп памяти - не участвует, используется для процесса(альтернатива Save/Load)
Остальные типы поиска тоже не используются. Если у вас более старая версия ArtMoney, то некоторых типов может не быть.
Как же происходит сам процесс? Ищем точное значение, в игре их много,
так что приходится отсеивать, стандартным способом это не сделать, вот
мой, нажимаем зелёную стрелку, все адреса переносятся в правую часть,
выделяем половину или даже более, нажимаем Ctrl+A и Изменить ->
Установить значение. Меняем, чтобы результат был намного больше и
меньше(так понятнее) и смотрим. Если результат не достигнут, возвращаем
прежнее значение(мало ли что мы натворили) и удаляем(Delete на
клавиатуре) выделенные адреса, повторяем пока не получается, если
получится, то выбираем все меньше адресов и т.д. пока не найдём один
единственный, отвечающий за всё то, что нам нужно, готово!
Это всё, в следующей части расскажу о дизассемблере и о том, что можно сделать (и как).