首页
社区
课程
招聘
[求助]VirtualAllocEx 失败的原因是什么?
发表于: 2008-6-26 20:58 7172

[求助]VirtualAllocEx 失败的原因是什么?

2008-6-26 20:58
7172
ThreadAdd =VirtualAllocEx(AhProcess, NULL,4096, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
printf("ThreadAdd:%d\n",ThreadAdd);

注入的时候出现了失败ThreadAdd的值是0(AhProcess的值是正确的)

不晓得为什么会失败,因为注入了同一个程序,前两天还没有问题的……
请教,像这样造成VirtualAllocEx失败的原因都有哪些?有没有什么解决方案?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哦,对了。现实的错误代码是5
在这之前我已经提升了进程的权限
BOOL EnablePrivilege(HANDLE hToken,LPCTSTR szPrivName,BOOL fEnable){
TOKEN_PRIVILEGES tp;
tp.PrivilegeCount = 1;
LookupPrivilegeValue(NULL,szPrivName,&tp.Privileges[0].Luid);
tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED:0;
AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);
return((GetLastError() == ERROR_SUCCESS));
}
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken);  
EnablePrivilege(hToken,SE_DEBUG_NAME,TRUE);
2008-6-26 21:20
0
雪    币: 222
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
不需要提权吧,OpenProcess时得到的Handle必须有PROCESS_VM_OPERATION权限,你也可以直接指定PROCESS_ALL_ACCESS
2008-6-29 04:57
0
游客
登录 | 注册 方可回帖
返回