Official site anti-cheat Ultra Core Protector

Home Download F.A.Q. Addons Monitor Forum Support Advertise English version site UCP Anti-Cheat  Russian version site UCP Anti-Cheat
Ultra Core Protector - is the client-server anti-cheat freeware, for server protection from unscrupulous players.

Abilities Supported games  
Half-Life
Condition Zero
Counter-Strike 1.6
Day of Defeat
Adrenaline Gamer
Team Fortress Classic
Counter-Strike Source
MU Online
Ragnarok Online
Half-Life 2 Deathmatch
Adrenaline Gamer 2
Team Fortress 2
CSS: Simple internal multihack

#include "interfaces.h"
#include "tools/tools.h"

//------------------------------------------//
// CreateInterface
//------------------------------------------//
IBaseClientDll* g_client = nullptr;
IClientEntityList* g_entitylist = nullptr;
IVEngineClient* g_engine = nullptr;
IVModelInfo* g_modelinfo = nullptr;
IEngineTrace* g_trace = nullptr;
IVDebugOverlay* g_debugoverlay = nullptr;
ICvar* g_cvar = nullptr;
//------------------------------------------//
// Pattern Scan
//------------------------------------------//
CInput* g_input = nullptr;
CBaseClientState* g_clientstate = nullptr;
IDirect3DDevice9* g_d3ddevice = nullptr;
CGlobalVars* g_globalvars = nullptr;
//------------------------------------------//
// Initialize Interfaces
//------------------------------------------//
void initialize_interfaces()
{
//------------------------------------------//
// Factories
//------------------------------------------//
auto client_factory = reinterpret_cast(GetProcAddress(GetModuleHandleA("client.dll"), "CreateInterface"));
auto engine_factory = reinterpret_cast(GetProcAddress(GetModuleHandleA("engine.dll"), "CreateInterface"));
auto vstdlib_factory = reinterpret_cast(GetProcAddress(GetModuleHandleA("vstdlib.dll"), "CreateInterface"));
//------------------------------------------//
// CreateInterface
//------------------------------------------//
g_client = reinterpret_cast(client_factory("VClient017", nullptr));
g_entitylist = reinterpret_cast(client_factory("VClientEntityList003", nullptr));
g_engine = reinterpret_cast(engine_factory("VEngineClient014", nullptr));
g_modelinfo = reinterpret_cast(engine_factory("VModelInfoClient006", nullptr));
g_trace = reinterpret_cast(engine_factory("EngineTraceClient003", nullptr));
g_debugoverlay = reinterpret_cast(engine_factory("VDebugOverlay003", nullptr));
g_cvar = reinterpret_cast(vstdlib_factory("VEngineCvar004", nullptr));
//------------------------------------------//
// Pattern Scan
//------------------------------------------//
g_input = **reinterpret_cast(tools::find_pattern("client.dll", "8B 0D ? ? ? ? 8B 01 FF 60 44") + 0x2);
g_clientstate = *reinterpret_cast(tools::find_pattern("engine.dll", "83 3D ? ? ? ? ? B8 ? ? ? ? B9 ? ? ? ? 0F 4D C1") + 0x2);
g_d3ddevice = **reinterpret_cast(tools::find_pattern("shaderapidx9.dll", "A1 ? ? ? ? 8D 53 08") + 0x1);
g_globalvars = **reinterpret_cast((*reinterpret_cast(g_client))[0] + 0x34);
}

#include "hooks.h"
#include "Settings.h"
#include "SDK\CBaseEntity.h"
#include "Visuals.h"
#include "Menu.h"

