我在 Delphi 中使用 VirtualAllocEx 在外部进程中保留内存,如下所示:
var
p : pointer;
begin
p := VirtualAllocEx(Process, nil, SizeOf(Integer), MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
end;
ProcessHandle 之前已经打开PROCESS_ALL_ACCESS
过。
之后,我的程序将一个简单的整数值写入分配的地址,如下所示:
WriteProcessMemory(Process, p, @MyInteger, SizeOf(Integer), BytesWritten);
由于地址存储在p
- 我可以保存地址以将其用于另一个应用程序。另一个应用程序必须再次打开外部进程才能访问/写入外部进程中的地址。
我现在的问题是:谁/什么可以在外国进程中读/写这个地址?
每个进程都允许写吗?每个进程都允许读取吗?只有具有管理员权限的进程才有读/写权限吗?
感谢您的回答。