今天,我发现了一些有趣的代码。问题是创建者没有包含一些特别重要的功能。它是Windows内核模式驱动程序,应该暂停其他驱动程序线程:
HANDLE T[20] = {NULL};
ULONG64 Tid[THREAD_MAX_NUMBER] = {0};
FastFunction::GetDriverThread("OtherDriver.sys",&Number, Tid);
for (ULONG i = 0; i < Number; i++)
{
T[i] = FastFunction::OpenThread(THREAD_ALL_ACCESS, FALSE, (DWORD)Tid[i]);
FastFunction::SuspendThread(T[i]);
}
我尝试搜索,但是找不到关于如何实际获取其他驱动程序线程并从中获取句柄的参考。另外,我不确定如何暂停线程,因为我发现的唯一内容是ZwSuspendThread
,未记录。