(tutorial) d3d hacking mit c++

01/04/2011 19:42 Akorn#16
Quote:
Originally Posted by .BritainAndy View Post
ja, die wird nicht aufgerufen weil außerhalb der dll main ist

zudem hast du relativ viele fehler in deinem Source. Hast du nen IM?
Du bist ja wohl die allerletzte person in diesem forum die zu diesem thema etwas sagen kann.
01/04/2011 22:32 ----------------#17
Naja, und anscheinend auch die einzige Person, die überhaupt etwas sagt ;)
Man freut sich doch über jede Hilfe...
01/24/2011 15:31 P-a-i-n#18
Quote:
Originally Posted by .BritainAndy View Post
ja, die wird nicht aufgerufen weil außerhalb der dll main ist

zudem hast du relativ viele fehler in deinem Source. Hast du nen IM?

Der Source würde gehen nur die MsgBoxen sind crap zudem mal ein kleiner Trick das es auch nach einem Systemneustart geht.

So wie ich das unten gezeigt habe dürfte es auf allen 64 Bit version von Win7 HomePremium laufen.

Der aufruf ist immer an der selben Stelle bei jedem Betriebssystem nur die Adresszahlen ändern sich.(natürlich hat jedes Betriebssystem sein eigenes Offset außer die O/S sind gleich dann klappts auch bei anderen)

Daher immer Adresse - Basesize = das Offset

HTML Code:
void InitHook()
{
	HMODULE hModule = NULL;
	while( !hModule )
	{
		hModule = GetModuleHandleA( "d3d9.dll" );
		Sleep( 100 );
	}
	pEndScene = ( EndScene_t )DetourFunc((PBYTE)hModule + 0x1ce09,(PBYTE)hkEndScene, 5);
}
aufruf in olly
[Only registered and activated users can see links. Click Here To Register...]

aufruf in IDA
[Only registered and activated users can see links. Click Here To Register...]
02/02/2011 19:42 germanhacker#19
Ihr könnt die ganzen Funktionen auch dynamisch wie Gordon hooken.
Fügt einfach diese zwei Funktionen hinzu:
Code:
bool bDataCompare(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 dwFindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
{
for(DWORD i=0; i < dwLen; i++)
if( bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
return (DWORD)(dwAddress+i);
return 0;
}
Und dann einfach per VMT:

Code:
void InitHook()
{
HMODULE hModule = NULL;
while(!hModule)
{
hModule = GetModuleHandleA("d3d9.dll");
Sleep(100);
}
DWORD* VTableStart = 0;
DWORD FoundByGordon = dwFindPattern((DWORD)hModule, 0x128000,
(PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
memcpy(&VTableStart, (void*)(FoundByGordon+2), 4);
dwDrawIndexedPrimitive = (DWORD)VTableStart[82]; // für mehr: blick in die d3d9.h werfen!
dwEndScene = (DWORD)VTableStart[42];
pEndScene = ( EndScene_t )DetourFunc((PBYTE)hModule + 0x1ce09,(PBYTE)hkEndScene, 5);
}
So funktionierts zumindest bei mir perfekt !
03/02/2011 14:14 Buphy#20
ich finds gut auch wenn es nicht von dir ist!!

mfg

Buphx
03/03/2011 12:56 yihaaa#21
copy&paste könnt ihr ja schon mal! dann habt ihr den "hack" ja auch schnell :D:D
03/07/2011 21:25 i4mSoH34Vy#22
Habe meinen Fehler gefunden.
07/14/2012 06:39 K1ngPr0g4mer#23
Heiii ehmm bin erst so zur sagen seid 2wochen am injectors coden habe schon 5 stück gemacht und so langsam lerne ich was auswendig dazu :)

also mein problem ist ich brauche ne base also es wäre sehr lieb wenn du mich in skype addest heiße ------> K1ngPr0G4mer <------ also ich wollte ne base coden dazu ein tutorial von dir wäre ne eher ^^ :P also ne base für operation7
02/25/2013 14:37 Numb3er#24
Pls reupload
08/22/2013 11:43 ouka#25
link is down.