-
-
[讨论]读取句柄表,
-
发表于:
2011-1-3 13:19
3904
-
我用下面的代码区读取进程的句柄表,pExt->vCurrentPID为要读取的进程PID,
pExt->vCurrentPID=(HANDLE)vBufferLen;
Irp->IoStatus.Status=STATUS_SUCCESS;
if(!NT_SUCCESS(rs))
{
KdPrint(("Get PID Error...\n"));
Irp->IoStatus.Information=0;
IoCompleteRequest(Irp,IO_NO_INCREMENT);
return rs;
}
KdPrint(("CurrentPID=%u\n",pExt->vCurrentPID));
//下面读取这个进程有多少个句柄
PEPROCESS pe;
rs=PsLookupProcessByProcessId(pExt->vCurrentPID,&pe);
if(!NT_SUCCESS(rs))
{
KdPrint(("LookupProcess Failed...PID=%u\n",pExt->vCurrentPID));
Irp->IoStatus.Information=0;
IoCompleteRequest(Irp,IO_NO_INCREMENT);
return rs;
}
char* pHandleTable=(char*)pe+0x0C4;//定位到句柄表信息
int HandleCount=*(int*)(pHandleTable+0x03C);//句柄的个数(???为什么这里总是零呢??) ObfDereferenceObject(pe);
[课程]Linux pwn 探索篇!