C#使用ReadProcessMemory读取内存,Win10能读取,Win7读出来全是0,是什么问题?

:昵称 2019-02-18 08:49:37
如题,非常奇怪,Win10就能读取出来数据,Win7读出来buffer里面就全是0,代码如下:

ReadProcessMemory((int)processHandle, (int)(baseAddress), buffer, buffer.Length, ref bytesRead);

使用管理员权限运行也是这样,求大神指点!!!
...全文
745 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
:昵称 2019-02-18
  • 打赏
  • 举报
回复
刚搜了下,好像64位系统用ReadProcessMemory读取不了,那应该用哪个API?
上帝的亲哥哥 2019-02-18
  • 打赏
  • 举报
回复
你关闭一下Win 7的数据执行保护试一下,也就是DEP

关闭方法:
管理员cmd后:

bcdedit.exe/set {current} nx AlwaysOff pause

详细步骤见链接:
https://baijiahao.baidu.com/s?id=1573878261272005&wfr=spider&for=pc
xian_wwq 2019-02-18
  • 打赏
  • 举报
回复
try this

public static int GetProcessMemory(string processName)
{
int memory = 0;
Process[] process = System.Diagnostics.Process.GetProcessesByName(processName);
if(myPS.Length > 0)
{
Process curProcess = process[0];
memory = (int)(curProcess.WorkingSet64>>10);
}
return memroy;
}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