Getting Started With Wall Hack

Posts 1–5 of 5 · Page 1 of 1
Getting Started With Wall Hack
Hello everyone i have been looking at some tutorials on how to make hacks.
And while it is many tutorials its not many tutorials on the plain basics.

Atleast not what i have found i was hoping sombody can answer a few qustions for me.
What is the basics for making a wallhack?
Can anyone give me a quik step by step.

Not asking for code just the basic process of making it a "How to?" sorta thing.
Ore if someone can direct me to a post where this is allready done.

How do i find a character object that is in the game files?
How do i edit the existing code to do my evil biding?
How do i make the character lets say blue.

Do you find spesefic game related code ore do you use the grapics libs that the game is runing ore both?

I know that some of you may say tat your answer is on google but i cant find it.
So please help me get started in the basics of making a wallhack.

Some function calls whode be great also so i can look up on MSDN ore some other place.

Any help is greatly appreciated.
Cheers
1. use pattern scanning to find vtable of d3d9 device methods.
2. install a vtable hook (or other hook depending on how you want)
3. use a stride/numverts/primcount logger and find the strides, numverts, and or primitives of the players to be wallhacked.
4. in your hooked drawindexedprimitive, set a conditional so that if the stride etc. is equal to a player stride etc. found in step 3 then turn zbuffer off.
Thanks for your reply.
Do you think you can be a bit more details on how you go about doing this in practice.
Thanks again.
these 3 functions will get your vtable for a d3d9 game, which allows you to hook the functions neccesary for a wallhack and other d3d hacks.
Code:
BOOL bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
	for(;*szMask;++szMask,++pData,++bMask)
		if(*szMask=='x' && *pData!=*bMask) 
			return false;
	return (*szMask) == NULL;
}

DWORD ScanPattern(DWORD dwAddress, DWORD dwLen, BYTE *bMask, char *szMask)
{
	for(DWORD i=0; i < dwLen; i++)
		if( bCompare((BYTE*)(dwAddress+i),bMask,szMask))
			return (DWORD)(dwAddress+i);
	return 0;
}

DWORD *GetVirtualTable(DWORD base, DWORD len)
{
	DWORD* pTable = NULL;        
	DWORD device = ScanPattern(base, len, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
	if ( device != 0 )
		pTable = *(DWORD**)(device + 2);
	return pTable;
}
use as so:
Code:
DWORD* vTable = GetVirtualTable(d3d9handle, 0x1280000);
d3d9handle is a DWORD found by getting the module handle of d3d9.dll and casting it as a DWORD.
Then we hook the d3d9m vtable functions 42 and 82, EndScene and DrawIndexPrimitive respectively.
Thank you so mutch this is great gives me somthing to study.
Greatly aprichiated thanks kibbles18.
Cheers
Posts 1–5 of 5 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?