Zitat von
Arnulf:
so hab ichs bisher gelernt lol....
was kommt jetzt, daß mir meine träume zerstört?
Hier ein Beispiel um den DOS-Header im Speicher zu überschreiben
Delphi-Quellcode:
program Project1;
uses
Windows;
const
HelloWorld = 'Hello, World!';
var
ModuleHandle: HMODULE;
BaseAddress: Pointer absolute ModuleHandle;
OldProtect: DWORD;
8begin
ModuleHandle := GetModuleHandle(nil);
if not VirtualProtect(BaseAddress, (Length(HelloWorld) + 1) * SizeOf(Char),
PAGE_READWRITE, OldProtect) then
Exit;
lstrcpy(BaseAddress, HelloWorld);
VirtualProtect(BaseAddress, (Length(HelloWorld) + 1) * SizeOf(Char),
OldProtect, OldProtect);
MessageBox(HWND(nil), BaseAddress, 'foo', MB_OK or MB_ICONINFORMATION);
end.
Die Ermittlung der Module funktioniert weiterhin problemlos (zum Beispiel mit: tasklist /M /FI "WINDOWTITLE eq foo").