靠谱的软件下载站
当前位置:  IEfans/IE专区/IE相关/浅谈第三方安全软件锁定IE主页功能的原理

浅谈第三方安全软件锁定IE主页功能的原理

IE相关 互联网 2012-04-22 阅读(5883)
说到IE主页被篡改的问题,相信大部分用户都有遭遇过。小编之前也写过不少被各类网站绑架IE主页的解决方法,从根本上来说都是通过注册表修改被篡改的IE主页。因为IE主页的配置原理都是相同的,我们设置的IE主页都是写入在注册表当中。有装过第三方电脑安全软件的用户应该比较熟悉了,每当我们修改IE主页的时候,安全软件都会弹出类似的提示“检查到有程序正在修改注册表,是否允许操作”。 这些软件除了可以监控电脑变化以外,大部分软件还可以会提供一个颇具特色的功能:锁定IE主页。那么这个功能是否有效呢?是否设置以后就能够抵御病毒的篡改呢?这个我们先了解一下这些软件锁定IE主页的原理。 首先谈一下注册表,注册表在Windows中有时候许多人觉得很神秘,网上不知什么时候流传着一种修改注册表很容易导致系统崩溃的说法,有点夸大其词,导致很多用户对注册表存在一定的畏惧心理。其实注册表并没有那么神秘,它最大的功能就是一个存储着系统及软件配置信息的一个数据库。修改里面的信息可能会影响系统以及一些软件的配置信息工作方式,比如开机启动、各类软件的一些配置、包括今天要说的IE配置比如IE主页信息都是存储在注册表中。而我们通常说的注册表是指Windows中自带的注册表编辑器regedit.exe。其实正如其名一样,这只是一个编辑器,真正的注册表中的信息是存储在系统的二进制文件中的,成为HIVE文件,译为“储巢”。想了解这方面相关信息的可以参考《深入解析Windows操作系统》。 首先要了解的是,在程序开发中,无论是恶意软件还是安全软件在改动IE主页时都是通过修改注册表来达到目的,通常使用RegSetValue等API实现,API译为应用程序接口,稍微学过的编程的同学将其理解为和函数差不多的东西就行,这样的API的参数通常指定了注册表的主键、子键、修改的项以及值等信息。可以想象,安全软件实现修复IE主页的功能就是通过调用这个API来实现的,病毒亦如此。而安全软件和病毒往往都是相克的,都会采用一些手段来阻止对方的操作,说道这里就不得不提到HOOK这个概念。HOOK是木马、病毒和安全软件都在采用的一种技术,没有哪个安全软件中不在用HOOK,最直接的概念就是主动防御以及HIPS就是采用HOOK实现的。说了这些HOOK是什么呢,HOOK译为钩子,最常见的就是消息钩子,而我们在这里要提的是API HOOK。正常情况下我们调用系统API都是正常的,而在一定情况下我们调用API可能是被HOOK后的。通过HOOK指定的API我们可以拦截指定的操作,比如创建进程、创建文件、读写文件等。API HOOK有多种不同的实现途径,目前大多数安全软件都采用内核中的SSDT HOOK。 简单谈谈SSDT,SSDT(SystemServices Descriptor Table),系统服务描述符表。在应用层的API进入内核后正是根据这个表找到内核中的相应函数,进而实现层层调用。也就是说SSDT记录这应用层API和内核中的函数的对应关系。通过SSDT HOOK我们可以改变这一对应关系,是应用层API进入内核后不再按原来的对应关系调用内核相应的函数,而是转去调用我们自己实现的内核函数。这样我们就达到了截获API的目的,进而可以在我们的函数中对API进行的操作进行判断,最简单的就是我们可以决定是阻止这次调用还是允许这次调用。这就是安全软件中锁定IE主页功能的原理。当然SSDT HOOK需要我们写驱动来完成。说了这么多是不是有点天书的感觉,下面通过一个简单的小实验来体会这个过程。我们以QQ电脑管家为例,以及需要借助一款非常优秀的工具XueTr,可在附件中下载。 首先运行QQ电脑管家,在系统修复中锁定IE主页,比如我的IE主页是Google

在电脑管理软件中锁定IE主页

然后尝试修改IE主页,比如通过Internet选项或者更直接通过注册表修改。从注册表修改可以看到是修改不成功的。

注册表无法修改

注册表弹出修改失败的提示

现在我们运行XueTr(如果提示是否允许加载驱动,点允许,安全软件的底层操作都是借助驱动完成的)。运行后选项卡切换到内核钩子中的SSDT,可以看到列出了很多被HOOK的函数,而且是红色的,不过通过后面的当前函数所在的模块我们可以看到,这些是QQ管家的模块,所以是不具备威胁的。如果有未知的你不熟悉的模块做了HOOK,那么就得小心了,很可能是病毒、木马。

XueTr 工具

工具罗列出了这么多钩子,那都是什么作用呢。其实看不懂这些函数不要紧,看着名字也能猜出一二,比如有创建文件(CreateFile)、DeleteFile(删除文件)、TerminateProcess(结束进程)等等的钩子,而我们要关注的就是改注册表键值的函数的钩子(NtStValueKey)。现在我们右击选中这个钩子,选择恢复。

在XueTr中恢复钩子

不是恢复所有! 恢复后再次尝试修改主页,通过internet选项或者注册表,你会发现可以修改成功。但是当你再次打开IE,主页却还是原来的!!这时我们看看刚刚修改过的注册表会发现,的确修改成功了,这是怎么回事呢?没关系,我们关掉QQ管家后再打开IE,看看这次应该显示的是我们修改后的主页吧。 所以说到这里有个问题,为什么运行QQ管家时尽管已经更改了主页,但是还是显示不正确呢;而关掉后却显示正确?这是留给大家的一个问题,虽然咱们并不知道腾讯的具体做法,但是我们通过今天说的可以窥出大概。最后注意我们现在修复了SSDT的部分表,但是只是本次起作用,因为这是内存中的数据,下次重新启动系统安全管家的驱动还会改写SSDT来实现某些功能,在这里这些HOOK是有益的HOOK,请不要进行修复。 via:Cuqe

标签:IE相关IE主页锁定IE主页

Copyright © 1998-2017 www.iefans.net All Rights Reserved 湘ICP备13012168号-17