【旧文章搬运】分析了一下360安全卫士的HOOK
原文发表于百度空间及看雪论坛,2009-10-08
看雪论坛地址:https://bbs.pediy.com/thread-99128.htm
看时间,09年的国庆节基本上就搞这玩意儿了。。。
==========================================================================
分析了一下360的HOOK,通过直接hook KiFastCallEntry实现对所有系统调用的过滤。
我分析的版本如下:
主程序版本: 6.0.1.1003
HookPort.sys版本: 1, 0, 0, 1005
HookPort.sys的TimeStamp: 4A8D4AB8
简单说明:360把所有被hook的系统服务的过滤函数放在了一个表里,索引即对应的系统服务在该过滤函数表中的索引。所有列出来的函数都会被hook掉的,是否处理指某个系统服务有没有相应的过滤函数进行处理,拒绝还是放行就是在过滤函数中完成判断的。不处理的系统服务,将会直接调用原始服务例程。
函数如下:
服务名称 索引 是否处理 备注
==============================================================================
NtCreateKey 0x00 否
NtQueryValueKey 0x01 是
NtDeleteKey 0x02 是
NtDeleteValueKey 0x03 是
NtRenameKey 0x04 是
NtReplaceKey 0x05 是
NtRestoreKey 0x06 是
NtSetValueKey 0x07 是
NtCreateFile 0x08 是
NtFsControl 0x09 是
NtSetInformationFile 0x0A 是
NtWriteFile 0x0B 是
NtWriteFileGather 0x0B 是 //和NtWriteFile共用一个过滤函数
NtCreateProcess 0x0D 是
NtCreateProcessEx 0x0E 是
NtCreateUserProcess 0x0F 是 //Only on Vista or later
NtCreateThread 0x10 是
NtCreateThreadEx 0x10 是 //和NtCreateThread共用一个过滤函数,for vista or later
NtOpenThread 0x11 是
NtDeleteFile 0x12 是
NtOpenFile 0x13 是
NtReadVirtualMemory 0x14 否
NtTerminateProcess 0x15 是
NtQueueApcThread 0x16 是
NtSetContextThread 0x17 是
NtSetInformationThread 0x18 否
NtProtectVirtualMemory 0x19 否
NtWriteVirtualMemory 0x1A 是
NtAdjustGroupToken 0x1B 否
NtAdjustPrivilegesToken 0x1C 否
NtRequestWaitReplyPort 0x1D 是
NtCreateSection 0x1E 是
NtOpenSecton 0x1F 是
NtCreateSymbolicLinkObject 0x20 是
NtOpenSymbolicLinkObject 0x21 否
NtLoadDriver 0x22 是
NtUnloadDriver 0x22 是 //和NtLoadDriver共用一个过滤函数
NtQuerySystemInformation 0x23 是
NtSetSystemTime 0x25 否
NtSystemDebugControl 0x26 是
NtUserBuildHwndList 0x27 是
NtUserQueryWindow 0x28 是
NtUserFindWindowEx 0x29 是
NtUserWindowFromPoint 0x2A 是
NtUserMessageCall 0x2B 是
NtUserPostMessage 0x2C 是
NtUserSetWindowsHookEx 0x2D 是
NtUserPostThreadMessage 0x2E 是
NtOpenProcess 0x2F 是
NtDeviceIoControlFile 0x30 是
NtUserSetParent 0x31 是
NtOpenKey 0x32 是
NtDuplicateObject 0x33 是
NtResumeThread 0x34 否
NtUserChildWindowFromPointEx 0x35 是
NtUserDestroyWindow 0x36 是
NtUserInternalGetWindowText 0x37 否
NtUserMoveWindow 0x38 是 //和NtSetParent共用一个过滤函数
NtUserRealChildWindowFromPoint 0x39 是 //和NtUserChildWindowFromPointEx共用一个过滤函数
NtUserSetInformationThread 0x3A 否
NtUserSetInternalWindowPos 0x3B 是 //和NtSetParent共用一个过滤函数
NtUserSetWindowLong 0x3C 是 //和NtSetParent共用一个过滤函数
NtUserSetWindowPlacement 0x3D 是 //和NtSetParent共用一个过滤函数
NtUserSetWindowPos 0x3E 是 //和NtSetParent共用一个过滤函数
NtUserSetWindowRgn 0x3F 是 //和NtSetParent共用一个过滤函数
NtUserShowWindow 0x40 是
NtUserShowWindowAsync 0x41 是 //和NtUserShowWindow共用一个过滤函数
NtQueryAttributesFile 0x42 否
NtUserSendInput 0x43 否
NtAlpcSendWaitReceivePort 0x44 是 //for vista or later
NtUnmapViewOfSection 0x46 是
NtUserSetWinEventHook 0x47 否
NtSetSecurityObject 0x48 是
NtUserCallHwndParamLock 0x49 是
NtUserRegisterUserApiHok 0x4A 否
【旧文章搬运】分析了一下360安全卫士的HOOK的更多相关文章
- 【旧文章搬运】分析了一下360安全卫士的HOOK(二)——架构与实现
原文发表于百度空间及看雪论坛,2009-10-14 看雪论坛地址:https://bbs.pediy.com/thread-99460.htm 刚发这篇文章的时候,因为内容涉及360的核心产品,文章被 ...
- 【旧文章搬运】PsVoid中IrpCreateFile函数在Win7下蓝屏BUG分析及解决
原文发表于百度空间,2010-04-05========================================================================== 这也许是我 ...
- 【旧文章搬运】360安全卫士HookPort.sys完美逆向
原文发表于百度空间,2009-11-08 这是第一次逆向一个企业级安全产品的核心代码,并完美替换原驱动正常工作============================================= ...
- 【旧文章搬运】深入分析Win7的对象引用跟踪机制
原文发表于百度空间及看雪论坛,2010-09-12 看雪论坛地址:https://bbs.pediy.com/thread-120296.htm============================ ...
- 【旧文章搬运】再谈隐藏进程中的DLL模块
原文发表于百度空间,2009-09-17========================================================================== 相当老的话 ...
- 【旧文章搬运】Windows句柄表分配算法分析(一)
原文发表于百度空间,2009-03-30========================================================================== 阅读提示: ...
- 【旧文章搬运】Windbg+Vmware驱动调试入门(四)---VirtualKD内核调试加速工具
原文发表于百度空间,2009-01-09========================================================================== 今天又想起 ...
- 【旧文章搬运】炉子给的SYSTEM_HANDLE_TYPE有点错误
原文发表于百度空间,2008-12-03========================================================================== 今天写程序 ...
- 【旧文章搬运】PE感染逆向之修复(Serverx.exe专杀工具出炉手记)
原文发表于百度空间,2008-10-4看雪论坛发表地址:https://bbs.pediy.com/thread-73948.htm================================== ...
随机推荐
- MFC中的几种播放声音的方法
一.播放声音文件的简单方法 在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数.利用这些函数可以方便地播放声音.最简单的播放声音方法就是直接调用VC++中提供的声音播放函 数BOOL s ...
- js如何获取table或者ul中鼠标点的行号和内容
<html> <head> <script language="javascript"> function doclick() { var td ...
- 碰撞检測之OBB-OBB的SweepTest
提要 当物体在运动的时候.普通的每帧进行碰撞检測已经无法满足要求,比方子弹的运动 两帧的位置已经直接将中间的板子穿过了,所以 t 时刻和 t +1 时刻的检測都是失效的.这时候须要用到的就是sweep ...
- 生活娱乐 Wifi机器人的制作流程
思路简单,但是创意无限~~ 动手能力超强 牛人教你做Wifi机器人(图) 一.前言 Wifi机器人(Wifi Robot):其实是一辆能通过互联网,或500米以外的笔记本无线设施来远程控制的遥控汽车. ...
- Koala - 使用
几天项目又加紧,样式想写又太慢! 下载考拉:http://pc6.dun.123ch.cn/download/koala%E7%BC%96%E8%AF%91%E5%B7%A5%E5%85%B7_30@ ...
- 从Nginx源代码谈大写和小写字符转化的最高效代码以及ASCII码表的科学
说起大写和小写字母转换.大家非常easy想起系统函数是不是,差点儿全部的编程语言都提供了这样的转换函数,可是你有没有想过这背后是怎么实现的? 让你写怎么实现? 我们都知道Nginx是眼下用的最多的Ht ...
- MVC Page分页控件
MVCPage帮助类 控制器代码 public ActionResult Article(int? page) { //Session["ArticleClass"] = cont ...
- Android自己定义组件系列【11】——实现3D立体旋转效果
今天在网上看到一篇文章写关于Android实现3D旋转(ca=drs-">http://www.ibm.com/developerworks/cn/opensource/os-cn-a ...
- DCOS之Mesos-DNS介绍
DCOS的Mesos-DNS它主要提供域名解析服务,Mesos-DNS 在DCOS框架中支持服务发现,同意应用程序和服务通过域名系统(DNS)来相互定位.DCOS中的 Mesos-DNS充当的角色和在 ...
- Release Candidate
RC_百度百科 https://baike.baidu.com/item/RC/7311964?fr=aladdin RC=Release Candidate,含义是"发布候选版" ...