![]() |
kiero hook d3d9 при закрытии меню игра зависает но меню не закрывается и я не могу ни с чем взаимодействовать, а при открытии все отвисает и я могу взаимодейстовать и с читом и с игрой(я про ксго говорю а не про самп) что делать?
|
покажи хук хотя бы…
|
Цитата:
using namespace hazedumper; #ifdef _WIN64 #define GWL_WNDPROC GWLP_WNDPROC #endif extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); EndScene oEndScene = NULL; WNDPROC oWndProc; static HWND window = NULL; void InitImGui(LPDIRECT3DDEVICE9 pDevice) { ImGui::CreateContext(); ImGuiIO& io = ImGui::GetIO(); io.ConfigFlags = ImGuiConfigFlags_NoMouseCursorChange; ImGui_ImplWin32_Init(window); ImGui_ImplDX9_Init(pDevice); } bool bunnyhop = false; bool autofire = false; bool glow = false; bool autowall = false; bool fovchanger = false; bool thirdperson = false; int fov = 90; bool watermark = false; bool clantag = false; bool init = false; bool menu = false; static int tabb = 3; long __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice) { if (!init) { InitImGui(pDevice); init = true; } uintptr_t module = (uintptr_t)(GetModuleHandleA("client.dll")); uintptr_t BaseAddress = (uintptr_t)(module + 0xDEA98C); if (thirdperson) { int localPlayer = *(int*)(BaseAddress + 0xDEA98C); if (localPlayer != NULL) { *(int*)(localPlayer + 0x3388) = 1; } } if (fov) { int localPlayer = *(int*)(BaseAddress + 0xDEA98C); if (localPlayer != NULL) { int iFov = *(int*)(localPlayer + 0x333C); *(int*)(localPlayer + 0x333C) = fov; } } if (GetAsyncKeyState(VK_END)) { kiero::shutdown(); return 0; } if (GetAsyncKeyState(VK_INSERT) & 1) { menu = !menu; } if (menu) { ImGui_ImplDX9_NewFrame(); ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); ImGui::SetNextWindowSize(ImVec2(600, 500)); ImGui::SetNextWindowPos(ImVec2(0, 0)); ImGui::Begin("DarkWare", nullptr, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoTitleBar); if (ImGui::Button("Misc", ImVec2(100.f, 0.f))) { tabb = 0; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button("Visual", ImVec2(100.f, 0.f))) { tabb = 1; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button("AntiAim", ImVec2(100.f, 0.f))) { tabb = 2; } ImGui::SameLine(0.f, 2.f); if (ImGui::Button("RageBot", ImVec2(100.f, 0.f))) { tabb = 3; } ImGui::SameLine(0.f, 2.f); if (tabb == 0) { ImGui::SetCursorPos(ImVec2(10.f, 50.f)); ImGui::Checkbox("Bunnyhop", &bunnyhop); ImGui::Checkbox("Thirdperson", &thirdperson); ImGui::Checkbox("WaterMark", &watermark); ImGui::Checkbox("Clantag", &clantag); } else if (tabb == 1) { ImGui::Checkbox("Glow", &glow); ImGui::Checkbox("Fov Changer", &fovchanger); if (fovchanger) { ImGui::SliderInt("Fov amout",&fov, -180, 180); } } else if (tabb == 2) { } else if (tabb == 3) { ImGui::Checkbox("AutoFire", &autofire); ImGui::Checkbox("AutoWall", &autowall); } ImGui::End(); ImGui::EndFrame(); ImGui::Render(); ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData()) ; return oEndScene(pDevice); } } LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (true && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam)) return true; return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam); } BOOL CALLBACK EnumWindowsCallback(HWND handle, LPARAM lParam) { DWORD wndProcId; GetWindowThreadProcessId(handle, &wndProcId); if (GetCurrentProcessId() != wndProcId) return TRUE; // skip to next window window = handle; return FALSE; // window found abort search } HWND GetProcessWindow() { window = NULL; EnumWindows(EnumWindowsCallback, NULL); return window; } DWORD WINAPI MainThread(LPVOID lpReserved) { bool attached = false; do { if (kiero::init(kiero::RenderType::D3D9) == kiero::Status::Success) { kiero::bind(42, (void**)& oEndScene, hkEndScene); do window = GetProcessWindow(); while (window == NULL); oWndProc = (WNDPROC)SetWindowLongPtr(window, GWL_WNDPROC, (LONG_PTR)WndProc); attached = true; } } while (!attached); return TRUE; } BOOL WINAPI DllMain(HMODULE hMod, DWORD dwReason, LPVOID lpReserved) { switch (dwReason) { case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hMod); CreateThread(nullptr, 0, MainThread, hMod, 0, nullptr); break; case DLL_PROCESS_DETACH: kiero::shutdown(); break; } return TRUE; } |
| Время: 16:32 |