简介
进程 PID
是进程的唯一标识,那么如果我们尝试抹除进程的 PID
会发生什么情况呢?
本次的测试代码以及关于全局句柄表,可参考
全局句柄表 —— 遍历全局句柄表
Code
驱动程序的关键代码如下:
// 该句柄是进程句柄
if (!RtlCompareUnicodeString(&pWkPOBJECT_TYPE->Name, &unicode_Process, TRUE))
{
DbgPrint("句柄类型: Process, 句柄号: %u.\n", uHandleNumb);
DbgPrint("进程名: %s, PID: %u 活动的线程数: %u.\n", (PUCHAR)pHandleItmeAddr + 0x174, *(PULONG)((PUCHAR)pHandleItmeAddr + 0x84), *(PULONG)((PUCHAR)pHandleItmeAddr + 0x1a0));
// 此处可以将特定进程的句柄项置为0, 则该进程的PID信息将会从操作系统中抹除
}
测试结果如下:
使用任务管理器无法终结进程,手动关闭该进程,会造成系统崩溃!