您的位置首页百科知识

hookport.sys的整体框架

hookport.sys的整体框架

的有关信息介绍如下:

HookPort总共Hook了57h个SSDT或SHADOWSSDT函数,其实现不是通过修改KeServiceDescriptorTable或KeServiceDescriptorShadowTable中函数地址完成,而是通过HookKiFastCallEntry函数实现的。HookPort准备了两个表,SERVICE_FILTER_INFO_TABLE和FILTERFUN_RULE_TABLE。前者保存了SSDT和ShadowSSDT中的原函数地址和Hook函数地址,是按照函数在SSDT中的位置为索引的,后者保存了过滤函数的地址和规则,是按照57h个函数作为索引的。

当程序因为系统调用而进入KiFastCallEntry函数时,会经过两次跳转进入到一个函数中,这个函数会返回一个函数地址,这个地址可能是SSDT中原函数的地址,也可能是SERVICE_FILTER_INFO_TABLE表中Hook函数的地址。到底返回哪个要根据FILTERFUN_RULE_TABLE中的规则来判断。这样就达到了SSDTHOOK的目的。

hookport.sys的整体框架