Вопрос Обясните как работает вот этот код байпаса

Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
127
Поинты[?]
1K
Код:
    bool __fastcall Hooks::SendNetMsg(INetChannel* pNetChan, void* edx, INetMessage& msg, bool bForceReliable, bool bVoice)
    {
        if (msg.GetType() == 14) // Return and don't send messsage if its FileCRCCheck
            return false;
    
        if (msg.GetGroup() == 9) // Fix lag when transmitting voice and fakelagging
            bVoice = true;
    
        return g_Hooks.oSendNetMsg(pNetChan, msg, bForceReliable, bVoice);
    }
Как он работает и как внедрить в софт
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
Как он работает
Тут из обхода только if (msg.GetType() == 14) return false;
14 это CLC_Messages::clc_FileCRCCheck, а эта проверка запрещает клиенту игры отправить сообщение CCLCMsg_FileCRCCheck на сервер, таким образом сервер никогда не узнает о том что контрольные суммы файлов не совпадают.
 
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
127
Поинты[?]
1K
Тут из обхода только if (msg.GetType() == 14) return false;
14 это CLC_Messages::clc_FileCRCCheck, а эта проверка запрещает клиенту игры отправить сообщение CCLCMsg_FileCRCCheck на сервер, таким образом сервер никогда не узнает о том что контрольные суммы файлов не совпадают.
Спасибо! А как его можно внедрить в код? Меня смущает
return g_Hooks.oSendNetMsg(pNetChan, msg, bForceReliable, bVoice);
и
bool __fastcall Hooks::SendNetMsg(INetChannel* pNetChan, void* edx, INetMessage& msg, bool bForceReliable, bool bVoice)
как это зделать?
 
Разработчик
Статус
Оффлайн
Регистрация
1 Сен 2018
Сообщения
1,596
Реакции[?]
879
Поинты[?]
113K
Спасибо! А как его можно внедрить в код? Меня смущает
return g_Hooks.oSendNetMsg(pNetChan, msg, bForceReliable, bVoice);
и
bool __fastcall Hooks::SendNetMsg(INetChannel* pNetChan, void* edx, INetMessage& msg, bool bForceReliable, bool bVoice)
как это зделать?
Добавь в хуки)
 
Keine panik!
Эксперт
Статус
Оффлайн
Регистрация
29 Апр 2020
Сообщения
812
Реакции[?]
417
Поинты[?]
49K
добавил, а юзать то как??
Когда хук сработает он просто не даст отправить сообщение с контрольными суммами, больше делать ничего не нужно.
Меня смущает
return g_Hooks.oSendNetMsg(pNetChan, msg, bForceReliable, bVoice);
и
bool __fastcall Hooks::SendNetMsg(INetChannel* pNetChan, void* edx, INetMessage& msg, bool bForceReliable, bool bVoice)
Если ты про __fastcall, так это просто хак для создания внеклассной функции с соглашением thiscall, edx при этом не используется, а ecx содержит указатель на this, остальные же аргументы передаются таким же образом.
 
Сверху Снизу