c++ memory write (byte arrays)

03/30/2014 10:38 *-Elsword_Hacker-*#1
Weis jemand zufällig wie ich z.b.
in c++ zu
ändern kann ?
03/30/2014 10:56 Jeoni#2
Wenn dein Code im gleichen virtuellen Speicherbereich (also im Zielprozess) ist, dann wohl am einfachsten mit
Code:
memset(reinterpret_cast<void*>(0x<Adresse>, 0, 10);
Musst natürlich die Adresse von der Stelle kennen oder sie bspw mit einem Pattern Scan dynamisch holen. Gegebenenfalls musste vorher noch VirtualProtect anwenden, wenn der Speicher, den du überschreiben willst, keine derartigen Rechte besitzt.
Wenn du den Speicher im Ziel aus einem anderen Prozess heraus überschreiben willst, wäre WriteProcessMemory wohl die Funktion deiner Wahl.
Code:
unsigned char buffer[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
WriteProcessMemory(processHandle, reinterpret_cast<LPVOID>(0x<Adresse>), reinterpret_cast<LPCVOID>(buffer), sizeof(buffer), nullptr);
Dafür musste eben auch die Adresse kennen und ein Handle auf den Zielprozess mit OpenHandle kriegen.
Hoffe, dass das geholfen hat
Jeoni
03/31/2014 22:46 *-Elsword_Hacker-*#3
danke , aber hab leider 0 plan was du da schreibst :).
03/31/2014 22:54 ​Tension#4
Was verstehst du daran denn nicht?
Wenn du das nicht verstehst dann solltest du die Finger davon lassen und erst einmal die Grundlagen lernen.
04/01/2014 08:33 Ende!#5
Schaut mal die von ihm erstellten Threads durch, ist ein hoffnungsloser Fall ..
04/01/2014 12:45 MrSm!th#6
Ich glaube, bald spreche ich dir ein Postverbot für diese Sektion aus. Du gehst mir langsam richtig auf die Nerven.