点饭的百度空间
银牌会员
![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif)
积分 2315
发帖 2236
注册 2007-11-30
|
#1 [908813] 小测金山卡巴斯基2011 微点背后的强者
2010-09-23 20:40
微点的背后是工程师们的心血在默默支持.
微点向来低调示人,但就有不小让人惊叹的技术就隐于其中,如果各位有兴趣的话,今天就谈谈微点吧.高手就见笑了.
hook是主动防御的重要组成部分之一,没有HOOK,主动防御也无从谈起.但和其它主动防御不同,微点hook[钩子]难以扫描出来.当金山的主动防御开启时,使用 XueTr0.36 检测时.可以看到满山的枫叶都盛开了[红了一大片] 金山的钩子全被XueTr检测出来了.
![](http://mpicture.micropoint.com.cn/getpic.asp?sid=d5b01cc41cef3968cc5a2ef6eb41493d)
但微点的钩子却无法扫描出来
![](http://mpicture.micropoint.com.cn/getpic.asp?sid=097fb9c1b38b94be649c59b8b99e0f85)
Hook实现起来是比较容易的[但我不会使用],仅仅修改函数几个字节,或修改一部分系统指令,便可完成隐藏文件及系统监控的各种功能.
就目前我知道的Hook大概有以下几种; object Hook, SSDT Hook, inline Hook, EAT Hook, SYSENTER Hook, IDT Hook, IRP Hook, IAT Hook.这几种Hook各有特点.object Hook的功能十分强大,但实现要对系统内核有比较深的了解, 对系统内核了解不深的,就看看好了.免得蓝屏. 在国内杀毒软件中微点有能力使用object Hook.不相信的自己使用XueTr0.36 检测object Hook,看看国内的杀毒软件的钩子.不过就世界上能使用object Hook的杀毒软件也比较小......需然object Hook的功能十分强大,但检测object Hook也比较简单.这不就被XueTr0.36 检测出来了. 但是微点的object Hook是有保护的,但是也有人认为保护object Hook也没什么样,毕竟在内核没啥意思.
![](http://mpicture.micropoint.com.cn/getpic.asp?sid=59a416482db871c7f9509d9972c57c64)
Object属性结构如下:
typedef struct _OBJECT_ATTRIBUTES
{
ULONG Length;
HANDLE RootDirectory;
UNICODE_STRING *ObjectName
ULONG Attributes;
PSECURITY_DESCRIPTOR SecurityDescriptor;
PSECURITY_QUALITY_OF_SERVICE SecurityQualityOfService;}
OBJECT_ATTRIBUTES,*POBJECT_ATTRIBUTES
调用API基于如下汇编代码
00411A3F mov esi,esp
00411A41 push looh
00411A46 lea eax,[strDllDir]
00411A4C push eax
00411A4D call dword ptr [_imp_GetWindows DirectoryA@8(42B180h)]
好了,回到主题.那为何微点的钩子无法扫描出来? 在这之前,先讲一下钩子的挂钩方法.常用的挂钩方法方法有如下3种;要注意的是这里的挂钩方法仅限于SSDT表和SSDT shadow表的挂钩.
1,在要挂钩的函数中使用"JMP XXXXXXXX"覆盖原函数的指令,该指令的机器码是E9XXXXXXXX,占用5个字节的地址空间.
2,在要挂钩的函数中使用"JMP FARXXXXXXXX"覆盖原函数的指令,后面的XXXXXXXX是跳转的绝对地址,该函数指令的机器码是EAXXXX0800,该指令占用7个字节的地址空间.
3,在要挂钩的函数中先使用"PUSHXXXXXXXX",之后直接用RETN返回,这样就间接实现了跳转,这两条指令共占用6个字节的地址空间.
如上所述,那要避开挂钩的函数,跳转到函数中不被挂钩的代码段就可以跳出主动防御的重重拦截,即是跳转API函数+10的地址.但是通常情况下API+5就已经可以对付大部分钩子了.为了对付这种API+5的跳转,出现了变形的API函数挂钩技术[变形JMP],变形API函数挂钩是将挂钩的地址进行变形,就是挂钩的地址不再是在API+5的范围内,变成了API函数中数十个字节中任意几个,十几个甚至数十个字节.反正是在 [(API+5<API+X) X>5] 的情况下进行的,但这种技术也不是很好使用的,需要对进行变形API函数挂钩的API函数有比较深的理解,不然是无法使用的.同样微点是使用变形API函数挂钩的,在挂钩深度上,连XueTr0.36和天琊都无法检测出来,这说明微点的工程师对挂钩的API函数有很深的理解.实际上在挂钩深度上,微点比卡巴斯基2011要深,在XueTr0.36的检测下卡巴斯基2011的挂钩还是相当多的. 国内杀毒软件也就江民,当然还有安天防线有能力这样来挂钩[北信源等不知道],中国的杀毒技术不差,但就是和360斗争,空耗实力. 悲剧呀! 那变形API函数挂钩技术和钩子隐藏有何关系呢? 我看了下资料,钩子隐蔽技术是无意中被发现的技术,这和变形API函数挂钩技术有很深的关系.一个ARK工具扫描API函数是否被挂钩时,是基于对比来实现的. 简单来说就是检测,封装API函数的原始DLL文件中API函数的地址和内存中的API函数地址,是否一样,不一样就可以说该API函数已经被挂钩(要注意的是,这是在通常来讲的情况下,可认为其已被挂钩.) 这是反汇编引擎对其进行扫描,但反汇编引擎通常只扫描API函数地址的前十个字节,也是说万一变形API挂钩,不在前十个字节里,就会被认为其没被挂钩,但事实上API已经被挂钩. 这就实现了API钩子隐藏. 这便是初级的API钩子隐藏技术.
object Hook,变形API函数挂钩技术,微点还有很多的技术是邻先的.但是那是微点的工程师们多小个日夜,多小心血才凝成.这对微点,这由几乎没有核心研发能力刚毕业的年轻人[但这年轻人的年龄比自己要大的多,说年轻人时真有点怪异的感觉]占大部分的微点研发部,来说由为艰难. 祝愿你们能苦尽甘来,为微点谱写又一个传奇!正像点饭的百度空间的一句话"三载磨剑綻锋芒,今日拨云迎朝阳;历经磨难終成器,破茁微点振翅飞."说实话这诗不是很好.-_- 他的百度空间是http://hi.baidu.com/micropoint 有兴趣的去看看吧.
2010年10月6日对部分有问题的地方进行修改.欢迎高人指正.
2010年10月1日
2908813(http://hi.baidu.com/2908813/blog ... 6386067bf4803c.html)
|
※ ※ ※ 本文纯属【点饭的百度空间】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) 你的微笑 is 微点的骄傲!
http://hi.baidu.com/new/micropoint |
![](images/common/sigline.gif) |
|
2010-10-6 21:27 |
|
2009renmin
禁止发言
积分 11
发帖 11
注册 2009-5-26
|
#2
你暴露了微点的核心技术秘密。。。。
|
※ ※ ※ 本文纯属【2009renmin】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) |
|
2010-10-6 22:20 |
|
凡间幽灵
银牌会员
![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif)
积分 1329
发帖 1295
注册 2008-11-27
|
|
2010-10-6 22:39 |
|
soonbest
中级用户
![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif)
积分 302
发帖 298
注册 2006-11-21
|
#4
技术贴看着很吃力。。。汗。
|
※ ※ ※ 本文纯属【soonbest】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) |
|
2010-10-8 11:08 |
|
meihaosuda
银牌会员
![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) ![](images/df/star.gif) 微点第三战区特派员
积分 1415
发帖 1399
注册 2010-3-12
|
#5
看不懂呀,呵呵
|
※ ※ ※ 本文纯属【meihaosuda】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) |
|
2010-10-8 12:41 |
|
lun0414
新手上路
![](images/df/star.gif)
积分 11
发帖 11
注册 2009-11-20
|
#6
好文章,发人深省!希望能有更多的技术文章出现!
|
※ ※ ※ 本文纯属【lun0414】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) |
|
2010-10-8 13:23 |
|
myliukeyu
注册用户
![](images/df/star.gif) ![](images/df/star.gif)
积分 52
发帖 52
注册 2010-9-3
|
#7
楼主你太没见识了,只有病毒才会使用钩子,微点是真正的杀毒软件所以没有钩子!~
|
※ ※ ※ 本文纯属【myliukeyu】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) |
|
2010-10-8 13:50 |
|
lun0414
新手上路
![](images/df/star.gif)
积分 11
发帖 11
注册 2009-11-20
|
#8
Quote: | Originally posted by myliukeyu at 2010-10-8 13:50:
楼主你太没见识了,只有病毒才会使用钩子,微点是真正的杀毒软件所以没有钩子!~ |
|
我对你表示无语...你用SReng和XueTr看看你的杀毒软件是不是HOOK
|
※ ※ ※ 本文纯属【lun0414】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) |
|
2010-10-8 13:54 |
|
cia007
新手上路
![](images/df/star.gif)
积分 2
发帖 2
注册 2009-2-19
|
#9
强烈的支持微点,希望2。0更上十层楼!
|
※ ※ ※ 本文纯属【cia007】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) |
|
2010-10-8 20:02 |
|
lxc2009wd
注册用户
![](images/df/star.gif) ![](images/df/star.gif)
积分 108
发帖 108
注册 2009-10-8 来自 山东临沂
|
#10
学习一个,看看
|
※ ※ ※ 本文纯属【lxc2009wd】个人意见,与【 微点交流论坛 】立场无关※ ※ ※
|
![](images/common/sigline.gif) 为人难,为好人更难...... |
![](images/common/sigline.gif) |
|
2010-10-9 17:10 |
|
|