Объявления

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

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

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
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 » 28 ноя 2021, 13:08

Нет, я сделал свою новую для тестирования исправленного ftol(). Сначала было всё нормально, Вы видели код. А потом декомпилированная функция перестроилась. Сама :smile5:

Со старой базой всё в порядке, вроде, после того, как я combatManager восстановил.

Так, попытка номер два. Создам новую.

На чистой базе опять всё нормально:

Код: Выделить всё
int __thiscall sub_438660(int this, int a2, int a3, int a4, int a5, int a6, char a7)
{
  int result; // eax
  int v10; // eax
  double v11; // st7
  int v12; // [esp+18h] [ebp+8h]
  float v13; // [esp+18h] [ebp+8h]

  if ( ((1 << *(a2 + 248)) & *(this + 20)) == 0 )
    return 0;
  if ( *(this + 40) )
    return 0;
  v10 = sub_442B80(*(this + 32), *(this + 36));
  result = sub_617F94((v10 - v10 * 0.9) * a6);
  v12 = result;
  if ( a7 )
  {
    v11 = sub_5A83A0(45, *(this + 12), a2, 0, 1, *(this + 29) != 0);
    v13 = v12;
    return sub_617F94(v11 * v13);
  }
  return result;
}

sub_617F94 - это новый ftol.
Последний раз редактировалось AlexSpl 28 ноя 2021, 13:14, всего редактировалось 1 раз.
Вернуться к началу

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

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

Сообщение void_17 » 28 ноя 2021, 13:11

А, хорошо, я понял. Не забудьте обновить "старую" базу на сервере,ок?
Вернуться к началу

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 » 28 ноя 2021, 13:15

Цитата:
А, хорошо, я понял. Не забудьте обновить "старую" базу на сервере,ок?

Да, залью, конечно.

Короче, я ничего не понимаю. Создал новую базу. Теперь всё везде в порядке. Неужели это из-за того, что я щёлкнул по сигнатуре новой ftol и она перестроилась? Т.е. я имею в виду, что сигнатура int __usercall sub_617F94@<eax>(double a1@<st0>) не настоящая, так нельзя в С++, а я её зафорсил. Лучше, получается не трогать, а то опять слетит. Нельзя в С++ объявить такую функцию:

Код: Выделить всё
int __usercall sub_617F94@<eax>(double a1@<st0>)
{
  return a1;
}

Это псевдокод. Я "одобрил" сигнатуру и IDA, видимо, начала считать её возвращающей какой-то левый a1 или вовсе некорректной.
Последний раз редактировалось AlexSpl 28 ноя 2021, 13:21, всего редактировалось 1 раз.
Вернуться к началу

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

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

Сообщение void_17 » 28 ноя 2021, 13:16

На следующей неделе планирую капнуть в сторону сигнатур и типов DirectPlay и типов CDplay и подобных.
Вернуться к началу

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 » 28 ноя 2021, 13:22

Цитата:
На следующей неделе планирую капнуть в сторону сигнатур и типов DirectPlay и типов CDplay и подобных.

Ну, для меня это наименее интересные вещи. Как бы и смысла в их декомпиляции мало.
Вернуться к началу

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

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

Сообщение void_17 » 28 ноя 2021, 13:28

AlexSpl писал(а):

Цитата:
На следующей неделе планирую капнуть в сторону сигнатур и типов DirectPlay и типов CDplay и подобных.

Ну, для меня это наименее интересные вещи. Как бы и смысла в их декомпиляции мало.

Отнюдь. Они связаны с мультиплеером и в целом их функции частенько вылазят в коде игры.
Вернуться к началу

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 » 28 ноя 2021, 13:30

А DirectPlay разве ещё работает?
Вернуться к началу

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 » 28 ноя 2021, 13:37

Короче, прикол. Новый ftol() даже переименовывать нельзя :smile5: Иначе всё слетит и начнутся приведения к __int64. Вот такой интересный момент. Во я хакнул так хакнул. Но всё по-честному. И код корректный. Сами попробуйте :smile2:
Вернуться к началу

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

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

Сообщение void_17 » 28 ноя 2021, 13:40

Через костыли работает. Можно найти все методы и функции, связанные с DirectPlay, сделать современный мультиплеер в героях и даже добавить voicechat, библиотека DirectX позволяет.
Вернуться к началу

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 » 28 ноя 2021, 13:41

Цитата:
Через костыли работает. Можно найти все методы и функции, связанные с DirectPlay, сделать современный мультиплеер в героях и даже добавить voicechat, библиотека DirectX позволяет.

Я не думаю, что кто-либо откажется от лобби HD мода. А вот его запилить не так просто. Огромный объём работы.

Кстати, сейчас переименовал в bbb(). Пока не слетает :smile5: Может, IDA просто на имя ftol так реагирует странно? Хаха, реально не слетает bbb().
Последний раз редактировалось AlexSpl 28 ноя 2021, 13:45, всего редактировалось 1 раз.
Вернуться к началу

Пред.След.

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

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

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

cron