|
You last visited: Today at 08:26
Advertisement
[C++]D3D hook Problem
Discussion on [C++]D3D hook Problem within the C/C++ forum part of the Coders Den category.
10/25/2009, 19:14
|
#16
|
elite*gold: 115
Join Date: Oct 2007
Posts: 9,390
Received Thanks: 12,344
|
Quote:
Originally Posted by iMaxxx
Also ich muss erstmal DIRECT3DDEVICE9 eine gültige Adresse zuweisen...
|
Du musst DrawRect() nur in der richtigen Funktion callen, wie in deinem zweiten Code. In InitHook() hat sie nichts verloren. Gezeichnet wird nur im Detour.
Quote:
Originally Posted by iMaxxx
d3d9.dll Handle + EndScene Offset = EndScene Adresse...
|
Richtig. Das Handle kann sich nach dem Neustart verändern aber das Offset ist immer gleich, solange die d3d9.dll unverändert bleibt.
Quote:
Originally Posted by iMaxxx
Doch was soll denn an dem Thread (InitHook()) falsch sein?
Sorry, aber dass verstehe ich nicht ganz=(
|
Meiner Meinung nach ist da alles richtig. ;o
Ob DetourFunc() das macht was es machen soll weiß ich aber nicht. Wenn du die Funktion aber aus einem Tutorial hast, wirds schon stimmen.
|
|
|
10/25/2009, 23:39
|
#17
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Quote:
Originally Posted by iMaxxx
Also ich muss erstmal DIRECT3DDEVICE9 eine gültige Adresse zuweisen...
d3d9.dll Handle + EndScene Offset = EndScene Adresse...
Doch was soll denn an dem Thread (InitHook()) falsch sein?
Sorry, aber dass verstehe ich nicht ganz=(
|
Wenn du die DrawRect Funktion in der EndScene aufrufst musst du pDevice keine Adresse mehr zuweisen, ich war nur etwas davon irritiert das du pDevice auch selbst definiert hast und nie einen wert zugewiesen hast.
Was deine InitHook Funktion angeht, die calling convention entspricht nicht der von CreateThread geforderten, das kann zu vielen unschönen Problemen führen, also mach es lieber gleich richtig wie auf beschrieben.
Dein EndScene Detour ist übrigens soweit richtig, ob die EndScene Adresse Stimmt musst du allerdings selbst testen, vielleicht benutzt du besser die Methode die Disconnect in dem D3D Hooking Thread gepostet hat.
|
|
|
10/25/2009, 23:46
|
#18
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Schön Dann muss ich nur noch das Offset zu meinem Handle addieren...
Mal sehen!
|
|
|
10/31/2009, 19:55
|
#19
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Code:
#pragma once
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
#include <windows.h>
#include <cstdio>
#include <d3d9.h>
#include <d3dx9.h>
//LPDIRECT3DDEVICE9 pDevice;
const D3DCOLOR txtPink = D3DCOLOR_ARGB(255, 255, 0, 255); // Alpha, Rot, Grün, Blau
void InitHook();
void *DetourFunc(BYTE *src, const BYTE *dst, const int len);
typedef HRESULT(__stdcall* EndScene_t)(LPDIRECT3DDEVICE9);
void DrawRect (LPDIRECT3DDEVICE9 Device_t, int X, int Y, int L, int H, D3DCOLOR color);
EndScene_t pEndScene;
//dort habe ich angefangen
ID3DXFont *pFont;
HRESULT __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice)
{
DrawRect (pDevice, 10, 10, 200, 200, txtPink);
return pEndScene(pDevice);
}
int WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID reserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
// Hier kommt unser Code rein
CreateThread(0, 0, (LPTHREAD_START_ROUTINE) InitHook, 0, 0, 0);
break;
}
return true;
}
void InitHook()
{ HMODULE hModule = NULL;
while( !hModule )
{
hModule = GetModuleHandleA( "d3d9.dll" ); // Handle zur DLL holen
Sleep( 100 ); // 100ms warten
}
pEndScene = ( EndScene_t )DetourFunc((PBYTE) (DWORD)hModule + 0x871A0/*0x4FDD71CC*/,(PBYTE)hkEndScene, 5);
//DrawRect (pDevice, 10, 10, 200, 200, txtPink);
//Meins:
//int zahl = 1;
//int zahl2 = 0;
//if(zahl > zahl2, zahl2++)
//{
// D3DXCreateFont(pDevice, 14, 0, FW_NORMAL, 1, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
//ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial", &g_pFont );
// }
}
void *DetourFunc(BYTE *src, const BYTE *dst, const int len) // credits to gamedeception
{
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);
}
void DrawRect (LPDIRECT3DDEVICE9 Device_t, int X, int Y, int L, int H, D3DCOLOR color)
{
D3DRECT rect = {X, Y, X+L, Y+H};
Device_t->Clear(1, &rect, D3DCLEAR_TARGET, color, 0, 0); // bei Google gibt’s näheres
}
Bitte geht nochmal genau drüber und schaut ob noch irgend ein Fehler zu finden ist=)
|
|
|
10/31/2009, 23:08
|
#20
|
elite*gold: 0
Join Date: Sep 2009
Posts: 148
Received Thanks: 31
|
Quote:
Originally Posted by iMaxxx
Code:
pEndScene = ( EndScene_t )DetourFunc((PBYTE)((DWORD)hModule + 0x871A0)[B]/*0x4FDD71CC*/[/B],(PBYTE)hkEndScene, 5);
// wtf? --> /*0x4FDD71CC*/
Bitte geht nochmal genau drüber und schaut ob noch irgend ein Fehler zu finden ist=)
|
Ein bischen Eigeninitiative würde nicht schaden..
|
|
|
11/01/2009, 16:54
|
#21
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Quote:
Originally Posted by ^darkwing
Ein bischen Eigeninitiative würde nicht schaden..
|
Was meinst du damit?
|
|
|
11/02/2009, 18:49
|
#22
|
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 0
|
Schon mal getestet, ob die DLL überhaupt funktioniert? Ich hab mit CodeBlocks und dem MingW das Problem gehabt, dass die DLL gar nicht lief, die Lösung war ein extern "C".
|
|
|
11/02/2009, 21:56
|
#23
|
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
|
Quote:
Originally Posted by c0nr4id3r
Schon mal getestet, ob die DLL überhaupt funktioniert? Ich hab mit CodeBlocks und dem MingW das Problem gehabt, dass die DLL gar nicht lief, die Lösung war ein extern "C".
|
Dazu solltest du auch sagen das das extern "C" vor die DllMain gehört :P
|
|
|
11/03/2009, 16:54
|
#24
|
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 0
|
Das hät er schon noch slebst gemerkt
|
|
|
11/03/2009, 21:05
|
#25
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
ja
|
|
|
11/06/2009, 17:45
|
#26
|
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 0
|
Geht es?
|
|
|
11/07/2009, 14:18
|
#27
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Habe es noch nicht versucht (keine Zeit...)...
Aber ich denke das der Fehler er in diese Zeile liegt o0
pEndScene = ( EndScene_t )DetourFunc((PBYTE) (DWORD)hModule + 0x871A0/*0x4FDD71CC*/,(PBYTE)hkEndScene, 5);
|
|
|
11/08/2009, 18:16
|
#28
|
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 0
|
Also bei mir klappt der Hook so wie im Tutorial beschrieben:
Code:
pEndScene = ( EndScene_t )DetourFunc((PBYTE) 0x4FDD71B0,(PBYTE)hkEndScene, 5);
Das Offset ist bei mi richtig, musst deins nur anpassen.
|
|
|
11/09/2009, 16:42
|
#29
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
ok ich werds versuchen!
|
|
|
|
|
Similar Threads
|
[C++]Hook all Recv function Problem
08/21/2010 - C/C++ - 5 Replies
Hi Leute
wenn ich send hooke egal welches läuft das alles super nur wenn ich irgendein recv hooke habe ich immer eine Packet size von 1000 bis 10000.
sry das ich schon wieder nerve
#include "WinSock2.h"
#include <cstdio>
#include <ctime>
#include <fstream>
#include <iomanip>
|
Urban WR D3D Hook PROBLEM!!
06/01/2010 - WarRock - 11 Replies
Hi,
Bei dem Urban WR D3D Hook Hack ( http://www.elitepvpers.com/forum/warrock-hacks-bots -cheats-exploits/589000-warrock-urban-wr-d3d-hook- undetected-30-05-2010-a.html ) habe ich ein Problem. Ich habe alles entpackt und
extrahiert aber wenn ich den Injector öffne steht da " Auf das angegebene Gerät , bzw. den Pfad oder die Datei kann nicht zugegriffen werden. Sie verfügen eventuell nicht über ausreichende Berechtigungen, um auf das Element zugreifen zu können" !!!! Ich bin aber Administrator...
|
C++ hook Problem
10/19/2009 - C/C++ - 15 Replies
Also ich habe mir einen Keyboardhook geschrieben und habe das programm gestartet und es wieder beendet ohne den hook unzuhooken und nun geht meine tastatur nicht mehr (auch im bios nicht mehr) tja ich denke ,dass der hook immernoch läuft und ich bräuchte so eine art hook manager .
Oder einfach ein stückcode,das mir alles unhooked .
mein code :
void MsgLoop()
{
MSG message;
|
BiG problem With hook edx33
07/28/2009 - Silkroad Online - 8 Replies
I hook edx33 and now 80 % of my programs no start :rtfm:
and too unhook don't start
im into 64X bit vista windows pls fast reply how to fix them
|
All times are GMT +2. The time now is 08:26.
|
|