从技术角度浅析流氓软件

互联网 | 编辑: 黄蔚 2007-09-12 00:30:00转载 一键看全文

流氓软件线程插入技术

早期,流氓软件在没有被正式定性为恶意程序时,流氓软件使用的技术比较简单,往往是修改主页,使用户只要一登陆浏览器,就自动跳转到流氓软件提供的广告网址,或者安装到系统中后,私下收集用户的信息发送出去。而后来,随着利益的驱动和流氓软件正式作为恶意程序被反病毒厂商绞杀,流氓软件采用的技术也越来越先进,如今已经形成了与杀毒软件对抗的态势,魔道之争真正进入白热化。

了解了它们使用的技术,会对它们有一个更加清晰的认识,以下便是流氓软件使用的经典技术。

秘密潜入-流氓软件的隐藏技术

隐藏是流氓软件的天性,也是病毒的一个特征,任何流氓软件都希望在用户的电脑中隐藏起来不被发现,由于隐藏的目的,衍生出隐藏的技术。

首先是隐藏窗口。我们知道,在Windows操作系统下,所有的程序执行时都是以窗口的形式出现的,每个窗口都有不同的属性,流氓软件的目的就是不想为人所知,因此它们在运行的过程会将自己的程序窗口的属性设为“不可见”,这样用户就看不到程序的窗口了。

但是,我们知道,每个程序运行时虽然用户看到的是窗口,但是对于系统来说,其实是执行了一个进程,对于稍微专业的用户来说,虽然窗口不能看见,但是程序产生的进程却是很容易通过系统的任务管理器看到,从而使流氓软件暴露。因此便出现了隐藏进程技术。

隐藏进程其实是调用了微软的一个未公开函数,将流氓软件本身注册为服务,这样系统的任务管理器就无法显示这类程序的进程了,从而达到了隐藏自己的目的。

于一些细心的用户来说,电脑出现了新的文件会引起他们的怀疑,因此流氓软件作者又采用了隐藏文件技术。它们在安装时会将自身拷贝到系统目录,然后将文件的属性设置为隐藏,这样,用户如果采用的是默认系统设置,则就无法看到他们。

但是,这些都是初级的隐藏技术,对电脑熟悉的用户,只要利用系统提供的工具就可以找到这些流氓软件的蛛丝马迹,或者安装一个防火墙软件,只要有程序访问网络,立刻就会报警,从而能够暴露流氓软件的行踪。

我中有你-流氓软件的线程插入技术

为了更好地隐藏自己,流氓软件开始大量采用线程插入技术。

上面讲到,一个程序进入系统中,会首先产生文件,该文件运行时,会产生窗口,在内存中产生进程。进程说白了就是一个被激活了的程序文件。而进程又会产生许多线程。

线程是Windows系统为程序提供的并行处理机制,它允许一个程序在同一时间建立不同的线程,完成不同的操作。另外,由于Windows操作系统为了提高软件的复用性,减少重复开发的开销,采用了动态链接库机制,即将一些公用的程序放在DLL文件中,程序不用包括这些代码,只要在运行时对这些DLL文件直接进行调用就可以完成各种功能,因此每一个可执行程序除了自身的程序体外,还包括许多外部的模块。如果我们用一些内存查看工具的话,能看到每一个应用程序都包含了大量的DLL动态链接库文件。

而流氓软件正是利用了这一点。他们的可执行程序并不是EXE形式的,而是DLL形式,这类文件一般是存在于系统中,

而流氓则是将DLL文件载入内存,然后通过“线程插入”的方式,插入到某个进程的地址空间。一般地,如果流氓软件想控制浏览器,则它们往往会将自己注入到浏览器(explorer.exe)的进程空间,只要浏览器运行,就会自动调用该流氓软件。

由于浏览器程序本身会调用大量的DLL文件,因此即使用户用第三方进程查看工具,也分辨不清哪个DLL是流氓软件。面且,采用线程注入技术的流氓软件由于已经并入了正常程序的内存空间,即使是防火墙程序也不会拦截,从而可以在用户电脑自由出入。

提示:试试键盘 “← →” 可以实现快速翻页 

总共 2 页12
一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