GetCSWpnData crash fix

AGGRESSIVE ØŊE ŁØVE
Начинающий
Статус
Оффлайн
Регистрация
4 Фев 2019
Сообщения
193
Реакции[?]
19
Поинты[?]
0
Заменяете старый GetCSWpnData c паттерном на этот
C++:
    WeaponInfo_t* GetCSWpnData()
    {
        return Utils::CallVTable< WeaponInfo_t * (__thiscall*)(void*) >(this, 457)(this);
    }
В utils.h добавляете следующий код

C++:
    template <typename T>
    static T CallVTable(void* pAddr, int iIndex)
    {
        return (*reinterpret_cast<T**>(pAddr))[iIndex];
    }
 
Dreammmless.
Эксперт
Статус
Оффлайн
Регистрация
19 Мар 2019
Сообщения
2,956
Реакции[?]
962
Поинты[?]
1K
Заменяете старый GetCSWpnData c паттерном на этот
C++:
    WeaponInfo_t* GetCSWpnData()
    {
        return Utils::CallVTable< WeaponInfo_t * (__thiscall*)(void*) >(this, 457)(this);
    }
В utils.h добавляете следующий код

C++:
    template <typename T>
    static T CallVTable(void* pAddr, int iIndex)
    {
        return (*reinterpret_cast<T**>(pAddr))[iIndex];
    }
молодец, осталось только паттерн, а не индекс найти

кстати, а почему, к примеру, ав не нужно было обновлять? автоматом чтоли ищется? если да, how to make (как сделать)?
 
Участник
Статус
Оффлайн
Регистрация
21 Сен 2019
Сообщения
594
Реакции[?]
250
Поинты[?]
23K
молодец, осталось только паттерн, а не индекс найти

кстати, а почему, к примеру, ав не нужно было обновлять? автоматом чтоли ищется? если да, how to make (как сделать)?
У меня тоже автоматически ищется, флексим :4Head:
 
f3mb0y
Участник
Статус
Оффлайн
Регистрация
14 Фев 2017
Сообщения
625
Реакции[?]
291
Поинты[?]
1K
молодец, осталось только паттерн, а не индекс найти

кстати, а почему, к примеру, ав не нужно было обновлять? автоматом чтоли ищется? если да, how to make (как сделать)?
Код:
CWeaponInfo* CBaseWeapon::GetCSWpnData()
    {
        static Address_t GetCSWpnData_ = MemoryAPI::FindPattern(Modules::ClientPanorama, "55 8B EC 81 EC ? ? ? ? 53 8B D9 56 57 8D 8B ? ? ? ? 85 C9 75 04 33 FF EB 2F");

        using Fn = CWeaponInfo * (__thiscall*)(PVOID);

        return GetCSWpnData_.as<Fn>()(this);
    }
 
Сверху Снизу