Вопрос Краш читов после обновы

Забаненный
Статус
Оффлайн
Регистрация
5 Май 2022
Сообщения
33
Реакции[?]
11
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
KeyValuesSystem обновили теперь есть 2 доп аргумента int
 
Олдфаг
Статус
Оффлайн
Регистрация
5 Июл 2017
Сообщения
2,108
Реакции[?]
1,189
Поинты[?]
0
А ну NiceL просвети что прийзошло пожалуйста 🧐
Код:
static auto fnCKeyValues_Init = reinterpret_cast<CKeyValues*(__thiscall*)(CKeyValues*, const char*, void*, void*)>(MEM::PatternScan(GetModuleHandleA("client.dll"), "55 8B EC 56 8B F1 33 C0 8B 4D 0C 81 26 ? ? ? ? 89 46 10 8A 45 10 C6 46 03 00 89 4E 14 88 46 18 C7 46 ? ? ? ? ? C7 46"));
Or CKeyValues::Init relative: "6A ? 6A ? 68 ? ? ? ? 8B C8 E8 ? ? ? ? 89 86 ? ? ? ? 33 C0 66 89 06 8B C6 5E C3" + 12
Last 2 args can be 0

CKeyValues (size 44 bytes):
Код:
class CKeyValues
{
public:
    uint32            m_iKeyName : 24;
    uint32            m_iKeyNameCaseSensitive1 : 8;
    char*            m_sValue;
    wchar_t*        m_wsValue;
    void*            m_Value; // Now this var stores int/float values here
    char            m_iDataType;
    char            m_bHasEscapeSequences;
    uint16            m_iKeyNameCaseSensitive2;
    BYTE            __pad_0014[4];
    unsigned char    m_Color[4];
    CKeyValues*        m_pPeer;
    CKeyValues*        m_pSub;
    CKeyValues*        m_pChain;
    BYTE            __pad_0028[4];
};
Also, 1 more virtual function was added to the class IKeyValuesSystem at the beginning
Код:
class IKeyValuesSystem
{
public:
    virtual void unk0() = 0;
    virtual void RegisterSizeofKeyValues(int size) = 0;
    virtual void* AllocKeyValuesMemory(int size) = 0;
    virtual void FreeKeyValuesMemory(void* pMem) = 0;
    virtual HKeySymbol GetSymbolForString(const char* name, bool bCreate = true) = 0;
    virtual const char* GetStringForSymbol(HKeySymbol symbol) = 0;
    virtual void AddKeyValuesToMemoryLeakList(void* pMem, HKeySymbol name) = 0;
    virtual void RemoveKeyValuesFromMemoryLeakList(void* pMem) = 0;
    virtual void SetKeyValuesExpressionSymbol(const char* name, bool bValue) = 0;
    virtual bool GetKeyValuesExpressionSymbol(const char* name) = 0;
    virtual HKeySymbol GetSymbolForStringCaseSensitive(HKeySymbol& hCaseInsensitiveSymbol, const char* name, bool bCreate = true) = 0;
}

Ну, и если используешь паблик обход retaddr чеков через хук в IKeyValues интерфейсе, который сейчас везде, то нужно будет обновить эти паттерны также и индекс +1, тут уже сам
 
Забаненный
Статус
Оффлайн
Регистрация
10 Мар 2022
Сообщения
11
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
NiceL слушай
а почему у меня вообще после обновы крашит
static auto load_from_buffer_address = util::FindSignature(crypt_str("client.dll"), crypt_str("55 8B EC 83 E4 F8 83 EC 34 53 8B 5D 0C 89"));
 
primordial
Пользователь
Статус
Оффлайн
Регистрация
4 Сен 2020
Сообщения
361
Реакции[?]
128
Поинты[?]
42K
Олдфаг
Статус
Оффлайн
Регистрация
5 Июл 2017
Сообщения
2,108
Реакции[?]
1,189
Поинты[?]
0
NiceL слушай
а почему у меня вообще после обновы крашит
static auto load_from_buffer_address = util::FindSignature(crypt_str("client.dll"), crypt_str("55 8B EC 83 E4 F8 83 EC 34 53 8B 5D 0C 89"));
Потому что проблема с инициализацией и размером CKeyValues, выше все расписано, LoadFromBuffer тут не причем, проблема до вызова этой функции
 
