阅读:2664回复:1
通过句柄怎么获取进程名?
如果根据ZwCreateProcess返回的句柄ProcessHandle得到新创建的进程的ID?
在2003下可以通过ZwQueryInformationProcess得到,但是在2000下面呢? 如果用ZwQueryInformationProcess得到的总是0。 |
|
沙发#
发布于:2007-08-23 11:09
NTSTATUS
ObReferenceObjectByHandle( IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL ); NTSTATUS ns; PVOID pProcess=NULL; ns= ObReferenceObjectByHandle( ProcHandle, 0, NULL, KernelMode, &pProcess, NULL ) ; 从pProcess这个内核对象直接获取pid,根据系统不通,偏移不同,如下: #define PIDOffset_XP 0x84 #define PIDOffset_2K 0x9c #define PIDOffset_2K3 0x94 |
|