Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Reveal ranks crash

  • Автор темы Автор темы hu_evo
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
8 Янв 2022
Сообщения
11
Реакции
21
Стало крашить при включении

Main function:
Expand Collapse Copy
if (cmd->buttons & UserCmd::CommandButtons::IN_SCORE)
    i::client->DispatchUserMessage(CS_UM_ServerRankRevealAll, 0, 0, nullptr);

DispatchUserMessage:
Expand Collapse Copy
using DispatchUserMessageFn = int(__thiscall*)(void*, int, uint32_t, int, const void*);
inline DispatchUserMessageFn DispatchUserMessageOriginal = { nullptr };
bool __stdcall DispatchUserMessage(int type, uint32_t flags, int size, const void* message);
Знает кто-нибудь, как это можно пофиксить?
 
что происходит...

dispatchusermsg - функция кса, 38 индекс в client.dll
dispatchusermsg:
Expand Collapse Copy
bool dispatch_user_msg( int type, unsigned int flags, int size, const void* data )
{
    return util::call_v_func<bool>(this, 38, type, flags, size, data );
}
 
что происходит...

dispatchusermsg - функция кса, 38 индекс в client.dll
dispatchusermsg:
Expand Collapse Copy
bool dispatch_user_msg( int type, unsigned int flags, int size, const void* data )
{
    return util::call_v_func<bool>(this, 38, type, flags, size, data );
}
Оно так и есть
C++:
Expand Collapse Copy
const auto dispatchUserMessage = m::Get(i::client, 38);

if (MH_CreateHook(dispatchUserMessage, &DispatchUserMessage, reinterpret_cast<void**>(&DispatchUserMessageOriginal)))
        throw std::runtime_error("Unable to hook DispatchUserMessage()");
 
Оно так и есть
C++:
Expand Collapse Copy
const auto dispatchUserMessage = m::Get(i::client, 38);

if (MH_CreateHook(dispatchUserMessage, &DispatchUserMessage, reinterpret_cast<void**>(&DispatchUserMessageOriginal)))
        throw std::runtime_error("Unable to hook DispatchUserMessage()");

U trying to hook a vfunc ? ?
 
Оно так и есть
C++:
Expand Collapse Copy
const auto dispatchUserMessage = m::Get(i::client, 38);

if (MH_CreateHook(dispatchUserMessage, &DispatchUserMessage, reinterpret_cast<void**>(&DispatchUserMessageOriginal)))
        throw std::runtime_error("Unable to hook DispatchUserMessage()");
bool, не void*
 
Стало крашить при включении

Main function:
Expand Collapse Copy
if (cmd->buttons & UserCmd::CommandButtons::IN_SCORE)
    i::client->DispatchUserMessage(CS_UM_ServerRankRevealAll, 0, 0, nullptr);

DispatchUserMessage:
Expand Collapse Copy
using DispatchUserMessageFn = int(__thiscall*)(void*, int, uint32_t, int, const void*);
inline DispatchUserMessageFn DispatchUserMessageOriginal = { nullptr };
bool __stdcall DispatchUserMessage(int type, uint32_t flags, int size, const void* message);
Знает кто-нибудь, как это можно пофиксить?
C++:
Expand Collapse Copy
class IBaseClientDLL
{
public:
    virtual int              Connect(CreateInterfaceFn appSystemFactory, CGlobalVarsBase *pGlobals) = 0;
    virtual int              Disconnect(void) = 0;
    virtual int              Init(CreateInterfaceFn appSystemFactory, CGlobalVarsBase *pGlobals) = 0;
    virtual void             PostInit() = 0;
    virtual void             Shutdown(void) = 0;
    virtual void             LevelInitPreEntity(char const* pMapName) = 0;
    virtual void             LevelInitPostEntity() = 0;
    virtual void             LevelShutdown(void) = 0;
    virtual ClientClass*     GetAllClasses(void) = 0;
    
    bool DispatchUserMessage(int messageType, int arg, int arg1, void* data)
    {
        using DispatchUserMessage_t = bool* (__thiscall*)(void*, int, int, int, void*);
        return CallVFunction<DispatchUserMessage_t>(this, 38)(this, messageType, arg, arg1, data);
    }
};
 
Назад
Сверху Снизу