Register for your free account! | Forgot your password?

Go Back   elitepvpers > Shooter > Wolfteam
You last visited: Today at 11:53

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Wolfteam Hacking Fragen

Discussion on Wolfteam Hacking Fragen within the Wolfteam forum part of the Shooter category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Mar 2014
Posts: 1
Received Thanks: 1
Wolfteam Hacking Fragen

Hi^^

bin hier ganz neu, weshalb ich mal ein paar Fragen hätte.
Und vorab, ja, ich kann programmieren, allerdings auch nur seit zwei Jahren Delphi. Wegen C++ und dergleichen müsste ich mich eben entsprechend mal umsehen.

hab am rande schon paar sachen mitbekommen, auch in anderen foren, allerdings hätte ich noch paar fragen:

- was ist eigentlich genau diese cshell und die dazugehörige base adresse? anscheinend findet man darüber seit neuestem die addys für hacks?
- wie funktioniert das mit der .asi? kann ich da auch trotzdem noch dlls nutzen oder wie benutzt man diese injektion?
- ist es bei d3d hooking eher schon engine hooking oder braucht man schlichtweg einfach neue umgehungsmethoden, um d3d hooks im spiel anzuwenden?

Wäre dankbar für ein paar nette und hilfreiche antworten^^

greets
JustinGX is offline  
Thanks
1 User
Old 03/19/2014, 22:02   #2
 
C0RE''s Avatar
 
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
Cshell ist der Kern des Spiels. Base Adresse ist unterschiedlich
einfach dll in .asi umbenennen und in wt ordner-> wird automatisch injiziert

Einfache d3d Hooks.
C0RE' is offline  
Old 03/22/2014, 16:54   #3
 
.tal0s's Avatar
 
elite*gold: 0
Join Date: Mar 2014
Posts: 19
Received Thanks: 9
Quote:
Originally Posted by JustinGX View Post
...
- was ist eigentlich genau diese cshell und die dazugehörige base adresse? anscheinend findet man darüber seit neuestem die addys für hacks?
CShell.dll ist der Kern der LithTech Engine, sie enthält die meisten Addressen bzw. eigentlich statische/konstante des Spieles. Daher sind aus der CShell nur Memory Cheats möglich.

- wie funktioniert das mit der .asi? kann ich da auch trotzdem noch dlls nutzen oder wie benutzt man diese injektion?
Dll Injektion ist natürlich noch möglich.
Jedoch ist es einfacher die .dll in eine .asi umzubennen denn die SoundEngine von Wolfteam lädt jede .asi im Hauptverzeichniss.

- ist es bei d3d hooking eher schon engine hooking oder braucht man schlichtweg einfach neue umgehungsmethoden, um d3d hooks im spiel anzuwenden?
Ein Bypass wird nicht benötigt, ein Engine Hook wird auch nicht benötigt.
Es ist jedoch relativ kompliziert spieleigene Speicherbereiche die auf die d3d9.dll verweißen auf eine eigene Funktion umzuleiten.
Hier ist Reverse Engineering gefragt.

Quote:
Originally Posted by C0RE' View Post
Cshell ist der Kern des Spiels. Base Adresse ist 34xx..
einfach dll in .asi umbenennen und in wt ordner-> wird automatisch injiziert

Einfache d3d Hooks.
Die 'Base' Addresse ist immer 0x34400000
.tal0s is offline  
Old 03/22/2014, 17:59   #4
 
C0RE''s Avatar
 
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
Quote:
Originally Posted by .tal0s View Post
Die 'Base' Addresse ist immer 0x34400000
Nein.




Wie hier der Fall: 3FF0000

Beim Nächsten Start:



Schreib dir eine SearchPattern Funktion und erstell dir eine Signatur von den ersten 5-6 Zeilen der CShell, dann hast du immer die Base Addresse. Die Adresse variert meist zwischen 3x - 6x
C0RE' is offline  
Thanks
1 User
Old 03/22/2014, 18:01   #5
 
