Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Source Code by LEE
- // Base from www.unknowncheats.me && www.mpgh.net
- // main.h
- #include <windows.h>
- #include <d3d9.h>
- #include <d3dx9.h>
- #pragma comment (lib, "d3dx9.lib")
- #include <detours.h>
- #pragma comment (lib, "detours.lib")
- #include <iostream>
- #include <fstream>
- #include "MenuSprite.h"
- using namespace std;
- struct Menu_t
- {
- char* type;
- int value;
- bool Number;
- int maxchoice;
- };
- Menu_t MyMenu[7] = {
- {"Wallhack", 1, false, 2},
- {"Color1", 4, true, 11},
- {"Color2", 2, true, 11},
- {"Crosshair", 1, true, 4000},
- {"Speedhack", 0, false, 2},
- {"Base Walk[F11]", 0, false, 2},
- {"Walk Through[Home]", 0, false, 2},
- };
- LPD3DXFONT menuFont = NULL;
- LPDIRECT3DTEXTURE9 txBody = NULL;
- LPD3DXSPRITE spBody = NULL;
- D3DXVECTOR3 pBody;
- int menuIndex = 0;
- bool ShowMenu = true;
- DWORD StartMenuTextX = 50;
- DWORD StartMenuTextY = 200;
- DWORD StartMenuValueX = 210;
- DWORD MenuRank = 20;
- int MaxChoice = 7;
- HRESULT(__stdcall*pEndScene)(LPDIRECT3DDEVICE9) = NULL;
- HRESULT(__stdcall*pReset)(LPDIRECT3DDEVICE9,D3DPRESENT_PARAMETERS *) = NULL;
- //main.cpp
- #include "main.h"
- void DrawString(LPD3DXFONT fromFont, int x, int y, DWORD color, const char *fmt, ...)
- {
- RECT FontPos = { x, y, x + 120, y + 16 };
- char buf[1024] = {'\0'};
- va_list va_alist;
- va_start(va_alist, fmt);
- vsprintf(buf, fmt, va_alist);
- va_end(va_alist);
- fromFont->DrawText(NULL,buf, -1, &FontPos, DT_NOCLIP, color);
- }
- BOOL bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
- {
- for(;*szMask;++szMask,++pData,++bMask)
- if(*szMask=='x' && *pData!=*bMask) return 0;
- return (*szMask) == NULL;
- }
- DWORD FindPattern(DWORD dwdwAdd,DWORD dwLen,BYTE *bMask,char * szMask)
- {
- for(DWORD i=0; i<dwLen; i++)
- if (bCompare((BYTE*)(dwdwAdd+i),bMask,szMask)) return (DWORD)(dwdwAdd+i);
- return 0;
- }
- HRESULT __stdcall myReset(LPDIRECT3DDEVICE9 pDevice,D3DPRESENT_PARAMETERS *pPresentationParameters)
- {
- __asm nop;
- HRESULT resultReset = pReset(pDevice,pPresentationParameters);
- if(SUCCEEDED(resultReset))
- {
- if(menuFont) menuFont->OnResetDevice();
- if(spBody) spBody->OnResetDevice();
- }
- return resultReset;
- }
- HRESULT __stdcall myEndScene(LPDIRECT3DDEVICE9 pDevice)
- {
- __asm nop;
- if(GetAsyncKeyState(VK_END)&1) ShowMenu = !ShowMenu;
- if(ShowMenu)
- {
- if(GetAsyncKeyState(VK_LEFT)&1) MyMenu[menuIndex].value-=1;
- if(GetAsyncKeyState(VK_RIGHT)&1) MyMenu[menuIndex].value+=1;
- if(GetAsyncKeyState(VK_DOWN)&1) menuIndex+=1;
- if(GetAsyncKeyState(VK_UP)&1) menuIndex-=1;
- if(menuIndex < 0) menuIndex = 0;
- if(menuIndex > (MaxChoice-1)) menuIndex = (MaxChoice-1);
- if(MyMenu[menuIndex].value < 0) MyMenu[menuIndex].value = 0;
- if(MyMenu[menuIndex].value > (MyMenu[menuIndex].maxchoice -1)) MyMenu[menuIndex].value = (MyMenu[menuIndex].maxchoice -1);
- }
- if(menuFont == NULL) D3DXCreateFontA(pDevice, 15, 0, FW_BOLD, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Tahoma", &menuFont);
- if(txBody == NULL)
- D3DXCreateTextureFromFileInMemory(pDevice, &_MenuSprite, sizeof(_MenuSprite), &txBody);
- if(spBody == NULL)
- D3DXCreateSprite(pDevice, &spBody);
- if(ShowMenu == true && menuFont != NULL)
- {
- pBody.x=0.0f; pBody.y= 0.0f;
- pBody.z=0.0f;
- spBody->Begin(D3DXSPRITE_ALPHABLEND);
- spBody->Draw(txBody,NULL,NULL,&D3DXVECTOR3(10.0f,10.0f, 0.0f), 0xFFFFFFFF);
- spBody->End();
- for(int i = 0; i < MaxChoice; i++)
- {
- if(i == menuIndex)
- {
- DrawString(menuFont,StartMenuTextX, StartMenuTextY+(i*MenuRank),0xFF00FF00, "%s",MyMenu[i].type);
- if(MyMenu[i].value == 0 && MyMenu[i].Number == false)
- {
- DrawString(menuFont,StartMenuValueX, StartMenuTextY+(i*MenuRank),0xFF00FF00, "Off");
- }
- else if(MyMenu[i].value == 1 && MyMenu[i].Number == false)
- {
- DrawString(menuFont,StartMenuValueX, StartMenuTextY+(i*MenuRank),0xFF00FF00, "On");
- }
- else
- {
- DrawString(menuFont,StartMenuValueX, StartMenuTextY+(i*MenuRank),0xFF00FF00, "%i",MyMenu[i].value);
- }
- }
- else
- {
- DrawString(menuFont,StartMenuTextX, StartMenuTextY+(i*MenuRank),0xFF0000FF, "%s",MyMenu[i].type);
- if(MyMenu[i].value == 0 && MyMenu[i].Number == false)
- {
- DrawString(menuFont,StartMenuValueX, StartMenuTextY+(i*MenuRank),0xFF0000FF, "Off");
- }
- else if(MyMenu[i].value == 1 && MyMenu[i].Number == false)
- {
- DrawString(menuFont,StartMenuValueX, StartMenuTextY+(i*MenuRank),0xFF0000FF, "On");
- }
- else
- {
- DrawString(menuFont,StartMenuValueX, StartMenuTextY+(i*MenuRank),0xFF0000FF, "%i",MyMenu[i].value);
- }
- }
- }
- DrawString(menuFont,90, 180,0xFF0000FF, "DEMO D3DMENU");
- DrawString(menuFont,85, 480,0xFF0000FF, "[End] Show/Hide");
- }
- return pEndScene(pDevice);
- }
- VOID Dx9Hook()
- {
- DWORD hD3D = NULL;
- DWORD * VTable;
- while (!hD3D) hD3D = (DWORD)GetModuleHandle("d3d9.dll");
- DWORD PPPDevice = FindPattern(hD3D, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
- memcpy( &VTable, (VOID *)(PPPDevice + 2), 4);
- pEndScene = (HRESULT(__stdcall*)(LPDIRECT3DDEVICE9))VTable[42];
- pReset = (HRESULT(__stdcall*)(LPDIRECT3DDEVICE9,D3DPRESENT_PARAMETERS *))VTable[16];
- DetourTransactionBegin();
- DetourUpdateThread(GetCurrentThread());
- DetourAttach(&(PVOID&)pEndScene, myEndScene);
- DetourAttach(&(PVOID&)pReset, myReset);
- DetourTransactionCommit();
- }
- BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
- {
- if( fdwReason == 1 )
- {
- CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Dx9Hook, NULL, NULL, NULL);
- return TRUE;
- }
- return FALSE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement