【问题标题】:Access denied for WriteProcessMemoryWriteProcessMemory 的访问被拒绝
【发布时间】:2023-03-23 17:54:01
【问题描述】:

WriteProcessMemory 对我不起作用,因为我收到拒绝访问错误。

我目前正在使用:

CreateProcess(wcImageName,wcCommandLine,NULL,NULL,FALSE,DEBUG_PROCESS,NULL,NULL,&stStartupInfo,&stProcessInfo);

如何修改它以获得写入权限?

我在同一台机器上启动这个过程。如何在不提供用户名和密码的情况下获得写入权限?

谢谢, 洛根

【问题讨论】:

  • 不确定 DEBUG_PROCESS 是否足够。显然不是。正常的方式是 OpenProcess(),请求 PROCESS_VM_WRITE 访问。这是一个高度特权的请求。
  • 调试器使用DEBUG_PROCESSDEBUG_ONLY_THIS_PROCESS 启动被调试对象,并有权读取和写入被调试对象的进程内存。

标签: visual-studio-2010 visual-c++ visual-studio-debugging


【解决方案1】:

确保您使用正确的句柄调用WriteProcessMemory,并且在调试器循环中。你可以阅读this article

当您创建进程时,您拥有完全的权限 - 当您使用 DEBUG_PROCESS 或 DEBUG_ONLY_THIS_PROCESS 启动时,您拥有更多权限!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-08-10
  • 2021-03-06
  • 2011-05-15
  • 2010-09-06
  • 2014-03-22
  • 2013-08-10
  • 2018-04-20
  • 2012-08-23
相关资源
最近更新 更多