Объявления
Поздравляем
Roman2211


Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

База данных IDA от void17

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 16 дек 2021, 17:20

AlexSpl писал(а):

Нужно копать документацию по отладочной информации, попадающей в экзешник.

Не все так просто. Я сегодня битый день потратил на это, не надо повторять моих ошибок. Документации на эту тему нет, но есть наблюдения. Здесь уже просто классический реверсинг: накапливаем факты и применяем на практике...

Я вот что заметил: некоторые типы, например если у поля тип класс, ИНОГДА(но не всегда) может просто записано название класса.

Но это редкие случаи. Обычно классы там записываются как и обычные типы. Вот например встречал vector, записанный как 'ж'(не помню код, компьютер не под рукой теперь), тоесть 8-битное число.

Поэтому нужно вести "дневник". Предлагаю скооперироваться и восстановить все RoE-вские типы, в т.ч. enum, которые неизвестные.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: База данных IDA от void17

Сообщение AlexSpl » 16 дек 2021, 17:26

Короче, чтобы не выполнять двойную работу, я переименую поля army и выложу базу, чтобы было можно продолжать всем вместе.
Вернуться к началу

offlineRoseKavalier  
Мастер
Мастер
 
Сообщения: 331
Зарегистрирован: 23 сен 2017, 17:00
Пол: Не указан
Поблагодарили: 234 раз.

Re: База данных IDA от void17

Сообщение RoseKavalier » 16 дек 2021, 17:28

Similarly, enums as 03 04 03 00. Should not be too difficult to determine most of these through observation.
My guess regarding the type is it's simply an ID to a described type somewhere else. e.g. deque<enum SpellId> is likely described and as an associated id which turns out to be 1408h or 1fe8h or whatever else.
The name prefix is the total name length.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 16 дек 2021, 17:28

Хорошо. Я планирую в январе закончить все RoЕ-вские типы. Оттуда потянется и HD Edition.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 16 дек 2021, 17:29

RoseKavalier писал(а):

Similarly, enums as 03 04 03 00. Should not be too difficult to determine most of these through observation.
My guess regarding the type is it's simply an ID to a described type somewhere else. e.g. deque<enum SpellId> is likely described and as an associated id which turns out to be 1408h or 1fe8h or whatever else.
The name prefix is the total name length.

Either it is a 8-bit number, or just a full type name. Some types have 8-bit ID indeed as I wrote it before.
upd.: also it may be a fixed size array such as '8W' = word [8] but sadly it's not always true.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: База данных IDA от void17

Сообщение AlexSpl » 16 дек 2021, 18:28

army теперь понятна как никогда, но нужно ещё выяснить тип указателей для armySample[8] и в парочке других мест есть сомнения (например, unsigned int vs. unsigned char).

Heroes3f.zip
(14.14 МБ) Скачиваний: 173
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 16 дек 2021, 18:33

Спасибо. Буду по-тихоньку восстанавливать оригинальные типы. Я вот думаю. Может нам на чистый экзешник переехать, просто перенеся имена и типы? Этот старенький и баганный, однако. К сожалению все комментарии потрутся, ну что поделать.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: База данных IDA от void17

Сообщение AlexSpl » 16 дек 2021, 18:38

Можно. Комменты не особо важны. Это я вначале старался. Но времени они отнимают порядочно, и смысла в них мало (базу же не будет читать тот, кто ничего не смыслит в коде). Так что, в целом, можно и переехать.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

Re: База данных IDA от void17

Сообщение void_17 » 16 дек 2021, 18:42

Хорошо. Не могу сейчас базу посмотреть, спрошу так.
Поменяли тип RK на оригинальный SMonFrameInfo?
Кстати,armySample это именно char*, потому что хранит название файла звукого эффекта. См. enum army::TSampleID.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: База данных IDA от void17

Сообщение AlexSpl » 16 дек 2021, 18:45

Цитата:
Поменяли тип RK на оригинальный SMonFrameInfo?

Нет, структурные типы пока остались с теми же названиями. Но мы угадали, что там именно структура :smile1:
Вернуться к началу

Пред.След.

Вернуться в Общий раздел

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2