void Initialize_GUI(IDirect3DDevice9* vDevice)
{
ImGui_ImplDX9_Init(hWindow, vDevice);

auto& style = ImGui::GetStyle();

style.ChildWindowRounding = 3.f;
style.GrabRounding = 0.f;
style.WindowRounding = 0.f;
style.ScrollbarRounding = 3.f;
style.FrameRounding = 3.f;
style.WindowTitleAlign = ImVec2(0.5f, 0.5f);

style.Colors[ImGuiCol_Text] = ImVec4(0.73f, 0.73f, 0.73f, 1.00f);
style.Colors[ImGuiCol_TextDisabled] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f);
style.Colors[ImGuiCol_WindowBg] = ImVec4(0.26f, 0.26f, 0.26f, 0.95f);
style.Colors[ImGuiCol_ChildWindowBg] = ImVec4(0.28f, 0.28f, 0.28f, 1.00f);
style.Colors[ImGuiCol_PopupBg] = ImVec4(0.26f, 0.26f, 0.26f, 1.00f);
style.Colors[ImGuiCol_Border] = ImVec4(0.26f, 0.26f, 0.26f, 1.00f);
style.Colors[ImGuiCol_BorderShadow] = ImVec4(0.26f, 0.26f, 0.26f, 1.00f);
style.Colors[ImGuiCol_FrameBg] = ImVec4(0.16f, 0.16f, 0.16f, 1.00f);
style.Colors[ImGuiCol_FrameBgHovered] = ImVec4(0.16f, 0.16f, 0.16f, 1.00f);
style.Colors[ImGuiCol_FrameBgActive] = ImVec4(0.16f, 0.16f, 0.16f, 1.00f);
style.Colors[ImGuiCol_TitleBg] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_TitleBgActive] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_MenuBarBg] = ImVec4(0.26f, 0.26f, 0.26f, 1.00f);
style.Colors[ImGuiCol_ScrollbarBg] = ImVec4(0.21f, 0.21f, 0.21f, 1.00f);
style.Colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_ComboBg] = ImVec4(0.32f, 0.32f, 0.32f, 1.00f);
style.Colors[ImGuiCol_CheckMark] = ImVec4(0.78f, 0.78f, 0.78f, 1.00f);
style.Colors[ImGuiCol_SliderGrab] = ImVec4(0.74f, 0.74f, 0.74f, 1.00f);
style.Colors[ImGuiCol_SliderGrabActive] = ImVec4(0.74f, 0.74f, 0.74f, 1.00f);
style.Colors[ImGuiCol_Button] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_ButtonHovered] = ImVec4(0.43f, 0.43f, 0.43f, 1.00f);
style.Colors[ImGuiCol_ButtonActive] = ImVec4(0.11f, 0.11f, 0.11f, 1.00f);
style.Colors[ImGuiCol_Header] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_HeaderHovered] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_HeaderActive] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_Column] = ImVec4(0.39f, 0.39f, 0.39f, 1.00f);
style.Colors[ImGuiCol_ColumnHovered] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
style.Colors[ImGuiCol_ColumnActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
style.Colors[ImGuiCol_ResizeGrip] = ImVec4(0.36f, 0.36f, 0.36f, 1.00f);
style.Colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
style.Colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
style.Colors[ImGuiCol_CloseButton] = ImVec4(0.59f, 0.59f, 0.59f, 1.00f);
style.Colors[ImGuiCol_CloseButtonHovered] = ImVec4(0.98f, 0.39f, 0.36f, 1.00f);
style.Colors[ImGuiCol_CloseButtonActive] = ImVec4(0.98f, 0.39f, 0.36f, 1.00f);
style.Colors[ImGuiCol_PlotLines] = ImVec4(0.39f, 0.39f, 0.39f, 1.00f);
style.Colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
style.Colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
style.Colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
style.Colors[ImGuiCol_TextSelectedBg] = ImVec4(0.32f, 0.52f, 0.65f, 1.00f);
style.Colors[ImGuiCol_ModalWindowDarkening] = ImVec4(0.20f, 0.20f, 0.20f, 0.50f);

DrawManager = std::make_unique(vDevice);
DrawManager->CreateObjects();
}

HRESULT STDMETHODCALLTYPE EndScene_Hooked(IDirect3DDevice9* vDevice)
{
if (bWasInitialized)
{
ImGui::GetIO().MouseDrawCursor = Settings::Menu::Opened;
ImGui_ImplDX9_NewFrame();

Menu::EndScene();

DrawManager->BeginRendering();

Visuals::EndScene();

ImGui::Render();

DrawManager->EndRendering();
}
else
{
Initialize_GUI(vDevice);
bWasInitialized = true;
}

return oEndScene(vDevice);
}

#pragma once

#include "sdk/sdk.h"
#include
#include

//------------------------------------------//
// CreateInterface
//------------------------------------------//
extern IBaseClientDll* g_client;
extern IClientEntityList* g_entitylist;
extern IVEngineClient* g_engine;
extern IVModelInfo* g_modelinfo;
extern IEngineTrace* g_trace;
extern IVDebugOverlay* g_debugoverlay;
extern ICvar* g_cvar;
//------------------------------------------//
// Pattern Scan
//------------------------------------------//
extern CInput* g_input;
extern CBaseClientState* g_clientstate;
extern IDirect3DDevice9* g_d3ddevice;
extern CGlobalVars* g_globalvars;
//------------------------------------------//
// Initialize Interfaces
//------------------------------------------//
extern void initialize_interfaces();