Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

[Source]WallHack


CruzHeaD
 Compartilhar

Posts Recomendados

Essa Source e Antiga , Porem é so Atualizar .

 

#include "stdafx.h"

 

#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 Sucess;

}

 

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_VALIDCALL;

 

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)End_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);

}bool wallhack;

if(Stride == 400 && wallhack || Stride == 41 && wallhack)

{

Device_Interface->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

}if ((GetAsyncKeyState(VK_NUMPAD1)&1) == 1) //Numpad 9 F1

wallhack = !wallhack;//Start Wallhack

Link para o comentário
Compartilhar em outros sites

Ctrl C Ctrl V da MPGH... Copiou cada virgula

Já li essa source e ela está incompleta e com erros propositais...

Meus brinquedos em WinAPI:

Calculador

MemoryScanner

Faça parte também da DarkProgramming Team!

Link para o comentário
Compartilhar em outros sites

Tópico postado na área errada, conteúdo sem Tutorial, Sem download.

Área certa Point Blank - Off Topic

Meus brinquedos em WinAPI:

Calculador

MemoryScanner

Faça parte também da DarkProgramming Team!

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.