-
-
[讨论]读取句柄表,
-
发表于:
2011-1-3 13:19
3905
-
我用下面的代码区读取进程的句柄表,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);
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法