..................................................
-
Автор темы
- #1
На югейме такого не нашёл.
Если есть, то удалите тему
Credits - shonax
( где он это взял я не знаю)
Если есть, то удалите тему
C++:
void __fastcall hkPerformScreenOverlay(void* _this, void* edx, int x, int y, int w, int h);
decltype(&hkPerformScreenOverlay) ohkPerformScreenOverlay;
void __fastcall hkPerformScreenOverlay(void* _this, void* edx, int x, int y, int w, int h) {
if (g_cfg.misc.block_adv)
return;
return ohkPerformScreenOverlay(_this, edx, x, y, w, h);
}
typedef bool(__thiscall* tDispatchUserMessage)(void*, int type, unsigned int a3, unsigned int length, const void* msg_data);
tDispatchUserMessage otDispatchUserMessage;
bool __fastcall hkDispatchUserMessage(void* ecx, void* edx, int type, unsigned int a3, unsigned int length, const void* msg_data)
{
if (!g_csgo.m_gamerules->m_bIsValveDS()) {
if (g_cfg.misc.block_adv && (type == 7 || type == 8 || type == 5)) {
return true;
}
}
return otDispatchUserMessage(ecx, type, a3, length, msg_data);
}
//where you hooks
static auto CViewRender_PerformScreenOverlay = pattern::FindSignature("client.dll", "55 8b ec 51 a1 ? ? ? ? 53 56 8b d9");
ohkPerformScreenOverlay = (decltype(&hkPerformScreenOverlay))DetourFunction(reinterpret_cast<byte*>(CViewRender_PerformScreenOverlay), reinterpret_cast<byte*>(hkPerformScreenOverlay));
const auto dispatch_target = reinterpret_cast<void*>(get_virtual(g_csgo.m_client, 38));
MH_CreateHook(dispatch_target, &hkDispatchUserMessage, reinterpret_cast<void**>(&otDispatchUserMessage));
C++:
m_gamerules = pattern::find(m_client_dll, XOR("A1 ? ? ? ? 8B 0D ? ? ? ? 6A 00 68 ? ? ? ? C6")).add(0x1).get< C_CSGameRules* >();
__forceinline bool m_bIsValveDS( ) {
return get< bool >(0x0000007C);
}
( где он это взял я не знаю)
Последнее редактирование: