Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 08:26

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

Advertisement



[C++]D3D hook Problem

Discussion on [C++]D3D hook Problem within the C/C++ forum part of the Coders Den category.

Reply
 
Old 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 View Post
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 View Post
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 View Post
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.
ms​ is offline  
Thanks
1 User
Old 10/25/2009, 23:39   #17
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Quote:
Originally Posted by iMaxxx View Post
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.
Bot_interesierter is offline  
Thanks
1 User
Old 10/25/2009, 23:46   #18


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
SchönDann muss ich nur noch das Offset zu meinem Handle addieren...
Mal sehen!
Lawliet is offline  
Old 10/31/2009, 19:55   #19


 
Lawliet's Avatar
 
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=)
Lawliet is offline  
Old 10/31/2009, 23:08   #20
 
^darkwing's Avatar
 
elite*gold: 0
Join Date: Sep 2009
Posts: 148
Received Thanks: 31
Quote:
Originally Posted by iMaxxx View Post
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..
^darkwing is offline  
Old 11/01/2009, 16:54   #21


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Quote:
Originally Posted by ^darkwing View Post
Ein bischen Eigeninitiative würde nicht schaden..
Was meinst du damit?
Lawliet is offline  
Old 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".
c0nr4id3r is offline  
Old 11/02/2009, 21:56   #23
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Quote:
Originally Posted by c0nr4id3r View Post
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
Bot_interesierter is offline  
Old 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
c0nr4id3r is offline  
Old 11/03/2009, 21:05   #25


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
ja
Lawliet is offline  
Old 11/06/2009, 17:45   #26
 
elite*gold: 0
Join Date: Oct 2009
Posts: 4
Received Thanks: 0
Geht es?
c0nr4id3r is offline  
Old 11/07/2009, 14:18   #27


 
Lawliet's Avatar
 
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);
Lawliet is offline  
Old 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.
c0nr4id3r is offline  
Old 11/09/2009, 16:42   #29


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
ok ich werds versuchen!
Lawliet is offline  
Reply


Similar Threads 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.


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.