VGM.Daponsent ADMINISTRATOR
Jumlah posting : 64 Points : 2000118 Join date : 04.04.12 Age : 31
| Subyek: ™|Stuart'z Little|™ Creating D3D8 Base | Wallhack Sat Jul 07, 2012 6:15 am | |
| YOU MUST DO THIS FIRSTINSTALLING VISUAL C++ 2008LINK : - Spoiler:
HOW-TO : Select Visual C++ 2008 Express Edition under Visual Studios 2008 Express and click Free Download INSTALLING DIRECT-X SDKLINK : - Spoiler:
ADDING DIRECT-X INCLUDE FILES IN VC++STEP 1. Install Direct-X SDK STEP 2. Open VC++ STEP 3. Select Tools -> Option -> Projects and Solutions -> VC++ Directories STEP 4. In VC ++ Directories, go to the drop-down menu and select Include Files STEP 5. Add the code below Code : C:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\IncludeADDING DIRECT-X LIBRARY FILES IN VC++ STEP 1. Install Direct-X SDK STEP 2. Open VC++ STEP 3. Select Tools -> Option -> Projects and Solutions -> VC++ Directories STEP 4. In VC ++ Directories, go to the drop-down menu and select Library Files STEP 5. Add the code below Code : - Spoiler:
C:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib
-------------------------------------- Here's a tutorial on how to create a d3d8 / Sudden attack base! --------------------------------------------- Open up Visual C++ 2008 Create: Project... Choose Win32 Console Application If you do not see it, look at Project types and click on Visual C++ Scrinshohrt : You should see the picture below be presented on your Visual C++ Press NEXT Screenshot Do not touch anything else. Application type - Select "DLL" Press FINISH Screenshot : You should see the screenshot below presented on your Visual C++ Right click and remove dllmain.cpp* * - Remove because it is already defined in the base source I will give you. Click the green arrow on the top to debug / release. Alternately, you can just build / rebuild (for those who know how to use C++ IDE) Screenshot --------------------------------------------- Base Source Code --------------------------------------------- - Spoiler:
#include "stdafx.h" #include <windows.h>
#include <d3d8.h> #pragma comment(lib, "d3d8.lib")
typedef HRESULT (WINAPI* CreateDevice_Prototype) (LPDIRECT3D8, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE8*); typedef HRESULT (WINAPI* Reset_Prototype) (LPDIRECT3DDEVICE8, D3DPRESENT_PARAMETERS*); typedef HRESULT (WINAPI* EndScene_Prototype) (LPDIRECT3DDEVICE8); typedef HRESULT (WINAPI* DrawIndexedPrimitive_Prototype)(LPDIRECT3DDEVICE8, D3DPRIMITIVETYPE, UINT, UINT, UINT, UINT);
CreateDevice_Prototype CreateDevice_Pointer = NULL; Reset_Prototype Reset_Pointer = NULL; EndScene_Prototype EndScene_Pointer = NULL; DrawIndexedPrimitive_Prototype DrawIndexedPrimitive_Pointer = NULL;
HRESULT WINAPI Direct3DCreate8_VMTable (VOID); HRESULT WINAPI CreateDevice_Detour (LPDIRECT3D8, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE8*); HRESULT WINAPI Reset_Detour (LPDIRECT3DDEVICE8, D3DPRESENT_PARAMETERS*); HRESULT WINAPI EndScene_Detour (LPDIRECT3DDEVICE8); HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE8, D3DPRIMITIVETYPE, UINT, UINT, UINT, UINT);
PDWORD Direct3D_VMTable = NULL;
BOOL WINAPI DllMain(HINSTANCE hinstModule, DWORD dwReason, LPVOID lpvReserved) { if(dwReason == DLL_PROCESS_ATTACH) { DisableThreadLibraryCalls(hinstModule);
if(Direct3DCreate8_VMTable() == D3D_OK) return TRUE; }
return FALSE; }
HRESULT WINAPI Direct3DCreate8_VMTable(VOID) { LPDIRECT3D8 Direct3D_Object = Direct3DCreate8(D3D_SDK_VERSION);
if(Direct3D_Object == NULL) return D3DERR_INVALIDCALL; Direct3D_VMTable = (PDWORD)*(PDWORD)Direct3D_Object; Direct3D_Object->Release();
DWORD dwProtect;
if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0) { *(PDWORD)&CreateDevice_Pointer = Direct3D_VMTable[15]; *(PDWORD)&Direct3D_VMTable[15] = (DWORD)CreateDevice_Detour;
if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), dwProtect, &dwProtect) == 0) return D3DERR_INVALIDCALL; } else return D3DERR_INVALIDCALL;
return D3D_OK; }
HRESULT WINAPI CreateDevice_Detour(LPDIRECT3D8 Direct3D_Object, UINT Adapter, D3DDEVTYPE DeviceType, HWND FocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* PresentationParameters, LPDIRECT3DDEVICE8* Returned_Device_Interface) { HRESULT Returned_Result = CreateDevice_Pointer(Direct3D_Object, Adapter, DeviceType, FocusWindow, BehaviorFlags, PresentationParameters, Returned_Device_Interface);
DWORD dwProtect;
if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0) { *(PDWORD)&Direct3D_VMTable[15] = *(PDWORD)&CreateDevice_Pointer; CreateDevice_Pointer = NULL;
if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), dwProtect, &dwProtect) == 0) return D3DERR_INVALIDCALL; } else return D3DERR_INVALIDCALL;
if(Returned_Result == D3D_OK) { Direct3D_VMTable = (PDWORD)*(PDWORD)*Returned_Device_Interface;
*(PDWORD)&Reset_Pointer = (DWORD)Direct3D_VMTable[14]; *(PDWORD)&EndScene_Pointer = (DWORD)Direct3D_VMTable[35]; *(PDWORD)&DrawIndexedPrimitive_Pointer = (DWORD)Direct3D_VMTable[71];
*(PDWORD)&Direct3D_VMTable[14] = (DWORD)Reset_Detour; *(PDWORD)&Direct3D_VMTable[35] = (DWORD)EndScene_Detour; *(PDWORD)&Direct3D_VMTable[71] = (DWORD)DrawIndexedPrimitive_Detour; } return Returned_Result; }
HRESULT WINAPI Reset_Detour(LPDIRECT3DDEVICE8 Device_Interface, D3DPRESENT_PARAMETERS* PresentationParameters) { return Reset_Pointer(Device_Interface, PresentationParameters); }
HRESULT WINAPI EndScene_Detour(LPDIRECT3DDEVICE8 Device_Interface) { return EndScene_Pointer(Device_Interface); }
HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE8 Device_Interface, D3DPRIMITIVETYPE Type, UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount) { LPDIRECT3DVERTEXBUFFER8 Stream_Data; UINT Stride = 0;
if(Device_Interface->GetStreamSource(0, &Stream_Data, &Stride) == D3D_OK) Stream_Data->Release(); //code return DrawIndexedPrimitive_Pointer(Device_Interface, Type, MinIndex, NumVertices, StartIndex, PrimitiveCount); }
Enjoy your Base! -Voltage552 I have no idea where the heck this base is from. It was somewhere in my harddrive. -- How to add WALLHACK Look at this piece of code right here in the base Code: - Spoiler:
HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE8 Device_Interface, D3DPRIMITIVETYPE Type, UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount) { LPDIRECT3DVERTEXBUFFER8 Stream_Data; UINT Stride;
if(Device_Interface->GetStreamSource(0, &Stream_Data, &Stride) == D3D_OK) Stream_Data->Release(); //code return DrawIndexedPrimitive_Pointer(Device_Interface, Type, MinIndex, NumVertices, StartIndex, PrimitiveCount); }
Now, look more closely at the following. Code : - Spoiler:
//code
INFO Stride 40 and 44 are the body model of Sudden Attack. (One's upper, one's lower) WALL HACK --- Add this below the "//code" Code : - Spoiler:
bool wallhack; if(Stride == 40 && wallhack || Stride == 44 && wallhack) { Device_Interface->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); }
To make this work, you need to add a hotkey. Add this below the wallhack code. Code: - Spoiler:
if ((GetAsyncKeyState(VK_NUMPAD1)&1) == 1) //Numpad 1 wallhack = !wallhack;//Start Wallhack If you press NUMPAD 1, wallhack will start.--Enjoy-- Voltage552 Originally wrote for SANA section , but re-posted here since it fits here too. CREDIT : [-]STUART'Z LITTLE ALL MEMBER : [-]G3 (GAME ONLINE COMUNITY) SEMOGA BERMANFAAT BAGI KALIN YG INGIN BELAJAR SOURCE CODE WALLHACK | |
|