查看: 4953|回复: 23
收起左侧

[微点] 微点的背后是工程师们的心血在默默支持.

  [复制链接]
a445441
发表于 2011-6-19 11:31:17 | 显示全部楼层 |阅读模式
微点向来低调示人,但就有不小让人惊叹的技术就隐于其中,如果各位有兴趣的话,今天就谈谈微点吧.高手就见笑了.           其实本人电脑水平很差的,小白一个.即不会VC也不会汇编,真是很差.但总算也学过一种不入流的中文编程语言.也罢了.

          hook是主动防御的重要组成部分之一,没有HOOK,主动防御也无从谈起.但和其它主动防御不同,微点hook[钩子]难以扫描出来.当金山的主动防御开启时,使用 XueTr0.36 检测时.可以看到满山的枫叶都盛开了[红了一大片] 金山的钩子全被XueTr检测出来了.但微点的钩子却无法扫描出来

      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也没什么样,毕竟在内核保护object Hook 没啥意思.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函数挂钩技术,微点还有很多的技术是领先的.但是那是微点的工程师们多少个日夜,多少心血才凝成.这对微点,这由几乎没有核心研发能力刚毕业的年轻人[但这年轻人的年龄比自己要大的多,说年轻人时真有点怪异的感觉]占大部分的微点研发部,来说由为艰难.   祝愿你们能苦尽甘来,为微点谱写又一个传奇!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 2人气 +2 收起 理由
聆听落雨 + 1 版区有你更精彩: )
麻辣豆腐 + 1 感谢支持,欢迎常来: )

查看全部评分

镜湖
发表于 2011-6-19 11:40:43 | 显示全部楼层
有人转过
wenjian312
发表于 2011-6-19 11:59:46 | 显示全部楼层
微点确实太低调了
wsmurderer
发表于 2011-6-19 12:04:24 | 显示全部楼层
低调才好,要是像数字一样我会放弃的
-oAo-
发表于 2011-6-19 13:04:20 | 显示全部楼层
技术性的东西看不懂,也没几个杀软看得懂吧?
星空下的吻
发表于 2011-6-19 13:34:16 | 显示全部楼层
楼主我觉得你应该看一下内核钩子,而不是看SSDT
lfx123
发表于 2011-6-19 13:38:44 | 显示全部楼层
虽然转的,还是支持。微点就是不错。
klinxun
发表于 2011-6-19 16:04:39 来自手机 | 显示全部楼层
星空下的吻 发表于 2011-6-19 13:34
楼主我觉得你应该看一下内核钩子,而不是看SSDT

因为大部分人不懂,其实我也太不懂,但是这些文章造成的后果我们懂的。
小仙仙
发表于 2011-6-19 17:53:08 | 显示全部楼层
支持一下,虽然我看不懂
tang2011
发表于 2011-6-19 18:23:44 | 显示全部楼层
支持微点

评分

参与人数 1魅力 -1 收起 理由
麻辣豆腐 -1 短时间内恶意屠版

查看全部评分

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-2-5 07:54 , Processed in 0.135142 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表