首页
社区
课程
招聘
[求助]SetLocalTime失败
发表于: 2010-7-20 15:13 12700

[求助]SetLocalTime失败

2010-7-20 15:13
12700
病毒修改系统时间应该也是采用SetLocalTime吧, 写了个修改时间的,却不知为何一直失败呢?

#define Show(string) MessageBox(NULL,string,string,MB_OK)	
SYSTEMTIME data;
data.wYear = 2007;
if(SetLocalTime(&data))
{
	Show("OK");
}
else
{
		Show("Fail");
		DWORD fRet = GetLastError();
		printf("%d\n",fRet);
}

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
2
BOOL ImproveProcPriv()
{
    HANDLE token;
    //提升权限
    if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&token))
    {
        MessageBox(NULL,"打开进程令牌失败...","错误",MB_ICONSTOP);
        return FALSE;
    }
    TOKEN_PRIVILEGES tkp;
    tkp.PrivilegeCount = 1;
    ::LookupPrivilegeValue(NULL,SE_SYSTEMTIME_NAME,&tkp.Privileges[0].Luid);
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    if(!AdjustTokenPrivileges(token,FALSE,&tkp,sizeof(tkp),NULL,NULL))
    {
        MessageBox(NULL,"调整令牌权限失败...","错误",MB_ICONSTOP);
        return FALSE;
    }
    CloseHandle(token);
    return TRUE;
}


提完进程权限,还是失败
2010-7-20 15:15
0
雪    币: 220
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
估计你的运行的帐号没有权限设时间,看看gpedit.msc里
2010-7-20 15:34
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2l的帖子不就是提權了麽
不過你這錯誤號 是多少?
2010-7-20 15:36
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
5
谁给一个 样本 或者 给段代码  ErrorCode = 0
2010-7-20 15:57
0
雪    币: 259
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是不是你的data沒初始化,其他字段數據太不靠譜了啊?
試一下
SYSTEMTIME data = {0};
2010-7-20 16:00
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
7
应该是没初始化的缘故吧…
2010-7-20 16:16
0
雪    币: 248
活跃值: (1056)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
lea        esi,_RecvBuffer
                                        assume        esi:PTR xxxTimeSet
                                        invoke        SetTime,[esi].tCurrent
                                        assume        esi:nothing
xxxTimeSet struct
        tCmd                BYTE ?
        tCurrent        SYSTEMTIME <?>
xxxTimeSet ends

SetTime PROC Stm:SYSTEMTIME
            
        invoke        AdjustToken,CTXT("SE_SYSTEMTIME_NAME")
        invoke        SetLocalTime,addr Stm
        .if eax==0
                invoke ErrorMessage,CTXT("SetLocalTime"),FALSE
        .endif
        ret

SetTime ENDP

另外:要administrator
2010-7-20 16:27
0
游客
登录 | 注册 方可回帖
返回
//