【发布时间】:2021-02-14 19:24:47
【问题描述】:
我了解 Windows 中的每个进程都有自己的私有内存地址,该地址是受保护的区域,可防止写入其他内存。 Windows 保证 ASLR 和私有内存将保持安全。
但根据 Windows 内部原理第 1 章:
the debugger simply opens the process with OpenProcess, this allows you change memory in the target process.
那么私有内存的意义何在?有没有沙盒?还是 windows 只是否认他们自己的文档?
【问题讨论】:
-
您不能只打开任意进程并更改它们。您需要 权限 才能做到这一点。 Windows 有一个安全系统来帮助防止未经授权的进程更改。例如,您通常需要管理员权限才能写入其他进程。但是,如果您有足够的权限首先附加调试器,调试器通常有权更改它正在调试的进程。
-
@RemyLebeau 它只是
PROCESS_ALL_ACCESS标志和一个可以轻松绕过的管理员帐户 -
非管理员通常不能使用
PROCESS_ALL_ACCESS,操作将失败并出现“拒绝访问”错误。 -
本地管理员帐户可以获得允许它读取进程内存的权限。保护是普通用户不能以管理员身份登录。
-
airtight hatchways ,虽然“情况”不同,但原则适用。