Pointer zeigt auf 0, Programm stürtzt ab

ObScUrItAs

Mitglied
Code:
HWND lol;                             //       unsigned int
LPDWORD u;                        //       long pointer
HANDLE lala;                        //       unsigned int
LPDWORD tz;                       //       long pointer


lol=FindWindow(NULL, "Soundmixer");

printf("%i",lol);

GetWindowThreadProcessId(lol,u);

getch();

printf("%i",u);

getch();

printf("%i",*u);

getch();

lala=OpenProcess(PROCESS_ALL_ACCESS, TRUE , *u);

getch();
GetExitCodeProcess(lala,tz);

getch();
TerminateProcess(lala,*tz);


Die getch und printf habe ich nur reingemacht, damit ich sehe , wo der Fehler ist.
Das Problem ist nun Folgendes : GetWindowThreadProcessId will nen Pointer zurückgeben, das ist bei mir das u. Aber bei
lala=OpenProcess(PROCESS_ALL_ACCESS, TRUE , *u); stürtzt das Programm ab.
Und wenn ich ausgeben will, wohin u zeigt ( printf("%i",u); ) dann kriege ich eine 0 und wenn ich ausgeben will, was in der variable, auf die u zeigt, drinne ist , stürtzt das Programm auch ab. Daraus schließe ich, etwas stimmt mit dem Pointer nicht. Fragt sich nur was ?
 
Du sollst an GetWindowThreadProcessId einen Pointer auf ein DWORD übergeben (LPDWORD), damit Windows da einen Wert reinpacken kann. Du gibst den Pointer einfach uninitialisiert rein. Der zeigt in die Pampa, ein Wunder, dass er da nicht schon absemmelt.

Mach u vom Typ DWORD und übergib &u an stelle von u.
 
moin


Mist jetzt warst du schon wieder schneller ;)

Aber hier mal ein Code wie ich OpneProcess benutzt hab:
Code:
	HWND hwnd;
	DWORD ID;
	DWORD rw=0;
	HANDLE handle;

	int puffer = 0;
	unsigned adresse = (0x0012E000+0x00001EE4);

	hwnd = FindWindow(NULL, "cracking opfer");
	if(!hwnd)
	{
		std::cout<<"Fehler! Konnte Opfer nicht finden";
		Sleep(1000);
		return 0;
	}

	GetWindowThreadProcessId(hwnd, &ID);
	handle = OpenProcess(PROCESS_ALL_ACCESS, false, ID);

	ReadProcessMemory(handle, (LPCVOID)adresse, &puffer, sizeof(puffer), &rw);
	std::cout<< puffer;

	//WriteProcessMemory(handle, (LPVOID)adresse, &(puffer+=1), sizeof(int), &rw); 


	Sleep(2000);
	CloseHandle(handle);


mfg
umbrasaxum
 
Zurück