Пользователь
-
Автор темы
- #1
заходим в sdk.hpp и после g_PhysSurface вставляем вот это
потом заходим в sdk.cpp и также после g_PhysSurface вставляем
дальше тут же находим dx9api после него пишем
дальше видим g_ClientState после него пишем это
дальше заходим в hooks.hpp в index после последнего прописываем
дальше ищем ласт typedef,using нашли после него пишем
после этого ищем хуки и после последнего прописываем сам хук
дальше идем в hooks.cpp
после clientmode_hook или любой другой прописываем
дальше в иницизилизации хуков пишем
а теперь сами хуки для байпасса обс
вот на это и все, этот метод байпасит обс, да на земетку это кастом vmt hook если че
Код:
extern IDirect3DDevice9* g_Overlay;
extern IDirect3DDevice9* g_Reset;
Код:
IDirect3DDevice9* g_Overlay = nullptr;
IDirect3DDevice9* g_Reset = nullptr;
Код:
auto overlay = GetModuleHandleA("gameoverlayrenderer.dll");
Код:
g_Overlay = **(IDirect3DDevice9***)(Utils::PatternScan(overlay, "FF 15 ? ? ? ? 8B F8 85 DB") + 2);
g_Reset = **(IDirect3DDevice9***)(Utils::PatternScan(overlay, "FF 15 ? ? ? ? 8B F8 85 FF 78 18") + 2);
Код:
constexpr auto PresentScene = 17;
Код:
using PresentScene = long(__stdcall*)(IDirect3DDevice9*, const RECT*, const RECT*, HWND, const RGNDATA*);
Код:
long __stdcall hkPresent (IDirect3DDevice9* pDevice, const RECT *pSourceRect, const RECT *pDestRect, HWND hDestWindowOverride, const RGNDATA *pDirtyRegion);
после clientmode_hook или любой другой прописываем
Код:
VMTHook* present_hook;
VMTHook* reset_hook;
Код:
present_hook = new VMTHook(g_Overlay);
reset_hook = new VMTHook(g_Reset);
present_hook->HookFunction(hkPresent,0);
reset_hook-> HookFunction(hkReset,0);
Код:
long __stdcall hkPresent(IDirect3DDevice9* device, const RECT *pSourceRect, const RECT *pDestRect, HWND hDestWindowOverride, const RGNDATA *pDirtyRegion)
{
static auto ofunc = present_hook->GetOriginalFunction<PresentScene>(index::PresentScene);
ImGui_ImplDX9_NewFrame();
auto esp_drawlist = Render::Get().RenderScene();
Menu::Get().Render();
Render::Get().BeginScene();
ImGui::Render();
ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData(), esp_drawlist);
return ofunc(device, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
}
//Reset
long __stdcall hkReset(IDirect3DDevice9* device, D3DPRESENT_PARAMETERS* pPresentationParameters)
{
auto oReset = reset_hook->GetOriginalFunction<Reset>(index::Reset);
Menu::Get().OnDeviceLost();
auto hr = oReset(device, pPresentationParameters);
if (hr >= 0) {
Menu::Get().OnDeviceReset();
}
return hr;
}
Последнее редактирование: