BasePointer (server.dll

01/29/2011 09:28 germanhacker#1
Hallo Epvp,

Ich hab folgenden BasePointer:

Address: server.dll+0x0037492C
Offset: 0x14

ich frag mich nun, wie ich das "server.dll" in meinen code miteinbring.
Wenn ich den Pointer selbst suche und ihn gefunden habe, verändert der sich beim neustart des spiels. Also brauch ich einen, der sich nicht verändert o.O
Als ich "Pointerscan for this Address" gemacht habe, kam der obrige pointer raus. dann hab ich das spiel (left4dead2) und cheatengie neu gestartet und bei cheat engine den pointer manuel hinzugefügt auch so..

PointerAddress: server.dll+0x0037492C, Offset: 0x14

Nun konnt ich wieder die value verändern und godmode ein und ausschalten.

wie bekomm ich das mit dem "server.dll+" mit rein :S

Ich hoffe mir kann das jemand erklären :)

€dit: Überschrift: BasePointer ( server.dll + 0x0037492C ?!?!? )
01/29/2011 10:09 xNopex#2
server.dll ist die Base-Address der DLL und damit gleich dem HMODULE.

>> GetModuleHandle()
MSDN: [Only registered and activated users can see links. Click Here To Register...]
01/29/2011 11:09 germanhacker#3
und wie funktioniert das ganze jetzt in der WriteMem Funktion ?!?!
Alter blick da nit durch <.<

Code:
void WriteMem(char* window, LPCVOID address, int value)
{
	HWND hWnd = FindWindow(0, window);
	DWORD proc_id; 
	GetWindowThreadProcessId(hWnd, &proc_id); 
	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id); 
	BYTE newdata[]={value}; 
	DWORD newdatasize = sizeof(newdata); 
	WriteProcessMemory(hProcess, (LPVOID)address, &newdata, newdatasize, 0);
	CloseHandle(hProcess); 
}
WriteMem("Left4Dead2", server.dll+(LPCVOID)0x0037492C, 1 ); o.O


€dit:

so ? :S

Code:
GetModuleHandle( ( "server.dll" + 0x0037492C ) ) + offset;

€dit:

Ich habs jetzt so versucht:

Code:
	if (godmode == true)
	{
	             DWORD offset = 0x14;
	             DWORD Base = (DWORD) GetModuleHandleA("server.dll"); 
	             DWORD Address = (Base + 0x0037492C) + offset; 
	             WriteMem("Left4Dead2", (LPCVOID)Address, 1 );
	}
	else
	{
	             DWORD offset = 0x14;
	             DWORD Base = (DWORD) GetModuleHandleA("server.dll"); 
	             DWORD Address = (Base + 0x0037492C) + offset; 
	             WriteMem("Left4Dead2", (LPCVOID)Address, 0 );
	}
Doch das ganze funzt nit^^
Ich schätz mal, dass hier der Fehler liegt:

DWORD Address = (Base + 0x0037492C) + offset;

Hilfe bitte :D
01/29/2011 13:03 HardCore.1337#4
Code:
DWORD Base = GetModuleHandle("Server.dll") + 0x0037492C;
DWORD New;
ReadProcessMemory("DeinHandle", (LPCVOID)Base, &New, 4, 0);
DWORD RichtigeAdresse = Base + New;
so etwa
01/29/2011 14:01 germanhacker#5
Quote:
Originally Posted by HardCore.1337 View Post
Code:
DWORD Base = GetModuleHandle("Server.dll") + 0x0037492C;
DWORD New;
ReadProcessMemory("DeinHandle", (LPCVOID)Base, &New, 4, 0);
DWORD RichtigeAdresse = Base + New;
so etwa
Ich habs jetzt mal so probiert:

Code:
		DWORD New;
		DWORD Base = (DWORD) GetModuleHandleA("Server.dll") + 0x0037492C;
		ReadProcessMemory("Left4Dead2", (LPCVOID)Base, &New, 4, 0);
		DWORD Address = Base + New; 
		WriteProcessMemory("Left4Dead2", (LPVOID)Base, &New, 4, 0);
so stürzt das programm glei ab^^

Das kann doch net so schwer sein, eine Value mit "1" zu überschreiben :confused:
01/29/2011 14:06 HardCore.1337#6
ReadProcessMemory erwartet ein Handle (HANDLE) und keinen Namen