Wake of Gods Forum | Форум Во Имя Богов

Full Version: Настройка состояния условий генерации случайной карты
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
igrik, чтобы узнать откуда они копируются, нужно в дебагере (подойдет OllyDbg) поставить точку останова (breakpoint) на эту область памяти и посмотреть какой код когда и что туда пишет. как увидишь, что записываются дефолтные значения - смотри откуда они записываются (если они прямо в коде прописаны, то посмотри на байтовое представление (в OllyDbg слева от кода) и там будет это число). как найдешь место - можно уже искать так, как я говорил.
Спасибо. Хоть вообще в данной области не разбираюсь, но попоробую.
***********
Пробовал, ничего не получилось хоть тресни Dash1 Ламо я в этом деле.
Пытался по адресу 0022A0CC - размер карты чегось надыбать. Чёрт с ним в общем.
это же точка останова для кода. чтобы поставить точку останова для памяти нужно выделить интересующую область памяти (в просмотрщике памяти внизу слева) и нажать пкм. в открывшемся меню и будет точка останова (кажется, в каком-то подменю).
Как я понимаю "Точка остановки" - это "Breakpoint". С тем как поставить брекпоинт я разобрался. Да, он есть в подменю. Я его поставил на интересующий меня адрес памяти - на втором скрине он выделен красным. Но я не понимаю, что делать дальше.

Впрочем не буду парить себе и Вам мозг. Для меня эта "Оля" (читал о ней) темный лес как и все эти:"add", "bite", "PTR", "DS:", "[EAX]". Так что закрою эту тему.
(22.05.2012 01:11)Sav Wrote: [ -> ]Эти все адреса динамические и могут быть разными на разных машинах. Нужно найти, откуда в них копируются значения. Подозреваю, что эти адреса вообще из структуры диалога, тогда поиск по exe не поможет. Но, возможно, и не так.

Это, собственно говоря, стэк.

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

Вклинивался по адресу 0x5863ba - в начало функции считывания настроек генератора после нажатия кнопки "начать". Собственно, что там делает эта функция не важно, но адрес начала таблицы с настройками находится в ECX. Дальше адреса настроек, задаются смещением от начала таблицы:
   ptrRacePlayer1 = (unsigned int*) (adrTabOptionGen + 0x1088);
    ptrRacePlayer2 = (unsigned int*) (adrTabOptionGen + 0x1104);
    ptrHeroPlayer1 = (unsigned int*) (adrTabOptionGen + 0x1084);
    ptrHeroPlayer2 = (unsigned int*) (adrTabOptionGen + 0x1100);
и т.д.

igrik Wrote:Вопрос: как теперь это можно использовать чтобы автоматически стояли интересующие настройки при запуске игры?

Если нужно менять настройки до запуска генератора, вероятно нужно вклиниваться в код сразу после нажатия кнопки "случайная карта". Найти, где задается адрес начала таблицы, и менять настройки.

А по Оле есть хорошее руководство: «Введение в крэкинг с помощью OllyDbg».
(24.05.2012 00:01)igrik Wrote: [ -> ]Я его поставил на интересующий меня адрес памяти
нет! ты поставил его на интересующую тебя команду ассемблера! вот только по адресу находится не код.
Ну так что, можно как-нибудь задать стартовые настройки карты (например сложность высокая, 2 команды компьютера, 2 компьютера), чтоб постоянно не изменять на нужные?
В какой именно момент? При старте карты (когда она уже загружается) или в экране выбора карты/случайной карты?
На экране выбора карты, настройки карты и команд
Я могу дать адрес только для настройки сложности (для создания бин патча или редактировании винхексом экзешника). 0x6834A4
Всё остальное не сделать ни скриптом, ни бинарником, ни хексом. Только плагином (dll). Увы.
Всё равно спасибо!
Pages: 1 2
Reference URL's