首页
社区
课程
招聘
[求助]win7 下OpenProcess失败怎么办啊??
发表于: 2013-10-9 21:03 11853

[求助]win7 下OpenProcess失败怎么办啊??

2013-10-9 21:03
11853
请大佬们帮忙解决一下啊,win7下OpenProcess打开魔兽争霸返回句柄为0,怎么办啊??

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 541
活跃值: (654)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
2
查MSDN
2013-10-9 21:07
0
雪    币: 1088
活跃值: (30)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
查MSDN
2013-10-9 21:10
0
雪    币: 112
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
GetLastError
2013-10-9 21:11
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
5
GetLastError() 得到错误码去查MSDN
另外么,八成是权限问题
2013-10-9 21:24
0
雪    币: 171
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
错误码5,貌似是权威问题,怎么解决,求教?
2013-10-9 22:43
0
雪    币: 1392
活跃值: (5207)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
7
VOID EnableDebugPriv()  
{  

    HANDLE hToken;  

    LUID sedebugnameValue;  

    TOKEN_PRIVILEGES tkp;  

    OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);  

    LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue);  

    tkp.PrivilegeCount = 1;  

    tkp.Privileges[0].Luid = sedebugnameValue;  

    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;  

    AdjustTokenPrivileges(hToken, false, &tkp, sizeof tkp, NULL, NULL);  

    CloseHandle(hToken);  

}

Open之前调用这个函数提升本进程权限
2013-10-9 22:50
0
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
1.进程完整性级别不够(UAC)
2.需要debug权限(AdjustTokenPrivileges)
2013-10-9 23:08
0
雪    币: 171
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这个不管用的啊,我有加提权的啊,以前在xp是可以的,但是到了win7就不行了啊
2013-10-10 18:56
0
雪    币: 171
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
void CCreateRemoteMiniMapDlg::OnBnClickedButton1()
{
        char s[10]={0};
        EnableDebugPriv();
        //enableDebugPriv();
        // TODO: 在此添加控件通知处理程序代码
        DWORD pid=0;
        DWORD eid=0;
        DWORD szSize=(DWORD)&ThreadProc-(DWORD)&OpenMiniMap;

       
        HWND h1=::FindWindowA(NULL,"Warcraft III");//计算器
        if(h1==NULL)
        {
                MessageBoxA(NULL,NULL,"没有找到游戏!",MB_OK);
                return;
        }
        GetWindowThreadProcessId(h1,&pid);
        HANDLE hOpen=OpenProcess(STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 4095,FALSE,pid);
        eid=GetLastError();
        LPVOID szRem=VirtualAllocEx(hOpen,NULL,szSize,MEM_COMMIT,PAGE_READWRITE );
        _itoa_s((DWORD)szRem,s,16);
        MessageBoxA(NULL,NULL,s,MB_OK);
        WriteProcessMemory(hOpen,szRem,OpenMiniMap,szSize,0);
        //CreateRemoteThread
}
计算器是可以用的啊,到war3就不行了啊,求解啊,GetLastError 返回值为5
2013-10-10 18:59
0
雪    币: 1392
活跃值: (5207)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
11
openprocess(processallacces 试试)
2013-10-10 19:20
0
雪    币: 171
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
试过了,这个是在网上找的结果也是不好用啊,是不是 内核hook了啊??其他的程序行就war3不行
2013-10-10 19:39
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
你是说连进程都没打开?那是因为你没右键选管理员权限运行..你试下..
我的是open了读不到数据,提debug权限也不行,不知道是不是代码有问题.调试的时候Luid的第一个值为0不知道正常不
2014-5-20 12:39
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
标准用户下 还是管理员用户?  如果是管理员用户下 不会出错的
2014-5-21 17:11
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
dddd
2014-5-21 17:16
0
游客
登录 | 注册 方可回帖
返回
//