进程句柄继承

1、内核对象允许被继承

SECURITY_ATTRIBUTES sa;                    
sa.nLength = sizeof(sa);                    
sa.lpSecurityDescriptor = NULL;                    
sa.bInheritHandle = TRUE;                                  
HANDLE g_hEvent = CreateEvent(&sa, TRUE, FALSE, NULL);                    
 

2、允许子进程继承句柄

 CreateProcess(   "c:\\test.exe",   NULL, NULL,NULL, TRUE,  CREATE_NEW_CONSOLE, NULL,   NULL, &si, &pi);     

第五个参数为TRUE的时候,指明子进程可以继承父进程的句柄表

 

3、进程、线程句柄继承

CreateProcess第三个参数与第四个参数的类型为SECURITY_ATTRIBUTES

第三个参数决定当前创建的进程句柄是否允许被继承

第四个参数决定当前创建的线程句柄是否允许被继承

 

CreateProcess创建进程时,会创建一个进程、一个线程。它们都是内核对象,会被添加到主进程的句柄表内,

通过三、四参数修改这两个句柄的属性,使其可以被子进程进程。

 

A进程创建B进程,将B进程的进程句柄、线程句柄设置为可继承。(CreateProcess三、四参数)

A进程创建C进程,赋予C进程可以继承句柄表的权限,C进程可以获取到B进程的进程句柄、线程句柄  (CreateProcess第五个参数)

 

 


        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值