-
-
[讨论]Shadow SSDT hook
-
发表于:
2011-1-30 00:52
5847
-
环境 :Winxp+Sp3
已经获取了KeServiceDescriptorTableShadow的址
但是看了论坛里面的文章,说win32k.sys不是常驻内存
http://bbs.pediy.com/showthread.php?t=56955
说是下面的函数可以解决这个问题,但是我看不太明白,希望大哥们指点一下
入参是什么?
返回的是什么?
返回之后怎么修改Shadow SSDT 里面对应函数的地址?
PVOID *RegmonMapServiceTable( SERVICE_HOOK_DESCRIPTOR **ServiceIsHooked )
{
*ServiceIsHooked = (SERVICE_HOOK_DESCRIPTOR*)
ExAllocatePool(NonPagedPool, KeServiceDescriptorTable->TableSize);
if( *ServiceIsHooked )
{
RtlZeroMemory(*ServiceIsHooked, KeServiceDescriptorTable->TableSize);
KeServiceTableMdl = MmCreateMdl(0, KeServiceDescriptorTable->ServiceTable, KeServiceDescriptorTable->TableSize << 2);
if( KeServiceTableMdl )
{
MmBuildMdlForNonPagedPool(KeServiceTableMdl);
KeServiceTableMdl->MdlFlags |= 1;
return (PVOID*)MmMapLockedPages(KeServiceTableMdl, KernelMode);
}
}
return NULL;
};
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)