Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 19:04

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

Advertisement



[C++] D3D Hook

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

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 3
[C++] D3D Hook

Hey Com,

ich möchte gerne einen simplen Gamehack für ein "Opfer-Game" schreiben.
Da ich D3D benutze, frage ich mich nun, wie ich dies Hooken kann.

Ich habe mir bereits einige Tutorials angesehen, doch leider funktioniert keins. Ich benutze Visual C++.

D3D8, D3D9 ist korrekt installiert!


Es wäre seehr nett, wenn mir jemand eine Art "Schablone" oder ein gutes Tutorial, mit dem ich D3D hooken kann. Ein Simpler Text auf dem Spiel, wie "Hello elitepvpers" würde mir genügen. Menüs kann ich selber erstellen.

Wäre wirklich seehr dankbar um eine Antwort!

Grüße
derjans / Jan
derjans is offline  
Old 11/24/2011, 18:30   #2
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736


diamonds hooking tut für dx9, wenn du das nicht selber hinkriegst, lass es, c+p schablonen gebe ich zumindest nicht.

wenn du ein konkretes problem hast, dir z.b. eine zeile nicht klar ist und google sie dir auch nicht erklärt, oder irgendetwas aus für dich unerklärlichen gründen nicht funktioniert, kannst du gerne fragen^^
Dr. Coxxy is offline  
Old 11/29/2011, 12:34   #3
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 3
Habe das Tutorial angefangen und bin jetzt zu dem Punkt gekommen, wo ich das erste mal die DLL testen kann. Doch leider funktioniert es nicht.

Das ist mein Code:
Code:
// ======================================================================= //
#include "stdafx.h"
#include <windows.h>
#include <cstdio>
#include <d3d9.h>
#include <d3dx9.h>
#pragma once
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
// ======================================================================= //
void InitHook();
void *DetourFunc(BYTE *src, const BYTE *dst, const int len);
HRESULT __stdcall EndScene(LPDIRECT3DDEVICE9 pDevice);
typedef HRESULT(__stdcall* EndScene_t)(LPDIRECT3DDEVICE9);
EndScene_t pEndScene;
const D3DCOLOR txtPink = D3DCOLOR_ARGB(255, 255, 0, 255);
void add_log(char* string);
// ======================================================================= //
int WINAPI DllMain(HINSTANCE hInst,DWORD reason,LPVOID reserved)
{
	switch(reason)
	{
		case DLL_PROCESS_ATTACH:
			add_log("Versuche Thread zu erstellen!");
			CreateThread(0, 0, (LPTHREAD_START_ROUTINE) InitHook, 0, 0, 0);
		break;
	}
	return true;
}
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);
}
HRESULT __stdcall hkEndScene(LPDIRECT3DDEVICE9 pDevice)
{
	DrawRect ( pDevice, 10, 10, 200, 200, txtPink);
	return pEndScene(pDevice);
}
void InitHook() {
        add_log("Thread erstellt!");
	HMODULE hModule = NULL;
	while( !hModule )
	{
		hModule = GetModuleHandleA( "d3d9.dll" ); // Handle zur DLL holen
		Sleep( 100 ); // 100ms warten
	}
	add_log("d3d9.dll gefunden!");
	pEndScene = ( EndScene_t )DetourFunc((PBYTE) 0x0001CE09,(PBYTE)hkEndScene, 5);
}
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 add_log(char* string)
{
	HANDLE filehandle;
	DWORD dwReadBytes;
	char buffer[2048];
	filehandle = CreateFile(L"Log.txt", GENERIC_WRITE, 0, 0, OPEN_ALWAYS, 0, 0);
	SetFilePointer(filehandle, 0, 0, FILE_END);
	sprintf_s(buffer, 1024, "Added Log: %s\r\n", string);
	WriteFile(filehandle, buffer, strlen(buffer), &dwReadBytes, 0);
	CloseHandle(filehandle);
}
Die add_log-Funktion habe ich von Dr.Coxxy (aus diesem Thread:
)

Die EndScene-Adresse sollte richtig sein (habe IDA Pro verwendet):


Die Log.TXT-Datei spuckt dabei folgendes aus:
Code:
Added Log: Versuche Thread zu erstellen!
Added Log: Thread erstellt!
Added Log: d3d9.dll gefunden!
Vielleicht habe ich auch einfach nur ein Brett vor dem Kopf, wäre euch sehr dankbar für eine Antwort!
derjans is offline  
Thanks
1 User
Old 11/29/2011, 14:45   #4
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
am ende wird eine findpattern funktion beschrieben um die vtable zu finden.
die benutzen, dann sollte es gehen.

Code:
tempadd = 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*)(tempadd+2), 4);
dwEndScene = VTableStart[42];
pEndScene = (EndScene_t) DetourFunc((PBYTE) dwEndScene, (PBYTE)hkEndScene, 5);
und ein thread ist DWORD WINAPI und nicht void.
dementsprechend auch return 0; am ende...
Dr. Coxxy is offline  
Thanks
2 Users
Old 11/30/2011, 09:44   #5
 
elite*gold: 0
Join Date: Feb 2011
Posts: 16
Received Thanks: 3
Danke! Hat mir seehr geholfen!
derjans is offline  
Reply

Tags
d3d hook hack dll


Similar Threads Similar Threads
<26.06.11> Chico™ Public Hook, //Invisible//Chams /Stamina/Mini Hook/NO CRASH VERSION
07/08/2011 - WarRock Hacks, Bots, Cheats & Exploits - 46 Replies
26.06.11 Hack Released 26.06.11 SuperNoSpread Problem Fixxen Status= Not in Hack Hej Com, leider hab ich eine schlechte nachricht xP^^ aus egendeinen Grund verursacht bei mir SuperNoSpread einen Direkten Crash sobald man in game ist, deshalb habe ich es entfernt O,o der Hack ist tortzdem nett und wird euch gefallen, sobald ich mehr addys habe kommen mehrere funktionen noch dazu ;) http://img4.fotos-hochladen.net/uploads/public24e lfvtrw1u.png STOP! VOR DEM DOWNLOAD! Mit Dem...



All times are GMT +1. The time now is 19:04.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.