WriteProcessMemory ( fehler ) ..

Kaffeejunge

Grünschnabel
Hallo leute,

ich hab ein Problem und zwar versuche ich schon laenger mich darein zu arbeiten.( read, writeprocessmemory)
Schon oefter habe ich source codes geholt und jedes mal tauchen etliche fehler auf.
Da ich ziemlich am anfang der Sprache stehe, habe ich natuerlich probleme..

Aus diesem Thread hier habe ich mir den SC geholt und kompiliert. (visual express c++ 2k8)

1>c:\users\i7\documents\visual studio 2008\projects\testoderso\testoderso\testoderso.cpp(4) : error C2061: Syntaxfehler: Bezeichner '_TCHAR'
1>c:\users\i7\documents\visual studio 2008\projects\testoderso\testoderso\testoderso.cpp(14) : error C2664: 'FindWindowW': Konvertierung des Parameters 2 von 'const char [15]' in 'LPCWSTR' nicht möglich
1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.

Jedes mal bekomm ich den fehler raus, diesen habe ich auch schon oefter aus anderen sc's gehabt. Ich versteh iwie nicht wo der fehler liegt.
Vlt. kann mir mal einer ein einfaches Bsp. fuer diesen Befehl schreiben.
Ich hab mich schon auch auf der MSDN libary umgeschaut, doch dort pail ich iwie reingarnichts.


Code:
#include <windows.h>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
	HWND hwnd;
	DWORD ID;
	DWORD rw=0;
	HANDLE handle;

	int puffer = 0;
	unsigned adresse = 0x0012FEE4;                  // Die Adresse bekommt man durch einen                                                                             // Probelauf des opfers, wir dbei euch                                                                             // anders sein

	hwnd = FindWindow(NULL, "cracking opfer");          // Fenster suchen
	if(!hwnd)                                                               // Wenn nciht gefunden gleich raus
	{
		std::cout<<"Fehler! Konnte Opfer nicht finden";
		Sleep(1000);
		return 0;
	}

	GetWindowThreadProcessId(hwnd, &ID);                 // Nun brauchen wir die ProcessID
                                                                                     // des opfers für die nächste                                                                                            // Funktion
	handle = OpenProcess(PROCESS_ALL_ACCESS, false, ID);       // Hier holen wir uns
                                                                                                        // das handle des                                                                                                            // opfers

	ReadProcessMemory(handle, (LPCVOID)adresse, &puffer, sizeof(puffer), &rw);
	std::cout<< puffer;                                                            // Test ob es wirklich der                                                                                                 // gesucht Wert xxx ist

	WriteProcessMemory(handle, (LPVOID)adresse, &(puffer+=1), sizeof(int), &rw); 
                                   // Und nun den Wert überschreiben

	Sleep(2000);
	CloseHandle(handle);                 // Extrem wichtig!
	return 0;
}

Vlt. so einen aehnlichen der unter Visual c++ funktioniert?
Ich werde es natuerlich auch selber versuchen. Aber etwas hilfe braeuchte ich doch mal. .__.
 
Das Problem sind die Unicode-Einstellungen
Hab jetzt kein VS da, müsste aber in den Projekteinstellungen auffindbar sein
 
Hallo Kaffeejunge,

ergänze diesen Header:
Code:
#include <tchar.h>
und schreibe alle Zeichenketten, die in Windows-API-Funktionen (FindWindow) verwendet werden, in dieser Form:
Code:
_T("irgendein Text")

Gruß
MCoder
 
Zurück