首页
社区
课程
招聘
[旧帖] [求助]关于进程权限的问题,求教 0.00雪花
发表于: 2010-1-13 21:05 1495

[旧帖] [求助]关于进程权限的问题,求教 0.00雪花

2010-1-13 21:05
1495
各位大侠,有个问题没弄明白,请赐教一二。
写了几行简单的代码,没有提权的条件下 打开syetem用户进程的句柄,然后用terminateprocess结束。代码本身事administrator权限的 按理来说,terminateprocess应该执行失败的吧? 代码如下
hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,992);// 992 是csrss进程的PID。
TerminateProcess(hProcess,0);

但是在debug调试的时候 能打开该进程的句柄,也能结束csrss进程。计算机蓝屏。
如果build release版本,双击该程序,csrss进程没有结束。但是如果在VC里点击运行按钮来执行,csrss进程同样被杀掉!

有哪位大侠能答疑解惑一下吗?

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 66
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
直接运行exe 和 在VC里用 ! 运行有什么区别吗?
2010-1-13 21:24
0
雪    币: 66
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
贴代码上来 请高人指教
---------------------------------------------
#include <windows.h>
#include "stdio.h"

#define SE_DEBUG_PRIVILEGE                (20L)
#define STATUS_SUCCESS  ((NTSTATUS)0x00000000L)
HINSTANCE hNtDll = 0;

main()
{
        BOOLEAN bflag=FALSE;
        HANDLE hProcess;
       
        hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,992); //992 是Csrss进程的PID
        BOOL ret = TerminateProcess(hProcess,0);
                return 0;

}
2010-1-13 22:10
0
雪    币: 324
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你的这个条语句要扩展成如下方式
BOOL ret = TerminateProcess(hProcess,0);
DWORD dwErr = 0;
if(!ret)
{
   dwErr = GetLastError;
}
然后看你的程序是什么程序,选择合适的方式(如记在日志文件中)留下记录,查看下原因。
2010-1-13 22:21
0
雪    币: 66
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
原因可能是由于程序由VC启动时,默认启动了SeDebugPrivilege权限 从而使对system用户的进程也能操作。
如果直接运行程序,则相应的操作不会成功。
2010-1-13 23:02
0
雪    币: 66
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
所以 从VC里点击!启动程序 和 直接运行exe 应该是不一样的!!!
2010-1-13 23:04
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
7
我以前提问过这个问题,帖子地址:
http://bbs.pediy.com/showthread.php?t=104305
2010-1-14 16:46
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
呵呵,学习学习。
2010-1-16 16:00
0
游客
登录 | 注册 方可回帖
返回
//