GetCSWpnData crash fix

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

C++:
Expand Collapse Copy
    template <typename T>
    static T CallVTable(void* pAddr, int iIndex)
    {
        return (*reinterpret_cast<T**>(pAddr))[iIndex];
    }
 
Заменяете старый GetCSWpnData c паттерном на этот
C++:
Expand Collapse Copy
    WeaponInfo_t* GetCSWpnData()
    {
        return Utils::CallVTable< WeaponInfo_t * (__thiscall*)(void*) >(this, 457)(this);
    }
В utils.h добавляете следующий код

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

кстати, а почему, к примеру, ав не нужно было обновлять? автоматом чтоли ищется? если да, how to make (как сделать)?
 
молодец, осталось только паттерн, а не индекс найти

кстати, а почему, к примеру, ав не нужно было обновлять? автоматом чтоли ищется? если да, how to make (как сделать)?
У меня тоже автоматически ищется, флексим :4Head:
 
молодец, осталось только паттерн, а не индекс найти

кстати, а почему, к примеру, ав не нужно было обновлять? автоматом чтоли ищется? если да, how to make (как сделать)?
Код:
Expand Collapse Copy
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);
    }
 
Назад
Сверху Снизу