elite*gold: 237
Join Date: May 2013
Posts: 336
Received Thanks: 89
Also ich selber habe ja noch nichts weiter groß mit d3d-Hooking gemacht.
Im Internet gibt es anscheinend schon vorgefertigte, wobei ich jetzt mal laut dir davon ausgehe, dass die nicht funktionieren werden.

Inwiefern können die sich unterscheiden bzw. was braucht man mehr als einen einfachen endscene-hook, der zb in nem einfachen d3d9 test window gehen würde?
X3enox is offline  
Old 03/22/2014, 18:06   #6
 
C0RE''s Avatar
 
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
Quote:
Originally Posted by X3enox View Post
Also ich selber habe ja noch nichts weiter groß mit d3d-Hooking gemacht.
Im Internet gibt es anscheinend schon vorgefertigte, wobei ich jetzt mal laut dir davon ausgehe, dass die nicht funktionieren werden.

Inwiefern können die sich unterscheiden bzw. was braucht man mehr als einen einfachen endscene-hook, der zb in nem einfachen d3d9 test window gehen würde?
Sowas z.B um die DIP zu hooken :

Code:
DWORD CALLBACK DirectX9Thread( LPVOID lpParameter )
{
	LPDWORD pD3D9VTable = ( 0 );
	do
	{
		*(DWORD*)( &pD3D9VTable ) = FindD3D9VTable( );
	}
	while ( pD3D9VTable == 0 );

	DrawIndexedPrimitive_Hook	= ( pD3D9VTable[ 82 ] );
	DrawIndexedPrimitive_Jump	= ( DrawIndexedPrimitive_Hook + 0x5 );
	*(DWORD*)( &DrawIndexedPrimitive_Pointer ) = ( pD3D9VTable[ 82 ] );
	while ( TRUE )
	{
		if ( *(BYTE*)( DrawIndexedPrimitive_Hook ) != 0xE9 )
		{
			pTools->WriteJump( DrawIndexedPrimitive_Hook , (DWORD)DrawIndexedPrimitive_Call );
		}
		Sleep( 500 );
	}
	return ( 0 );
}
__declspec( naked )VOID DrawIndexedPrimitive_Call( )
{
	__asm
	{
		MOV EDI,EDI
		PUSH EBP
		MOV EBP,ESP
		PUSH [ EBP + 0x20 ]
		PUSH [ EBP + 0x1C ]
		PUSH [ EBP + 0x18 ]
		PUSH [ EBP + 0x14 ]
		PUSH [ EBP + 0x10 ]
		PUSH [ EBP + 0xC ]
		PUSH [ EBP + 0x8 ]
		CALL [ DrawIndexedPrimitive_Main ]
		JMP [ DrawIndexedPrimitive_Jump ]
	}
}
C0RE' is offline  
Old 03/22/2014, 18:51   #7
 
elite*gold: 237
Join Date: May 2013
Posts: 336
Received Thanks: 89
Wäre sowas jetzt speziell auf WT bezogen?
Also mich würde interessieren, was jetzt so einen ganz "normalen" EndScene-Hook von einem für WT funktionierenden Hook unterscheidet.
X3enox is offline  
Old 03/22/2014, 23:01   #8

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,480
Received Thanks: 3,319
Quote:
Originally Posted by C0RE' View Post
Sowas z.B um die DIP zu hooken :

