Advertisement
GaztoofV2

Untitled

May 16th, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. #include "Includes.h"
  2.  
  3. #pragma comment(lib, "d3d9.lib")
  4. #pragma comment(lib, "d3dx9.lib")
  5.  
  6. void* d3d9Device[119];
  7. BYTE EndSceneBytes[7]{ 0 };
  8. tEndScene oEndScene = nullptr;
  9.  
  10. extern LPDIRECT3DDEVICE9 pDevice = nullptr;
  11. extern LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
  12. Hack* hack;
  13.  
  14. WNDPROC oWndProc;
  15. DWORD* D3d9VTable;
  16. DWORD D3d9Base;
  17.  
  18. bool showMenu = true;
  19.  
  20. const char* windowName = "Counter-Strike: Global Offensive";
  21.  
  22. void DrawImGui() {
  23. ImGui_ImplDX9_NewFrame();
  24. ImGui_ImplWin32_NewFrame();
  25.  
  26. ImGui::NewFrame();
  27.  
  28. ImGui::Begin("Window");
  29.  
  30. // start doing ur imgui drawing here
  31. ImGui::Text("Test");
  32.  
  33. ImGui::Render();
  34.  
  35. ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
  36. }
  37.  
  38. void APIENTRY hkEndScene(LPDIRECT3DDEVICE9 o_pDevice) {
  39. if (!pDevice)
  40. pDevice = o_pDevice;
  41.  
  42. static bool init = true;
  43. if (init)
  44. {
  45. init = false;
  46. ImGui::CreateContext();
  47. ImGuiIO& io = ImGui::GetIO();
  48.  
  49. ImGui_ImplWin32_Init(FindWindowA(NULL, windowName));
  50. ImGui_ImplDX9_Init(pDevice);
  51. }
  52.  
  53. if (showMenu) {
  54. DrawImGui();
  55. }
  56.  
  57. oEndScene(pDevice);
  58. }
  59.  
  60. LRESULT __stdcall WndProc(const HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
  61. if (showMenu && ImGui_ImplWin32_WndProcHandler(hWnd, uMsg, wParam, lParam))
  62. return true;
  63.  
  64. return CallWindowProc(oWndProc, hWnd, uMsg, wParam, lParam);
  65. }
  66.  
  67. DWORD WINAPI mainThread(HMODULE hModule) {
  68. if (GetD3D9Device(d3d9Device, sizeof(d3d9Device))) {
  69. memcpy(EndSceneBytes, (char*)d3d9Device[42], 7);
  70.  
  71. oEndScene = (tEndScene)TrampHook((char*)d3d9Device[42], (char*)hkEndScene, 7);
  72. oWndProc = (WNDPROC)SetWindowLongPtr(window, GWL_WNDPROC, (LONG_PTR)WndProc);
  73. }
  74.  
  75. while (!GetAsyncKeyState(VK_END)) {
  76.  
  77. if (GetAsyncKeyState(VK_INSERT)) {
  78. showMenu = !showMenu;
  79. Sleep(500);
  80. }
  81.  
  82. }
  83.  
  84. Patch((BYTE*)d3d9Device[42], EndSceneBytes, 7);
  85.  
  86. Sleep(1000);
  87.  
  88. FreeLibraryAndExitThread(hModule, 0);
  89. }
  90.  
  91. BOOL APIENTRY DllMain(HMODULE hModule,
  92. DWORD ul_reason_for_call,
  93. LPVOID lpReserved
  94. )
  95. {
  96. switch (ul_reason_for_call)
  97. {
  98. case DLL_PROCESS_ATTACH:
  99. CloseHandle(CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)mainThread, hModule, 0, nullptr));
  100. case DLL_THREAD_ATTACH:
  101. case DLL_THREAD_DETACH:
  102. case DLL_PROCESS_DETACH:
  103. break;
  104. }
  105. return TRUE;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement