|
You last visited: Today at 11:53
Advertisement
Wolfteam Hacking Fragen
Discussion on Wolfteam Hacking Fragen within the Wolfteam forum part of the Shooter category.
03/19/2014, 20:58
|
#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
|
|
|
03/19/2014, 22:02
|
#2
|
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.
|
|
|
03/22/2014, 16:54
|
#3
|
elite*gold: 0
Join Date: Mar 2014
Posts: 19
Received Thanks: 9
|
Quote:
Originally Posted by JustinGX
...
|
- 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'
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
|
|
|
03/22/2014, 17:59
|
#4
|
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
|
Quote:
Originally Posted by .tal0s
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
|
|
|
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?
|
|
|
03/22/2014, 18:06
|
#6
|
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
|
Quote:
Originally Posted by X3enox
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 ]
}
}
|
|
|
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.
|
|
|
03/22/2014, 23:01
|
#8
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,480
Received Thanks: 3,319
|
Quote:
Originally Posted by C0RE'
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.
|
|
|
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?
|
|
|
03/23/2014, 14:33
|
#10
|
elite*gold: 40
Join Date: Mar 2013
Posts: 1,394
Received Thanks: 778
|
Quote:
Originally Posted by X3enox
@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, ...
|
|
|
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.
|
|