b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

win7 系统下载?微软win7安装工具?360安全卫士hookport.sys简单逆向——KiFastCallEntr

电脑杂谈  发布时间:2016-11-06 11:04:06  来源:网络整理

你是否正在寻找关于hookport.sys的内容?让我把最完整的东西奉献给你:

KiFastCallEntry的挂钩

360安全卫士并没有使用通常的方式——直接修改SSDT和SSDTShadow进行挂钩。由于两个表中的函数最终是由系统未导出的函数KiFastCallEntry调用的,所以360在适当的位置挂载了KiFastCallEntry函数,达到了过滤的目的。大多数ARK软件只检测了两个表是否被更改,所以不能检测出360的HOOK。

上面介绍的MyHookMgr结构之所以占据近6K的连续内存空间,是因为KiFastCallEntry是一个频繁被系统调用的函数,所以钩子的效率十分重要,使用连续的空间可以节省出大量寻址时间,是一种空间换时间的做法。

KiFastCallEntry内存地址的确定

KiFastCallEntry并没有被系统模块导出,360采取了一个比较巧妙的方法简介获得其地址。

1. 常规方法挂载ZwSetEvent函数,代理函数为hookprot.sys模块中的_HookKiFastCallEntryKnrl。

2. 之后马上调用ZwSetEvent函数。

可以看到这里的handle为0x288C58F1,显然是一个不合法的句柄,。这里起到一个标志,所用,我们的_HookKiFastCallEntryKnrl函数看到这个handle就会做一些特殊处理来寻找KiFastCallEntry的地址啦。

1. 然后会跳转到_HookKiFastCallEntryKnrl中,如果句柄是0x288C58F1则恢复刚才的SSDT钩子。并对KiFastCallEntry进行挂载。

由于_HookKiFastCallEntryKnrl是KiFastCallEntry调用的,所以我们可以从栈针中找到的返回地址也就是KiFastCallEntry所在了。

代码只需要一句mov eax, [ebp+4] 就可以了。

KiFastCallEntry的挂载

KiFastCallEntry是一个非常复杂的函数,挂载位置很重要。

我们对比一下360安全卫士挂载前和挂载后的函数。

挂载前:

8053d7dc ff0538f6dfff inc dword ptr ds:[0FFDFF638h]

8053d7e2 8bf2 mov esi,edx

8053d7e4 8b5f0c mov ebx,dword ptr [edi+0Ch]

8053d7e7 33c9 xor ecx,ecx

8053d7e9 8a0c18 mov cl,byte ptr [eax+ebx]

8053d7ec 8b3f mov edi,dword ptr [edi]

8053d7ee 8b1c87 mov ebx,dword ptr [edi+eax*4]

8053d7f1 2be1 sub esp,ecx

8053d7f3 c1e902 shr ecx,2

8053d7f6 8bfc mov edi,esp

8053d7f8 3b35b48b5580 cmp esi,dword ptr [nt!MmUserProbeAddress (80558bb4)]

8053d7fe 0f83a8010000 jae nt!KiSystemCallExit2+0x9f (8053d9ac)

8053d804 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]

8053d806 ffd3 call ebx

8053d808 8be5 mov esp,ebp

8053d80a 8b0d24f1dfff mov ecx,dword ptr ds:[0FFDFF124h]

挂载后:

8053d7dc ff0538f6dfff inc dword ptr ds:[0FFDFF638h]

8053d7e2 8bf2 mov esi,edx

8053d7e4 8b5f0c mov ebx,dword ptr [edi+0Ch]

8053d7e7 33c9 xor ecx,ecx

8053d7e9 8a0c18 mov cl,byte ptr [eax+ebx]

8053d7ec 8b3f mov edi,dword ptr [edi]

8053d7ee 8b1c87 mov ebx,dword ptr [edi+eax*4]

8053d7f1 e93289ca01 jmp 821e6128

8053d7f6 8bfc mov edi,esp

8053d7f8 3b35b48b5580 cmp esi,dword ptr [nt!MmUserProbeAddress (80558bb4)]

8053d7fe 0f83a8010000 jae nt!KiSystemCallExit2+0x9f (8053d9ac)

8053d804 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]

8053d806 ffd3 call ebx

8053d808 8be5 mov esp,ebp

8053d80a 8b0d24f1dfff mov ecx,dword ptr ds:[0FFDFF124h]

8053d810 8b553c mov edx,dword ptr [ebp+3Ch]

根据WRK的代码我们知道,这时所有调用需要的环境都已经准备好了。360这里替换了

8053d7f1 2be1 sub esp,ecx

8053d7f3 c1e902 shr ecx,2

这两条指令,实现了jmp,将这两条指令放到Hook后的函数中处理,这里就不详细叙述了。IDB文件中有比较详细的注释。

【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。

以上就是关于hookport.sys的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-20275-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 孙雪
        孙雪

        他那问题跟阿富汗现在是国际贩毒中心之一一样

      热点图片
      拼命载入中...