Register for your free account! | Forgot your password?

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

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

 

Brauche bei AntTweakBar bitte Hilfe

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2012
Posts: 2
Received Thanks: 0
Unhappy Brauche bei AntTweakBar bitte Hilfe

Hallo elitepvp Community,
bin noch C++ Anfänger und bräuchte Hilfe, um als Menü für meinen GTA SA Hack zu "implementieren"...

Was ich gefunden habe, hilft mir nicht so, da es auch für ein anderes Spiel ist...
link: [Guide] Integrating AntTweakBar into Silkroad

Ich habe ein Neues Projekt aufgemacht (dll) und diesen Code in D3D9_Test.exe injected, aber es erscheint kein Menü.

Code:
Code:
#include <windows.h>
#include "common.h"

#define TW_NO_LIB_PRAGMA
#include <AntTweakBar.h> 

#include <d3d9.h>

#pragma comment(lib,"AntTweakBar.lib")
#pragma comment(lib,"d3d9.lib") 

HMODULE gInstance = NULL;

void UserOnInject(); 
 
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ulReason, LPVOID lpReserved)
{
	UNREFERENCED_PARAMETER(lpReserved);
	if(ulReason == DLL_PROCESS_ATTACH)
	{
		gInstance = hModule; 
		DisableThreadLibraryCalls(hModule);
	}
	return TRUE;
}

extern "C" __declspec(dllexport) void OnInject(DWORD address, LPDWORD bytes)
{ 
	DWORD wrote = 0;
	WriteProcessMemory(GetCurrentProcess(), UlongToPtr(address), bytes, 6, &wrote);
	 
	UserOnInject();
}

struct tGTASAD3D
{
	IDirect3D9 * d3d;
	UINT adapter;
	D3DDEVTYPE deviceType;
	HWND focusWindow;
	DWORD behaviourFlags;
	D3DPRESENT_PARAMETERS * presentationParameters;
	IDirect3DDevice9 ** device;
};

struct tGTASAWndProc
{
	HWND hWnd;
	UINT message;
	WPARAM wParam;
	LPARAM lParam;
};

tGTASAD3D GTASAD3D = {0}; 
tGTASAWndProc GTASAWndProc = {0};

int numSec = 100;
float color[] = { 1, 0, 0 };
unsigned int bgColor = D3DCOLOR_ARGB(255, 40, 255, 200);
 
TwBar * mainBar1 = 0;
TwBar * mainBar2 = 0; 

bool bIsAntInitialized = false;
 
void UserOnCreateDevice();
void UserOnEndScene();
DWORD UserOnWndProc();

void TW_CALL Test1(void * clientData)
{
	printf("Test1 called!\n");
}

void TW_CALL Test2(void * clientData)
{
	printf("Test2 called!\n");
} 

namespace CC_CreateDevice
{
	DWORD codecave_CreateDevice_ReturnAddress = 0;
	DWORD codecave_CreateDevice_esp = 0;

	void StealCreateDeviceParameters()
	{ 
		memcpy(&GTASAD3D, UlongToPtr(codecave_CreateDevice_esp), 28);
	}

	void ProcessCreateDeviceParameters()
	{ 
		UserOnCreateDevice();
	} 
	__declspec(naked) void codecave_CreateDevice()
	{ 
		__asm pop codecave_CreateDevice_ReturnAddress 
		__asm mov codecave_CreateDevice_esp, esp 
		__asm pushad
		 
		StealCreateDeviceParameters();
		 
		__asm popad 
		__asm
		{
			CALL NEAR EAX
			MOV ECX,DWORD PTR SS:[EBP]
		}
		 
		__asm pushad

		ProcessCreateDeviceParameters();
		 
		__asm popad 
		__asm push codecave_CreateDevice_ReturnAddress
		__asm ret
	}
}

namespace CC_EndScene
{
	DWORD codecave_EndScene_ReturnAddress = 0;

	void OnEndScene()
	{ 
		UserOnEndScene();
	} 
	__declspec(naked) void codecave_EndScene()
	{ 
		__asm pop codecave_EndScene_ReturnAddress 
		__asm pushad

		OnEndScene();
		 
		__asm popad 
		__asm
		{
			PUSH EAX
			CALL NEAR EDX
			MOV AL, 0x01
		}
		 
		__asm push codecave_EndScene_ReturnAddress
		__asm ret
	}
}

namespace CC_WndProc
{
	DWORD codecave_WndProc_ReturnAddress = 0;
	DWORD codecave_WndProc_esp = 0;
	DWORD codecave_WndProc_result = 0;

	void OnWndProc()
	{ 
		memcpy(&GTASAWndProc, ((LPBYTE)ULongToPtr(codecave_WndProc_esp)) + 4, 16); 
		codecave_WndProc_result = UserOnWndProc();
	} 
	__declspec(naked) void codecave_WndProc()
	{ 
		__asm pop codecave_WndProc_ReturnAddress 
		__asm mov codecave_WndProc_esp, esp 
		__asm pushad 

		OnWndProc();

		__asm cmp codecave_WndProc_result, 0
		__asm jne LABEL_1 
		__asm popad 
		__asm xor EAX, EAX
		__asm ret 0x10

	LABEL_1:
		 
		__asm popad
		 
		__asm
		{
			CMP EAX, 0x496
		}
		 
		__asm push codecave_WndProc_ReturnAddress
		__asm ret
	}
}