Тьомчик
Участник
Статус
Оффлайн
Регистрация
30 Июн 2020
Сообщения
732
Реакции[?]
150
Поинты[?]
58K

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.


Код:
static auto fnCKeyValues_Init = reinterpret_cast<CKeyValues*(__thiscall*)(CKeyValues*, const char*, void*, void*)>(MEM::PatternScan(GetModuleHandleA("client.dll"), "55 8B EC 56 8B F1 33 C0 8B 4D 0C 81 26 ? ? ? ? 89 46 10 8A 45 10 C6 46 03 00 89 4E 14 88 46 18 C7 46 ? ? ? ? ? C7 46"));
Or CKeyValues::Init relative: "6A ? 6A ? 68 ? ? ? ? 8B C8 E8 ? ? ? ? 89 86 ? ? ? ? 33 C0 66 89 06 8B C6 5E C3" + 12
Last 2 args can be 0

CKeyValues (size 44 bytes):
Код:
class CKeyValues
{
public:
    uint32            m_iKeyName : 24;
    uint32            m_iKeyNameCaseSensitive1 : 8;
    char*            m_sValue;
    wchar_t*        m_wsValue;
    void*            m_Value; // Now this var stores int/float values here
    char            m_iDataType;
    char            m_bHasEscapeSequences;
    uint16            m_iKeyNameCaseSensitive2;
    BYTE            __pad_0014[4];
    unsigned char    m_Color[4];
    CKeyValues*        m_pPeer;
    CKeyValues*        m_pSub;
    CKeyValues*        m_pChain;
    BYTE            __pad_0028[4];
};
Also, 1 more virtual function was added to the class IKeyValuesSystem at the beginning
Код:
class IKeyValuesSystem
{
public:
    virtual void unk0() = 0;
    virtual void RegisterSizeofKeyValues(int size) = 0;
    virtual void* AllocKeyValuesMemory(int size) = 0;
    virtual void FreeKeyValuesMemory(void* pMem) = 0;
    virtual HKeySymbol GetSymbolForString(const char* name, bool bCreate = true) = 0;
    virtual const char* GetStringForSymbol(HKeySymbol symbol) = 0;
    virtual void AddKeyValuesToMemoryLeakList(void* pMem, HKeySymbol name) = 0;
    virtual void RemoveKeyValuesFromMemoryLeakList(void* pMem) = 0;
    virtual void SetKeyValuesExpressionSymbol(const char* name, bool bValue) = 0;
    virtual bool GetKeyValuesExpressionSymbol(const char* name) = 0;
    virtual HKeySymbol GetSymbolForStringCaseSensitive(HKeySymbol& hCaseInsensitiveSymbol, const char* name, bool bCreate = true) = 0;
}

Ну, и если используешь паблик обход retaddr чеков через хук в IKeyValues интерфейсе, который сейчас везде, то нужно будет обновить эти паттерны также и индекс +1, тут уже сам
 
Олдфаг
Статус
Оффлайн
Регистрация
5 Июл 2017
Сообщения
2,108
Реакции[?]
1,189
Поинты[?]
0
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
27 Май 2022
Сообщения
18
Реакции[?]
0
Поинты[?]
0
NiceL listen
why does it crash after the update
static auto load_from_buffer_address = util::FindSignature(crypt_str("client.dll"), crypt_str("55 8B EC 83 E4 F8 83 EC 34 53 8B 5D 0C 89"));
Fix for lw:
Код:
using KeyValuesFn = void(__thiscall*)(void*, const char*, int, int);
reinterpret_cast <KeyValuesFn> (key_values_address)(keyValues, type.c_str(), 0, 0);
 
Начинающий
Статус
Оффлайн
Регистрация
5 Июл 2019
Сообщения
219
Реакции[?]
23
Поинты[?]
6K
Последнее редактирование:
Сверху Снизу