Вопрос How hook FovOverride?

Начинающий
Статус
Оффлайн
Регистрация
1 Янв 2020
Сообщения
75
Реакции[?]
3
Поинты[?]
3K
Через Class Informer находим класс с 200+ методами
1725971414010.png
Через xcref можем найти две функции, первая:
1725971467178.png
Отвечает за выгрузку, она меня не интересует.
Есть вторая:

Код:
__int64 __fastcall sub_831000(int a1, _QWORD *a2)
{
  _QWORD *v2; // rbx
  int v3; // ecx
  int v4; // ecx
  int v5; // ecx
  int v6; // ecx
  __int64 result; // rax
  char v8; // [rsp+48h] [rbp+20h] BYREF

  v2 = a2;
  v3 = a1 - 2;
  if ( !v3 )
  {
    v2 = (_QWORD *)sub_7E88A0(1368i64);
    if ( !v2 )
      return 0i64;
    goto LABEL_13;
  }
  v4 = v3 - 1;
  if ( v4 )
  {
    v5 = v4 - 1;
    if ( v5 )
    {
      v6 = v5 - 1;
      if ( v6 )
      {
        if ( v6 == 1 )
          return *(_QWORD *)(*(__int64 (__fastcall **)(_QWORD *, char *))(*a2 + 304i64))(a2, &v8);
        else
          return 0i64;
      }
      else
      {
        (*(void (__fastcall **)(_QWORD *, _QWORD))(*a2 + 8i64))(a2, 0i64);
        return 1i64;
      }
    }
LABEL_13:
    sub_69E920(v2);
    *v2 = &C_CsmFovOverride::`vftable';
    result = (__int64)v2;
    v2[169] = 0i64;
    return result;
  }
  if ( a2 )
    (*(void (__fastcall **)(_QWORD *, __int64))(*a2 + 8i64))(a2, 1i64);
  return 1i64;
}
где на 42 строке мы можем видеть указатель на таблицу виртуальных функции C_CSMFovOverride
При этом перед ней видим вызов m_vecVelocity (sub_69E920(v2);)

--------------------------------------------------------------------------------------------
Есть у кого-то может разметка или еще что то, что помогло бы в реализации fovChanger через FovOverride? Я в целом на правильном пути сейчас или нет?
 
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2021
Сообщения
18
Реакции[?]
0
Поинты[?]
0
FOV Changer через hook на FovOverride и кент еще Внутри vtable найди функцию, фова
 
Начинающий
Статус
Оффлайн
Регистрация
23 Авг 2023
Сообщения
40
Реакции[?]
6
Поинты[?]
6K
Через Class Informer находим класс с 200+ методами
Посмотреть вложение 285331
Через xcref можем найти две функции, первая:
Посмотреть вложение 285332
Отвечает за выгрузку, она меня не интересует.
Есть вторая:

Код:
__int64 __fastcall sub_831000(int a1, _QWORD *a2)
{
  _QWORD *v2; // rbx
  int v3; // ecx
  int v4; // ecx
  int v5; // ecx
  int v6; // ecx
  __int64 result; // rax
  char v8; // [rsp+48h] [rbp+20h] BYREF

  v2 = a2;
  v3 = a1 - 2;
  if ( !v3 )
  {
    v2 = (_QWORD *)sub_7E88A0(1368i64);
    if ( !v2 )
      return 0i64;
    goto LABEL_13;
  }
  v4 = v3 - 1;
  if ( v4 )
  {
    v5 = v4 - 1;
    if ( v5 )
    {
      v6 = v5 - 1;
      if ( v6 )
      {
        if ( v6 == 1 )
          return *(_QWORD *)(*(__int64 (__fastcall **)(_QWORD *, char *))(*a2 + 304i64))(a2, &v8);
        else
          return 0i64;
      }
      else
      {
        (*(void (__fastcall **)(_QWORD *, _QWORD))(*a2 + 8i64))(a2, 0i64);
        return 1i64;
      }
    }
LABEL_13:
    sub_69E920(v2);
    *v2 = &C_CsmFovOverride::`vftable';
    result = (__int64)v2;
    v2[169] = 0i64;
    return result;
  }
  if ( a2 )
    (*(void (__fastcall **)(_QWORD *, __int64))(*a2 + 8i64))(a2, 1i64);
  return 1i64;
}
где на 42 строке мы можем видеть указатель на таблицу виртуальных функции C_CSMFovOverride
При этом перед ней видим вызов m_vecVelocity (sub_69E920(v2);)

--------------------------------------------------------------------------------------------
Есть у кого-то может разметка или еще что то, что помогло бы в реализации fovChanger через FovOverride? Я в целом на правильном пути сейчас или нет?
void* hkCalcViewModel(float* a1, Vector_t* offsets, float* fov)
auto viewmodel_Fov = schema.FindPattern("client.dll", "48 89 5C 24 ? 48 89 74 24 ? 55 57 41 54 41 56 41 57 48 8B EC 48 83 EC ? 4D 8B E0");
Там и viewmodel и Fov
 
Сверху Снизу