Speicher Patchen
-
Hallo ich möchte an der adrese 300219C2 8 bytes überschreiben wie könnte sowas den als code aussehen ...
-
Dein Process arbeitet auf einem virtuellen Adressraum von ca 4GB. Das heisst, die absolute Adresse 300219C2 kannst du garnicht erreichen. Wenn du die Adresse in einem anderen Processraum beschreiben willst ist das so ohne weiters nicht möglich., insbesondere wenn der Programmierer des anderen Programm nicht so richtig mitspielt.
mfg JJ
-
Welches BS benutzt du? Unter DOS (oder anderen Realmode-BS) geht das ganz einfach
const char data[8]={ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; std::memcpy((char*)(0x300219C2),data,8);
Aber unter einem Protectedmode-BS, wie Windows, Linux oder so gut wie jedes andere BS, sollte dein Programm an dieser Stelle abstürzen oder irgend was anderes anstellen.
Processraum
uh, Denglisch
-
wie währe es denn mit
const int adresse=0x300219C2; const char Patch[] { C7 84 24 80 00 00 00 90 } WriteProcessMemory(pi.hProcess,(void*)loc2 ,patch,8, &num);
-
WriteProcessMemory ist aber AFAIK WinAPI. Die Plattform musst du bei solchen Fragen schon angeben und am besten ins dafür vorgesehene Forum posten
.
-
WriteProcessMemory geht, allerdings nur, wenn du genügend Rechte hast um in den Speicher zu schreiben.
Auf nem normalen System erreicht man das sogar als einfacher User, wenn man den Prozess als Debugger anmeldet.