Wie kann ich bei einem laufenden Prozess den Assemblercode auf einer bestimmten Adresse ändern?
Ich habe es schon mmit diesem Code hier versucht, aber das hat leider nicht funktioniert.
Ich habe es schon mmit diesem Code hier versucht, aber das hat leider nicht funktioniert.
Code:
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
HWND hwnd;
hwnd = FindWindow(0,L"Plants vs. Zombies");
DWORD Id;
HANDLE ProcessHandle;
int value;
unsigned adress = 0x0041D406;
int opcode = 90;
if(!hwnd)
{
cout << "Prozess nicht gefunden!" << endl;
}
else
{
cout << "Prozess gefunden!" << endl;
cout << "Fensterhandle: " << hwnd << endl;
GetWindowThreadProcessId(hwnd,&Id);
cout << Id << endl;
ProcessHandle = OpenProcess(PROCESS_VM_WRITE |PROCESS_VM_OPERATION ,false,Id);
cout << "ProcessHandle: " << ProcessHandle << endl;
WriteProcessMemory(ProcessHandle,(LPVOID)adress,&opcode,1,NULL);
cout << "Wert geschrieben" << endl;
cin.get();
}
}