|
获得进程的EPROCESS(6) 0100 FF90A2C8 FF90A2E0 IoCompletion 0104 E2CFE708 E2CFE720 Port 0108 FF90A2C8 FF90A2E0 IoCompletion 010C 837762A8 837762C0 Thread 0110 8103BBC8 8103BBE0 Event 0114 813DBDB8 813DBDD0 Event 0118 FF814788 FF8147A0 Event 011C E1358DA8 E1358DC0 Key 0120 E2CFC428 E2CFC440 Key 0124 8103B9C8 8103B9E0 Event 0128 E2C9A968 E2C9A980 Key 012C 83B34E88 83B34EA0 Event 0130 E2CFD948 E2CFD960 Key 0134 83B34E08 83B34E20 Event .... .....................省略
看了一阵,确实没有QQ本身进程的Handle,那么怎么办呢?
想了一会儿...既然Win32子系统是由CSRSS.EXE来管理的,那么用户创建的进程的句柄应该在CSRSS.EXE里面找得到,用SoftICE验证后发现确实如此
可是这没办法得到指定进程的句柄,和我所需相去甚远,只有另选它路
后来总算想到解决办法,既然没有进程的句柄,那就创建一个吧,OpenProcess()这个函数可以打开一个进程的句柄,正合所需.
果然加上这么一句后,ZwQuerySystemInformation()获得了EPROCESS
修改好的程序代码如下,获得本身进程的EPROCESS地址,稍作修改可获取任意进程
#include <windows.h> #include <stdio.h> #include <aclapi.h>
|