您的位置:首页 > 运维架构

使用openprocess时解决问题,关于权限分配有感

2013-01-24 16:56 435 查看
今天解bug的时候,发现枚举后台进程获取ID放入数组dwids,然后调用

HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwids[i]);

.......

GetModuleFileNameEx(hProcess,NULL,lpPathName,MAX_PATH);

hProcess 一直为空,打印getlasterror后发现,错误码为拒绝访问。

调试了半天,最终发现错误是由于OpenProcess里的权限设置过高导致的。

根据GetModuleFileNameEx的实际权限需求,修改为:

HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,dwids[i]);

成功解决问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