Code:
DWORD CALLBACK DirectX9Thread( LPVOID lpParameter )
{
	LPDWORD pD3D9VTable = ( 0 );
	do
	{
		*(DWORD*)( &pD3D9VTable ) = FindD3D9VTable( );
	}
	while ( pD3D9VTable == 0 );

	DrawIndexedPrimitive_Hook	= ( pD3D9VTable[ 82 ] );
	DrawIndexedPrimitive_Jump	= ( DrawIndexedPrimitive_Hook + 0x5 );
	*(DWORD*)( &DrawIndexedPrimitive_Pointer ) = ( pD3D9VTable[ 82 ] );
	while ( TRUE )
	{
		if ( *(BYTE*)( DrawIndexedPrimitive_Hook ) != 0xE9 )
		{
			pTools->WriteJump( DrawIndexedPrimitive_Hook , (DWORD)DrawIndexedPrimitive_Call );
		}
		Sleep( 500 );
	}
	return ( 0 );
}
__declspec( naked )VOID DrawIndexedPrimitive_Call( )
{
	__asm
	{
		MOV EDI,EDI
		PUSH EBP
		MOV EBP,ESP
		PUSH [ EBP + 0x20 ]
		PUSH [ EBP + 0x1C ]
		PUSH [ EBP + 0x18 ]
		PUSH [ EBP + 0x14 ]
		PUSH [ EBP + 0x10 ]
		PUSH [ EBP + 0xC ]
		PUSH [ EBP + 0x8 ]
		CALL [ DrawIndexedPrimitive_Main ]
		JMP [ DrawIndexedPrimitive_Jump ]
	}
}
Vollkommen überladen, ein normaler Detour mit MS Detours macht auch nichts anderes.
@X3enox: Ich habe DX Hooking bei Wolfteam nicht genauer angeschaut, aber wenn die EndScene nicht überprüfen, kannst du tatsächlich einfach einen ganz normalen Detour verwenden.

Quote:
Schreib dir eine SearchPattern Funktion und erstell dir eine Signatur von den ersten 5-6 Zeilen der CShell, dann hast du immer die Base Addresse. Die Adresse variert meist zwischen 3x - 6x
Oder man iteriert mit Module32Next durch alle Module, bis man etwas findet, was mit cSh oder wie das heißt, anfängt. Dann kann man den DWORD BaseAddress aus dem Struct verwenden. Wenn der Name konstant ist, kann man auch einfach reinterpret_cast<DWORD_PTR *>(GetModuleHandleA("namedesmoduls.endung")); verwenden.
snow is offline  
Old 03/22/2014, 23:38   #9
 
elite*gold: 237
Join Date: May 2013
Posts: 336
Received Thanks: 89
Habe mir jetzt mal diverse Tutorials dazu durchgelesen und da stand wohl einiges interessantes dabei (UC, Oldschoolhack, ...).

Ein Search Pattern habe ich jetzt bereits, welches mir die EndScene ermittelt.
Zusätzlich auch einen Detour aus UC (ursprünglich glaube ich von GameDeception) und da wäre meine Frage, ob das so in WT klappen könnte? Generell sollte es ja funktionieren.

Code:
void *Detour(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);
}
Habe ich das so richtig verstanden, dass hiermit die ersten fünf Bytes der alten Funktion mit der neuen durch ein Jump überschrieben wird?

@C0RE'
Was wäre da eigentlich alles davon abhängig, ob das in WT läuft? Nur der Detour?
X3enox is offline  
Old 03/23/2014, 14:33   #10
 
C0RE''s Avatar
 
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
Quote:
Originally Posted by X3enox View Post
@C0RE'
Was wäre da eigentlich alles davon abhängig, ob das in WT läuft? Nur der Detour?
Die Detour ist eigendlich egal, du must einfach immerwieder ausversuchen. EndScene, BeginScene, Present, ...
C0RE' is offline  
Reply


Similar Threads Similar Threads
Fragen zum Game Hacking
09/09/2013 - C/C++ - 2 Replies
Hi Leute. Bin jetzt hier relativ neu, hab aber schon oft mitgelesen und hätte da so ein paar Fragen, da es ja einige gibt, die sich hier gut auskennen ^^ 1. Wie funktioniert ein Hackschutz Bypass? Oder wie geht man da vor, um diesen zu umgehen? 2. Was ist eigentlich ein Hook? Ich lese manchmal was von undected, aber ich denke, das macht der Bypass, dass der undetected bleibt? Danke.



All times are GMT +2. The time now is 11:53.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.