Im Speicher lesen und schreiben
-
-
Schau dir mal WriteProcessMemory an

edit: zu langsam
-
Irgentwie bekomm ich es nicht hin.
DWORD ID; HANDLE process; int data = x; int add = 0x429B40; DWORD size; ID = GetWindowThreadProcessId(hwnd,NULL); process = OpenProcess(NULL,NULL,ID); ReadProcessMemory(process,&add,&data,1,NULL);Wenn ich jetzt data ausgeben lass, hat es immer noch den Wert x.
An der Addresse 429B40 sollte aber 10 stehen. Was mach ich falsch?
-
Schau dir mal dir Parameter von OpenProcess nochmal genauer an

Wenn du nur lesen willst sollte PROCESS_VM_READ als 1. Parameter reichen - und beim 2. einfach FALSE
-
Ja, ich habs jetzt. Statt ID = GetWindowThreadProcessId(hwnd,NULL); muss es
GetWindowThreadProcessId(hwnd,&ID); heisen.
-
Um anderen die Arbeit zu erspraren hab ich den Code hochgeladen:
http://mitglied.lycos.de/yhva/Test05.cpp
Er ist zwar nicht ganz sauber, aber man hat dann wenigstens ein kleines Beispiel.Ich bin dafür, dass eine Upload-Section eingeführt wird, damit schon gelöste Probleme
für alle verfügbar sind.
-
Du kannst doch einfach direkt den Code hier posten - oder ist der so lang?
-
Bzgl. Uploadsection, die gibts bei uns nicht. Wir haben uns auf eine FAQ geeinigt (siehe unten) - ich finde übrigens, dass der Thread ganz brauchbar dafür ist

MfG SideWinder
-
Ich warte mal noch ein Weilchen, denn nach dem Verschieben könnt ihr ja nichts mehr dazu posten

-
Aber in diesem kleinen sample liest/schreibst du ja von deinem eigenen prozess (wenn ich mich nich verlesen hab, bin noch ziemlich müde -.-)
Wenn du aber auf virtuellen speicher anderer Prozesse zugreifst wird das schon interressanter.
Da geht das dann mit dem lesen und schreiben nichtmehr soleicht. Um nur was zu lesen musst du dir mit VirtualProtectEx() erstmal die rechte dafür holen.
wenn du was ÜBERschreiben willst (muss dann aber bitweise von der gleichen größe sein bzw. muss nicht, aber sonst ists quatsch 8)) musst du dir auch die rechte holen.
Wenn du was neues dazuschreiben willst, musst du mit VirtualAllocEx() arbeiten um für dich speicher zu reservieren.
Ich hoffe ich konnte trotz in meinem müdem Zustand helfenmfg jghj