Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Windows.h>
- #include <d3d9.h>
- #include <d3dx9.h>
- #pragma comment(lib, "d3d9.lib")
- #pragma comment(lib, "d3dx9.lib")
- #define pYellow D3DCOLOR_ARGB( 255, 255, 255, 000 )
- #define pRed D3DCOLOR_ARGB( 255, 255, 000, 000 )
- #define pGreen D3DCOLOR_ARGB( 255, 000, 255, 000 )
- typedef HRESULT (WINAPI* pEndScene)(LPDIRECT3DDEVICE9);
- pEndScene oEndScene = NULL;
- HRESULT WINAPI MyEndScene(LPDIRECT3DDEVICE9);
- void *DetourFunc(BYTE *src, const BYTE *dst, const int len);
- DWORD* Direct3D_VMTable = NULL;
- bool ClossHair = true;
- HMODULE D3D9;
- LPDIRECT3D9 pD3D;
- LPDIRECT3DDEVICE9 pDev;
- D3DVIEWPORT9 Viewport;
- LRESULT CALLBACK MsgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){return DefWindowProc(hwnd, uMsg, wParam, lParam);}
- VOID WINAPI MYHOOK( VOID )
- {
- WNDCLASSEX wc = {sizeof(WNDCLASSEX),CS_CLASSDC,MsgProc,0L,0L, GetModuleHandle(NULL),NULL,NULL,NULL,NULL,"DX",NULL};
- RegisterClassEx(&wc);
- HWND hWnd = CreateWindow("DX",NULL,WS_OVERLAPPEDWINDOW,100,100,300,300,GetDesktopWindow(),NULL,wc.hInstance,NULL);
- while( D3D9 == NULL )
- {
- D3D9 = GetModuleHandleA( "d3d9.dll" );
- Sleep( 100 );
- }
- D3DPRESENT_PARAMETERS D3D_PP = {0};
- IDirect3D9 * (WINAPI *oDirect3DCreate9)(UINT SDKVersion);
- *(PDWORD)&oDirect3DCreate9 = (DWORD)GetProcAddress( D3D9, "Direct3DCreate9" );
- pD3D = oDirect3DCreate9( D3D_SDK_VERSION );
- D3D_PP.Windowed = TRUE;
- D3D_PP.SwapEffect = D3DSWAPEFFECT_DISCARD;
- D3D_PP.BackBufferFormat = D3DFMT_UNKNOWN;
- pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &D3D_PP, &pDev );
- Direct3D_VMTable = *(DWORD**)pDev;
- {
- oEndScene = (pEndScene) DetourFunc((BYTE*)Direct3D_VMTable[42], (BYTE*) MyEndScene, 5);
- }
- Sleep( 400 );
- pDev->Release( );
- pD3D->Release( );
- DestroyWindow(hWnd);
- }
- void FuncCross(LPDIRECT3DDEVICE9 pDev, DWORD color, int i)
- {
- pDev->GetViewport( &Viewport );
- DWORD ScreenCenterX = (Viewport.Width / 2);
- DWORD ScreenCenterY = (Viewport.Height / 2);
- D3DRECT rec1 = {ScreenCenterX-i, ScreenCenterY, ScreenCenterX+ i, ScreenCenterY+1};
- D3DRECT rec2 = {ScreenCenterX, ScreenCenterY-i, ScreenCenterX+ 1,ScreenCenterY+i};
- pDev->Clear( 1, &rec1, D3DCLEAR_TARGET, color, 0, 0 );
- pDev->Clear( 1, &rec2, D3DCLEAR_TARGET, color, 0, 0 );
- }
- HRESULT WINAPI MyEndScene (LPDIRECT3DDEVICE9 pDev)
- {
- if(ClossHair)
- {
- FuncCross(pDev, pGreen, 50);
- }
- return oEndScene(pDev);
- }
- BOOL WINAPI DllMain( HINSTANCE hModule, DWORD dwReason, LPVOID lpvReserved )
- {
- if( dwReason == DLL_PROCESS_ATTACH )
- {
- CreateThread( NULL, NULL, (LPTHREAD_START_ROUTINE)MYHOOK, NULL, NULL, NULL);
- MessageBox(NULL,"Credits : JasperXD","JasperXD pub v1 Crosshair",NULL);
- }
- return TRUE;
- }
- void *DetourFunc(BYTE *src, const BYTE *dst, const int len)
- {
- BYTE *jmp = (BYTE*)malloc(len+5);
- DWORD dwback;
- VirtualProtect(src, len, PAGE_READWRITE, &dwback);
- memcpy(jmp, src, len); jmp += len;
- jmp[0] = 0xE9;
- *(DWORD*)(jmp+1) = (DWORD)(src+len - jmp) - 5;
- src[0] = 0xE9;
- *(DWORD*)(src+1) = (DWORD)(dst - src) - 5;
- VirtualProtect(src, len, dwback, &dwback);
- return (jmp-len);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement