Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Hooks.hpp"
- #include "Options.hpp"
- #include "Utils.hpp"
- #include "XorStr.hpp"
- #include "GlowManager.h"
- #include "DrawManager.hpp"
- #include "EntityESP.hpp"
- #include <time.h>
- #include "ImGUI/imgui.h"
- #include "ImGUI/DX9/imgui_impl_dx9.h"
- #include <iomanip>
- #include <ctime>
- using namespace std;
- extern LRESULT ImGui_ImplDX9_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
- namespace Hooks
- {
- std::unique_ptr<VFTableHook> g_pD3DDevice9Hook = nullptr;
- std::unique_ptr<VFTableHook> g_pClientModeHook = nullptr;
- std::unique_ptr<VFTableHook> g_pMatSurfaceHook = nullptr;
- std::unique_ptr<VFTableHook> g_pVPanelHook = nullptr;
- std::unique_ptr<VFTableHook> g_pModelRender = nullptr;
- std::unique_ptr<DrawManager> g_pRenderer = nullptr;
- DrawModelExecute_t g_fnOriginalDrawModelExecute = nullptr;
- OverrideView_t g_fnOriginalOverrideView = nullptr;
- PaintTraverse_t g_fnOriginalPaintTraverse = nullptr;
- EndScene_t g_fnOriginalEndScene = nullptr;
- Reset_t g_fnOriginalReset = nullptr;
- CreateMove_t g_fnOriginalCreateMove = nullptr;
- PlaySound_t g_fnOriginalPlaySound = nullptr;
- DWORD GlowObjectBase = NULL;
- WNDPROC g_pOldWindowProc = nullptr;
- HWND g_hWindow = nullptr;
- DWORD OffsetSendPacket;
- DWORD GlowManager;
- bool vecPressedKeys[256] = {};
- bool g_bWasInitialized = false;
- int8_t chat;
- bool GSendPacket = true;
- using IsReadyFn = void(__cdecl*)();
- IsReadyFn IsReady;
- void Initialize()
- {
- NetvarManager::Instance()->CreateDatabase();
- NetvarManager::Instance()->Dump("netvar_dump.txt");
- GlowManager = *(DWORD*)(Utils::FindSignature(XorStr("client.dll"), XorStr("F3 ?? ?? ?? ?? ?? ?? ?? 83 C8 01 C7 05")) + 0x4);
- auto dwDevice = **(uint32_t**)(Utils::FindSignature(XorStr("shaderapidx9.dll"), XorStr("A1 ? ? ? ? 50 8B 08 FF 51 0C")) + 1);
- g_pD3DDevice9Hook = make_unique<VFTableHook>((PPDWORD)dwDevice, true);
- g_pClientModeHook = make_unique<VFTableHook>((PPDWORD)SourceEngine::Interfaces::ClientMode(), true);
- g_pMatSurfaceHook = make_unique<VFTableHook>((PPDWORD)SourceEngine::Interfaces::MatSurface(), true);
- g_pVPanelHook = make_unique<VFTableHook>((PPDWORD)SourceEngine::Interfaces::VGUIPanel(), true);
- while (!(g_hWindow = FindWindowA(XorStr("Valve001"), NULL))) Sleep(200);
- if (g_hWindow)
- g_pOldWindowProc = (WNDPROC)SetWindowLongPtr(g_hWindow, GWLP_WNDPROC, (LONG_PTR)Hooked_WndProc);
- g_pClientModeHook->Hook(35, (uintptr_t)hkGetViewModelFOV);
- g_fnOriginalReset = g_pD3DDevice9Hook->Hook(16, Hooked_Reset);
- g_fnOriginalEndScene = g_pD3DDevice9Hook->Hook(42, Hooked_EndScene);
- g_fnOriginalPlaySound = g_pMatSurfaceHook->Hook(82, (PlaySound_t)Hooked_PlaySound);
- g_fnOriginalCreateMove = g_pClientModeHook->Hook(24, (CreateMove_t)Hooked_CreateMove);
- g_fnOriginalOverrideView = g_pClientModeHook->Hook(18, (OverrideView_t)Hooked_OverrideView);
- g_fnOriginalPaintTraverse = g_pVPanelHook->Hook(41, (PaintTraverse_t)Hooked_PaintTraverse);
- //g_fnOriginalDrawModelExecute = g_pModelRender->Hook(21, (DrawModelExecute_t)Hooked_DrawModelExecute);
- }
- void Restore()
- {
- SetWindowLongPtr(g_hWindow, GWLP_WNDPROC, (LONG_PTR)g_pOldWindowProc);
- g_pRenderer->InvalidateObjects();
- g_pD3DDevice9Hook->RestoreTable();
- g_pClientModeHook->RestoreTable();
- g_pMatSurfaceHook->RestoreTable();
- g_pVPanelHook->RestoreTable();
- g_pModelRender->RestoreTable();
- }
- void USendPacket(byte toggle)
- {
- *(byte*)(OffsetSendPacket) = toggle;
- }
- void GUI_Init(IDirect3DDevice9* pDevice)
- {
- ImGui_ImplDX9_Init(g_hWindow, pDevice);
- g_pRenderer = make_unique<DrawManager>(pDevice);
- g_pRenderer->CreateObjects();
- g_bWasInitialized = true;
- }
- void __stdcall Hooked_DrawModelExecute(void* context, void* state, const model_t& info, matrix3x4_t* pCustomBoneToWorld)
- {
- }
- LRESULT __stdcall Hooked_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- switch (uMsg) {
- case WM_LBUTTONDOWN:
- vecPressedKeys[VK_LBUTTON] = true;
- break;
- case WM_LBUTTONUP:
- vecPressedKeys[VK_LBUTTON] = false;
- break;
- case WM_RBUTTONDOWN:
- vecPressedKeys[VK_RBUTTON] = true;
- break;
- case WM_RBUTTONUP:
- vecPressedKeys[VK_RBUTTON] = false;
- break;
- case WM_KEYDOWN:
- vecPressedKeys[wParam] = true;
- break;
- case WM_KEYUP:
- vecPressedKeys[wParam] = false;
- break;
- default: break;
- }
- {
- static bool isDown = false;
- static bool isClicked = false;
- if (vecPressedKeys[VK_INSERT]) {
- isClicked = false;
- isDown = true;
- }
- else if (!vecPressedKeys[VK_INSERT] && isDown) {
- isClicked = true;
- isDown = false;
- }
- else {
- isClicked = false;
- isDown = false;
- }
- if (isClicked) {
- Options::g_bMainWindowOpen = !Options::g_bMainWindowOpen;
- static auto cl_mouseenable = SourceEngine::Interfaces::CVar()->FindVar(XorStr("cl_mouseenable"));
- cl_mouseenable->SetValue(!Options::g_bMainWindowOpen);
- }
- }
- if (g_bWasInitialized && Options::g_bMainWindowOpen && ImGui_ImplDX9_WndProcHandler(hWnd, uMsg, wParam, lParam))
- return true;
- return CallWindowProc(g_pOldWindowProc, hWnd, uMsg, wParam, lParam);
- }
- float __stdcall hkGetViewModelFOV() {
- return Options::g_bViewModelFOV;
- }
- void __stdcall Hooked_PaintTraverse(PVOID pPanels, int edx, unsigned int vguiPanel, bool forceRepaint, bool allowForce)
- {
- auto pEngine = Interfaces::Engine();
- auto pLocal = C_CSPlayer::GetLocalPlayer();
- if (Options::g_bGlowESP)
- {
- CGlowObjectManager* GlowObjectManager = (CGlowObjectManager*)GlowManager;
- for (int i = 0; i < GlowObjectManager->size; ++i)
- {
- CGlowObjectManager::GlowObjectDefinition_t* glowEntity = &GlowObjectManager->m_GlowObjectDefinitions[i];
- IClientEntity* Entity = glowEntity->getEntity();
- if (Entity->GetClientClass()->m_ClassID = CCSPlayer)
- {
- glowEntity->set(Color(0, 0, 255, 255));
- }
- }
- }
- g_fnOriginalPaintTraverse(pPanels, edx, vguiPanel, forceRepaint, allowForce);
- }
- HRESULT __stdcall Hooked_EndScene(IDirect3DDevice9* pDevice)
- {
- static SourceEngine::ConVar* convar;
- if (!g_bWasInitialized) {
- GUI_Init(pDevice);
- convar = SourceEngine::Interfaces::CVar()->FindVar("cl_mouseenable");
- }
- else {
- ImGui::GetIO().MouseDrawCursor = Options::g_bMainWindowOpen;
- ImGui_ImplDX9_NewFrame();
- if (Options::g_bMainWindowOpen) {
- ImGui::Begin(XorStr("\t\t\t\t"), &Options::g_bMainWindowOpen, ImVec2(300, 250), 0.75f);
- {
- /*if (ImGui::CollapsingHeader(XorStr("Aimbot")))
- {
- }*/
- if (ImGui::CollapsingHeader(XorStr("Visuals"))) {
- // ImGui::Separator();
- ImGui::Checkbox(XorStr("Glow ESP"), &Options::g_bGlowESP);
- ImGui::Checkbox(XorStr("ESP Enabled"), &Options::g_bESPEnabled);
- ImGui::Checkbox(XorStr("Show Boxes"), &Options::g_bESPShowBoxes);
- ImGui::Checkbox(XorStr("Show Names"), &Options::g_bESPShowNames);
- ImGui::Separator();
- ImGui::ColorEdit3(XorStr("Ally Color"), Options::g_bESPAllyColor);
- ImGui::ColorEdit3(XorStr("Enemy Color"), Options::g_bESPEnemyColor);
- }
- if (ImGui::CollapsingHeader(XorStr("Misc"))) {
- ImGui::Checkbox(XorStr("Chat Spam"), &Options::g_bChatSpam);
- ImGui::Checkbox(XorStr("No Recoil"), &Options::g_bRCSEnabled);
- ImGui::Checkbox(XorStr("Bunny Hop"), &Options::g_bBHopEnabled);
- ImGui::Checkbox(XorStr("Auto-Accept"), &Options::g_bAutoAccept);
- ImGui::Separator();
- ImGui::Checkbox(XorStr("FOV Changer"), &Options::g_bFOVChanger);
- ImGui::SliderFloat(XorStr("FOV"), &Options::g_bFOV, 1.0f, 180.0f, "%");
- ImGui::SliderFloat(XorStr("ViewModel FOV"), &Options::g_bViewModelFOV, 1.0f, 360.0f, "%");
- }
- }
- ImGui::End();
- }
- g_pRenderer->BeginRendering();
- if (SourceEngine::Interfaces::Engine()->IsInGame() && Options::g_bESPEnabled) {
- for (int i = 1; i < SourceEngine::Interfaces::Engine()->GetMaxClients(); i++) {
- if (i == SourceEngine::Interfaces::Engine()->GetLocalPlayer())
- continue;
- auto pEntity = static_cast<C_CSPlayer*>(SourceEngine::Interfaces::EntityList()->GetClientEntity(i));
- if (!pEntity) continue;
- if (!pEntity->IsAlive() || pEntity->IsDormant()) continue;
- if (pEntity->GetClientClass()->m_ClassID == SourceEngine::EClassIds::CCSPlayer) {
- EntityESP esp(pEntity);
- if (Options::g_bESPShowBoxes)
- esp.RenderESP(*g_pRenderer);
- if (Options::g_bESPShowNames)
- esp.RenderName(*g_pRenderer);
- }
- }
- }
- ImGui::Render();
- g_pRenderer->EndRendering();
- }
- return g_fnOriginalEndScene(pDevice);
- }
- HRESULT __stdcall Hooked_Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
- {
- if (!g_bWasInitialized) return g_fnOriginalReset(pDevice, pPresentationParameters);
- ImGui_ImplDX9_InvalidateDeviceObjects();
- g_pRenderer->InvalidateObjects();
- auto hr = g_fnOriginalReset(pDevice, pPresentationParameters);
- g_pRenderer->CreateObjects();
- ImGui_ImplDX9_CreateDeviceObjects();
- return hr;
- }
- using namespace SourceEngine;
- double DEG2RAD(double degrees) {
- return degrees * 4.0 * atan(1.0) / 180.0;
- }
- bool __stdcall Hooked_CreateMove(float sample_input_frametime, SourceEngine::CUserCmd* pCmd)
- {
- if (pCmd && pCmd->command_number) {
- bool bRet = g_fnOriginalCreateMove(SourceEngine::Interfaces::ClientMode(), sample_input_frametime, pCmd);
- auto pLocal = C_CSPlayer::GetLocalPlayer();
- auto pEngine = Interfaces::Engine();
- DWORD* framePointer;
- __asm mov framePointer, ebp;
- *(bool*)(*framePointer - 0x1C) = GSendPacket;
- if (Options::g_bBHopEnabled) {
- if ((pCmd->buttons & IN_JUMP) && !(pLocal->GetFlags() & (int)SourceEngine::EntityFlags::FL_ONGROUND))
- pCmd->buttons &= ~IN_JUMP;
- }
- if (Options::g_bRCSEnabled) {
- auto punchAngles = *pLocal->AimPunch() * 2.0f;
- if (punchAngles.x != 0.0f || punchAngles.y != 0) {
- pCmd->viewangles -= punchAngles;
- if (!Utils::Clamp(pCmd->viewangles)) {
- abort();
- }
- return false;
- }
- }
- }
- return false;
- }
- void __stdcall Hooked_OverrideView(CViewSetup* vsView)
- {
- if (Interfaces::Engine()->IsInGame() && Options::g_bFOVChanger) {
- vsView->fov = Options::g_bFOV;
- hkGetViewModelFOV();
- }
- g_fnOriginalOverrideView(vsView);
- }
- void __stdcall Hooked_PlaySound(const char* szFileName)
- {
- g_fnOriginalPlaySound(SourceEngine::Interfaces::MatSurface(), szFileName);
- if (!Options::g_bAutoAccept || SourceEngine::Interfaces::Engine()->IsInGame()) return;
- if (!strcmp(szFileName, "weapons/hegrenade/beep.wav")) {
- IsReady = (IsReadyFn)((DWORD)Utils::FindSignature(XorStr("client.dll"), XorStr("55 8B EC 83 E4 F8 83 EC 08 56 8B 35 ?? ?? ?? ?? 57 8B 8E")));
- IsReady();
- FLASHWINFO fi;
- fi.cbSize = sizeof(FLASHWINFO);
- fi.hwnd = g_hWindow;
- fi.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG;
- fi.uCount = 0;
- fi.dwTimeout = 0;
- FlashWindowEx(&fi);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment