Краш update client side animations

Статус
В этой теме нельзя размещать новые ответы.
Участник
Статус
Оффлайн
Регистрация
30 Дек 2020
Сообщения
400
Реакции[?]
293
Поинты[?]
1K
Столкнулся с проблемой при вызове апдейта анимаций в базе CSGO Simple.
C++:
void C_BasePlayer::UpdateClientSideAnimation(){
    return CallVFunction<void(__thiscall*)(void*)>(this, 223)(this);
}
Посидел в дебагере половил мемы по типу player-> был nullptr или this-> был nullptr (т.е не this и player, а именно player-> & this->)
Добавил дополнительных чеков по типу if(!this) return;, но это не помогло.
Начал перебирать индексы (223 и 224), но все равно крашило.
Через некоторое время заметил мем в самой функции call virtual 1653391965492.png
1653392013608.png не спрашивайте почему 0xFFFFFFFF
После "фикса", который под спойлером, вылезла ошибка "run-time check failure #0". Посидел почитал информацию по этой ошибке, но так ничего не начитал.
Решил зайти в иду, чтобы быть 100% уверенным, что 224 индекс правильный: 1653392385060.png
Итого - индекс правильный. Подумал, что можно через сигнатуру, попробовал "E8 ? ? ? ? 8B 0D ? ? ? ? 8B 01 FF 50 10" и "55 8B EC 51 56 8B F1 80 BE ? ? ? ? ? 74" - крашит (
Пожалуйста, авторизуйтесь для просмотра ссылки.
).
 
Новичок
Статус
Оффлайн
Регистрация
3 Ноя 2020
Сообщения
1
Реакции[?]
0
Поинты[?]
0
i dont have any crash 4 this subject

my clientsideanim code:

Код:
void C_BasePlayer::UpdateClientSideAnimation()
{
    return CallVFunction<void(__thiscall*)(void*)>(this, 224)(this);
}


template<typename FuncType>
__forceinline static FuncType CallVFunction(void* ppClass, int index)
{
    int* pVTable = *(int**)ppClass;
    int dwAddress = pVTable[index];
    return (FuncType)(dwAddress);
}
if it still continues, check where you call
 
Новичок
Статус
Оффлайн
Регистрация
14 Май 2022
Сообщения
1
Реакции[?]
0
Поинты[?]
0
try
C++:
void Player::UpdateClientSideAnimation()
{
    using Fn = void(__thiscall*)(void*);
    CallVFunction<Fn>(this, 224)(this);
}
 
Участник
Статус
Оффлайн
Регистрация
30 Дек 2020
Сообщения
400
Реакции[?]
293
Поинты[?]
1K
/del
Проблема была в поинтере игрока и системе рекордов.
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
Вообще, говорю на будущее, если что-то будешь тестить на этой базе, эта ошибка постоянно вылезала из-за настроек проекта ( надо отключить отладочные библиотеки ). Но и так же учитываем, что она говорит про ошибки, связанные с соглашением о вызовах ( __fastcall, __stdcall и др. ).
 
Участник
Статус
Оффлайн
Регистрация
30 Дек 2020
Сообщения
400
Реакции[?]
293
Поинты[?]
1K
Вообще, говорю на будущее, если что-то будешь тестить на этой базе, эта ошибка постоянно вылезала из-за настроек проекта ( надо отключить отладочные библиотеки ). Но и так же учитываем, что она говорит про ошибки, связанные с соглашением о вызовах ( __fastcall, __stdcall и др. ).
Я тоже думал на счет настроек проекта, но один мой друг опроверг мои догадки, поэтому я не стал их изменять, но все же, спасибо за подсказку.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу