Current time: 30.11.2024, 11:10 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Настройка состояния условий генерации случайной карты
Author Message
gamecreator Offline

Posts: 7107
Post: #16

igrik, чтобы узнать откуда они копируются, нужно в дебагере (подойдет OllyDbg) поставить точку останова (breakpoint) на эту область памяти и посмотреть какой код когда и что туда пишет. как увидишь, что записываются дефолтные значения - смотри откуда они записываются (если они прямо в коде прописаны, то посмотри на байтовое представление (в OllyDbg слева от кода) и там будет это число). как найдешь место - можно уже искать так, как я говорил.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
22.05.2012 01:45
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #17

Спасибо. Хоть вообще в данной области не разбираюсь, но попоробую.
***********
Пробовал, ничего не получилось хоть тресни Dash1 Ламо я в этом деле.
Пытался по адресу 0022A0CC - размер карты чегось надыбать. Чёрт с ним в общем.


game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 22.05.2012 21:26 by igrik.)
22.05.2012 10:15
Visit this user's website Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #18

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


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
23.05.2012 23:22
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #19

Как я понимаю "Точка остановки" - это "Breakpoint". С тем как поставить брекпоинт я разобрался. Да, он есть в подменю. Я его поставил на интересующий меня адрес памяти - на втором скрине он выделен красным. Но я не понимаю, что делать дальше.

Впрочем не буду парить себе и Вам мозг. Для меня эта "Оля" (читал о ней) темный лес как и все эти:"add", "bite", "PTR", "DS:", "[EAX]". Так что закрою эту тему.


game bug fixes extended.dll || My Plugins || My GitHub
24.05.2012 00:01
Visit this user's website Find all posts by this user Quote this message in a reply
kostya_76 Offline

Posts: 33
Post: #20

(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 01:20
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #21

(24.05.2012 00:01)igrik Wrote:  Я его поставил на интересующий меня адрес памяти
нет! ты поставил его на интересующую тебя команду ассемблера! вот только по адресу находится не код.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
25.05.2012 00:08
Find all posts by this user Quote this message in a reply
totkotoriy Offline

Posts: 873
Post: #22

Ну так что, можно как-нибудь задать стартовые настройки карты (например сложность высокая, 2 команды компьютера, 2 компьютера), чтоб постоянно не изменять на нужные?


Ты роешься в моих паках, но ты делаешь это без уважения...
30.10.2018 17:42
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #23

В какой именно момент? При старте карты (когда она уже загружается) или в экране выбора карты/случайной карты?


game bug fixes extended.dll || My Plugins || My GitHub
30.10.2018 21:50
Visit this user's website Find all posts by this user Quote this message in a reply
totkotoriy Offline

Posts: 873
Post: #24

На экране выбора карты, настройки карты и команд


Ты роешься в моих паках, но ты делаешь это без уважения...
30.10.2018 22:47
Find all posts by this user Quote this message in a reply
igrik Offline

Posts: 2819
Post: #25

Я могу дать адрес только для настройки сложности (для создания бин патча или редактировании винхексом экзешника). 0x6834A4
Всё остальное не сделать ни скриптом, ни бинарником, ни хексом. Только плагином (dll). Увы.


game bug fixes extended.dll || My Plugins || My GitHub
30.10.2018 22:52
Visit this user's website Find all posts by this user Quote this message in a reply
totkotoriy Offline

Posts: 873
Post: #26

Всё равно спасибо!


Ты роешься в моих паках, но ты делаешь это без уважения...
31.10.2018 00:31
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group