void UserOnInject()
{
	edx::CreateConsole("GTASAFramework");
	 
	CreateMutexA(0, 0, "GTASA Launcher");
	CreateMutexA(0, 0, "Ready");

	edx::CreateCodeCave(0xA62FE8, 5, CC_CreateDevice::codecave_CreateDevice);
	edx::CreateCodeCave(0xA5F05E, 5, CC_EndScene::codecave_EndScene);
	edx::CreateCodeCave(0x7324F4, 5, CC_WndProc::codecave_WndProc);
}

void UserOnCreateDevice()
{
	if(bIsAntInitialized == true)
	{
		TwTerminate();
		bIsAntInitialized = false;
	}
	 
	if(!TwInit(TW_DIRECT3D9, *GTASAD3D.device))
	{
		MessageBoxA(0, TwGetLastError(), "Cannot initialize AntTweakBar", MB_OK | MB_ICONERROR);
	}
	else
	{ 
		bIsAntInitialized = true;
		 
		mainBar1 = TwNewBar("GTA SA - Framework Bar 1");
		TwDefine(" GLOBAL help='This example shows how to integrate AntTweakBar in a DirectX9 application.' ");
		TwDefine(" TweakBar color='128 224 160' text=dark ");
		TwAddVarRW(mainBar1, "NumSec", TW_TYPE_INT32, &numSec, " label='Strip length' min=1 max=1000 keyIncr=s keyDecr=S help='Number of segments of the strip.' ");
		TwAddVarRW(mainBar1, "Color", TW_TYPE_COLOR3F, &color, " label='Strip color' ");
		TwAddVarRW(mainBar1, "BgColor", TW_TYPE_COLOR32, &bgColor, " label='Background color' ");
		TwAddVarRO(mainBar1, "Width", TW_TYPE_INT32, &GTASAD3D.presentationParameters->BackBufferWidth, " label='wnd width' help='Current graphics window width.' ");
		TwAddVarRO(mainBar1, "Height", TW_TYPE_INT32, &GTASAD3D.presentationParameters->BackBufferHeight,  " label='wnd height' help='Current graphics window height.' ");
		 
		mainBar2 = TwNewBar("GTA SA - Framework Bar 2");
		TwAddButton(mainBar2, "buttonSnow", Test1, NULL, " label='Snow' ");
		TwAddButton(mainBar2, "buttonSun", Test2, NULL, " label='Sun' "); 
	}
}
 
void UserOnEndScene()
{ 
	if(bIsAntInitialized)
	{
		TwDraw();
	}
}

DWORD UserOnWndProc()
{ 
	if(GTASAWndProc.message == WM_SETCURSOR)
	{ 
		return 0;
	} 
	if(TwEventWin(GTASAWndProc.hWnd, GTASAWndProc.message, GTASAWndProc.wParam, GTASAWndProc.lParam))
	{
		return 0;
	} 
	return 1;
}
Ich weis, der Code ist anscheinend komplett falsch, aber hey, jeder fängt mal an und braucht Hilfe...
Wenn einer so Nett ist und mir Helfen könnte, wär ich sehr Dankbar!

Mfg



corsair44 is offline  
Old   #2
all talk no action


 
elite*gold: 714
Join Date: Mar 2011
Posts: 10,260
Received Thanks: 3,191
origIDirect3DDevice9 zeigt auf nichts und pPresentParam wird auch nicht initialisiert.

Ich würde vermuten, dass AntTweakBar damit nichts anfangen kann und eigentlich einen Pointer der auf das Device des Spiels zeigt erwartet.


snow is offline  
Old   #3
 
elite*gold: 0
Join Date: Jan 2012
Posts: 2
Received Thanks: 0
Hab den Code nun an den Thread angepasst, bekomme aber Errors :/
Code:
1>DLLMain.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""int __cdecl edx::CreateCodeCave(unsigned long,unsigned char,void (__cdecl*)(void))" ([email protected]@@[email protected])".
1>DLLMain.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""void __cdecl edx::CreateConsole(char const *)" ([email protected]@@[email protected])".
corsair44 is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
Bitte Bitte brauche Hilfe bei dem Object Map Editor von musicinstructor
Hey Leute, Ich benutze den Map Editor von musicinstructor. Wenn ich die mapeditor.py einfüge und injecte passiert Ingame garnichts. Es steht nur...
4 Replies - Metin2 PServer - Discussions / Questions
Brauche dringend hilfe bitte bitte gebe sogar was!!!!
hallo leute als erstes mal , ich wollte gerade den daroo 1678 files entpacken ich drücke auf "Hier entpacken" dann kommt sofort eine fehlermeldung...
1 Replies - Metin2 PServer - Discussions / Questions
Server Problem bitte helft Leute bitte brauche eure hilfe sauu dringen
Hi leute wenn man seinen server ya on bringt (ned das erste mal das ich ihn on bring) dann kommt am ende ya immer das operation timed out 7 mal aber...
20 Replies - Metin2 PServer - Discussions / Questions



All times are GMT +1. The time now is 10:08.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.