C++ String aus Memory auslesen

05/08/2010 00:35 bassbanane#1
Hallo zusammen ;)
Ich probiere mich derzeit ein wenig mit dem auslesen des Memory in C++.
Hab mir da auch schon ne DLL gebastelt und injected... usw.
Nun habe ich ein Problem:
Ich möchte gerne den Namen meines Charakters auslesen.
Mit Cheatengine klappt das ja wunderbar und wird auch richtig angezeigt, nur wenn ich mittels der DLL versuche aus der Addresse meinen Namen auszulesen bekomm ich immer nur 1 Zeichen und das stimmt nicht einmal mit dem 1. Buchstaben meines Namens überein.
Hier mal mein Code für die Funktion:
Code:
if (strcmp ( chCommand , ".name" ) == 0)
		{
		char buffer[255];
		DWORD base = 0x009A6EFC0;
	        MemCpyEx((LPVOID)&buffer, (LPVOID)base, 20); 
	        printf_s("\nName is: %c", buffer);
		printf_s("\nEnter Command: ");
		
		}
Und nocheinmal MemCpyEx:
Code:
LPVOID MemCpyEx (LPVOID lpDestination, LPVOID lpSource, int nLen)
{
	DWORD dwOldDestProt = 0;
	DWORD dwOldSrcProt	= 0;
	
	VirtualProtect	(lpDestination, nLen, PAGE_EXECUTE_READWRITE, &dwOldDestProt);
	VirtualProtect	(lpSource, nLen, PAGE_EXECUTE_READWRITE, &dwOldSrcProt);
	memcpy			(lpDestination, lpSource, nLen);
	VirtualProtect	(lpDestination, nLen, dwOldDestProt, NULL);
	VirtualProtect	(lpSource, nLen, dwOldSrcProt, NULL);

	return lpDestination;
}
Ich beschäftige mich noch nicht sehr lange mit C++, und obwohl mir die Lösung simpel erscheint weiß ich nicht, wie ich sie umsetzen soll.
Hätte vielleicht jemand Hilfe für mich?
05/08/2010 01:28 MrSm!th#2
schon dran gedacht, dass er unicode sein könnte?

btw reicht die übergabe von buffer
&buffer ist nicht nötig (und eigentlich sogar falsch, da es dann ja zum char** wird o.o)