首页
社区
课程
招聘
[求助]CreateEvent返回ERROR_ACCESS_DENIED
发表于: 2014-4-25 16:56 63315

[求助]CreateEvent返回ERROR_ACCESS_DENIED

2014-4-25 16:56
63315
写了一个DLL,DLL加载时创建一个事件,以下为创建事件的代码

hNoticeEvent = ::CreateEvent(NULL, TRUE, FALSE, NoticeEventName);
        if(hNoticeEvent == NULL)
        {
                DWORD dLastError = GetLastError();
                wsprintf(temp, L"CreateEvent Failed,LastError:%d", dLastError);
                OutputDebugString(temp);
                return FALSE;
        }

将DLL注入到系统中活动的进程,部分进程创建事件成功,部分进程创建事件不成功,GetLastError返回ERROR_ACCESS_DENIED。

单独注入到上面不成功创建事件的进程,此时创建事件成功。

有没有人知道这是什么问题呢?

试过设置安全描述符
SECURITY_DESCRIPTOR SecurityDescriptor = { 0 };
::InitializeSecurityDescriptor(&SecurityDescriptor, 1);
::SetSecurityDescriptorDacl(&SecurityDescriptor, TRUE, NULL, FALSE);
SECURITY_ATTRIBUTES SecurityAttribute = { 0 };
SecurityAttribute.nLength               = sizeof(SecurityAttribute);
SecurityAttribute.lpSecurityDescriptor  = &SecurityDescriptor;
SecurityAttribute.bInheritHandle        = TRUE;

还是不行

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

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 209
活跃值: (143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
猜测一下返回ERROR_ACCESS_DENIED的原因

CreateEvent在创建一个名字已存在的对象时,其实就是“OpenEvent”,如果自身账户的权限不足以打开这个对象,就返回ERROR_ACCESS_DENIED

比如管理员创建一个Global\abc,用户再创建的时候就会返回ERROR_ACCESS_DENIED
2014-4-25 17:23
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
单独注入一个进程的时候创建事件成功,说明里面不存在相同的事件名称
然后我的事件名称不是全局事件,所以不存在下面那个问题
2014-4-25 17:47
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
大神都下班了么。。。。
2014-4-25 20:00
0
游客
登录 | 注册 方可回帖
返回
//