病毒编程技术之恶意代码的亲密接触
日期:2008年6月15日 作者: 查看:[大字体 中字体 小字体]-
计算机病毒。
很难考证第一个真正的病毒出现在何时何地,但在20 世纪80 年代,随着个人计算机的普及,病毒已经开始流行了,早期的计算机病毒是和当时的文件交换方式和操作系统特点联系在一起的,那个时候发行软件或交换文件主要通过软盘进行,系统是基于文本界面的Unix 或DOS,网络尚未普及,因此这一时期的病毒大都是引导区病毒和文件型病毒,前者通过替换系统引导区代码在系统启动时获取执行权,后者通过修改可执行文件嵌入代码以在可执行文件执行时获取控制权,更多病毒的则是二者的结合。
IBM-PC 的流行和MS DOS系统的普及使得DOS病毒在这一阶段逐渐占据了统治地位。80年代后期因特网开始进入人们的视野,这时也出现了第一个因特网蠕虫——莫里斯蠕虫,借助于系统漏洞通过网络进行快速传播。90 年代随着电脑及网络的进一步普及,病毒技术也有了很大的进步,这在很大程度上也是由于病毒受社会的关注程度以及反病毒软件的进步,进一步刺激了病毒制作者群体的创造欲望,多态和变形技术开始出现,以对抗杀毒软件的特征码扫描。DOS操作系统病毒的绝对数量出现了爆炸性增长,但90年代后期随着Windows的出现,DOS病毒和引导区病毒逐渐走向消亡,Windows 病毒随之则开始大量涌现,随着微软Office 软件的普及宏病毒出现了,各种脚本病毒也日益增多。因特网的普及在给人们带来便利的同时也加快了病毒传播的速度和范围,靠Emai传播的蠕虫开始增多,时至今日仍然是蠕虫的重要传播途径。从2000 年至今,在进入21世纪的头几年里,Windows下PE病毒技术已经日益纯熟、数量日益增多,但病毒排行榜的首位已经让位给利用各种系统漏洞进行传播的蠕虫了,安全研究的深入、各种安全漏洞的大量披露给蠕虫作者提供了很好的素材,特洛依木马等恶意软件数量呈现几何级数的增长,病毒作者的关注点重新从Windows 桌面系统转向Unix 系统、手机等嵌入移动设备上。安全研究也愈益受到社会的关注,病毒和反病毒的战争仍在继续,在可预见的将来,仍将继续。
不过,Windows PE文件病毒仍然占有非常大的比重。Windows 平台和PE 文件格式Windows 平台是当今最为流行的桌面系统,在服务器
市场上,也占有相当的份额。其可执行文件(普通的用户程序、共享库以及NT系统的驱动文件)采用的是PE(Portable Executebale)文件格式。病毒要完成各种操作,在Windows 系统上一般都是通过调用系统提供的API进行的,以保证在各种Windows版本上都能运行,因此读者应对基本的API比较熟悉。病毒要实现对宿主程序的感染,就不可避免地要修改PE文件,因此要求读者对PE文件格式有一定的了解,PE文件格式是一种复杂的文件格式,本文并不准备详细讲述PE文件格式,仅作在必要处简单的介绍,如必要可进一步参阅相关资料。PE文件结构和头部部分主要域的格式如下图1所示。

图1:PE 文件结构及部分主要域的定义
由图1 可见,PE文件是由文件头、节表、包含各种代码和数据的节构成。文件头中定义了PE文件的引入函数表、引出函数表、节数目、文件版本、文件大小、所属子系统等相关的重要信息。节表则定义了实际数据节的大小、对齐、内存到文件如何进行映射等信息。后面的各个节则包含了实际的可执行代码或数据。(见图1) PE 病毒技术剖析
典型的PE病毒修改PE文件,将病毒体代码写入PE 文件文件中,更新头部相关的数据结构,使得修改后的PE文件仍然是合法PE文件,然后将PE入口指针改为指向病毒代码入口,这样在系统加载PE文件后,病毒代码就首先获取了控制权,在执行完感染或破坏代码后,再将控制权转移给正常的程序代码,这样病毒代码就神不知鬼不觉地悄悄运行了。
这只是最常见的执行流程,事实上,随着反病毒技术的进展,更多的病毒并不是在程序的入口获取控制权,而是在程序运行中或退出时获取控制权,以逃避杀毒软件的初步扫描,这种技术又被称为EPO 技术,将在本文后半部分进行介绍。病毒代码一般分成几个主要功能模块:解码模块、重定位模块、文件搜索模块、感染模块、破坏模块、加密变形模块等,不同的病毒包含模块不一定相同,比如解码、加密变形等就是可选的;但文件搜索和感染模块是几乎每个PE病毒都具备的,因为自我复制我传播是病毒的最基本的特征。有些病毒还可能实现了其他的模块,比如Email 发送、网络扫描、内存感染等。一段典型的PE病毒代码执行流程大致如图2所示: - 上一页 [1] [2] [3] [4] [5] [6] 下一页
-
- 病毒编程技术之恶意代码的亲密接触 相关文章:
- ·梦幻西游盗号木马下载病毒并盗号
- ·木马病毒的启动方式介绍
- ·修改注册表权限加强对木马、病毒的防范
- ·recycle.exe病毒手动解决的方法
- ·木马病毒下载恶意程序
- ·警惕Trojan-PSW.Win32.WOW.ck木马病毒
- ·魔波病毒补丁下载
- ·Love Letter病毒源代码
- ·安全学习之制作编写超级批处理病毒方法
- ·反病毒知识:如何让你的移动硬盘在DOS下杀毒
- 病毒编程技术之恶意代码的亲密接触 相关软件
- ·USBKiller(U盘病毒专杀工具) 2.3 Build0610
- ·数据病毒木马暴力杀灭天王 PowerRmv V1.0
- ·AntiPopVirus(流行病毒木马专杀工具) V1.1
- ·U盘病毒专杀工具-USBCleaner 6.0 Build 20080708
- ·超级巡警之U盘病毒免疫器V1.4 正式版
- ·Autorun病毒防御者 v2.3.1.125
- ·金山毒霸“魔鬼波”病毒专杀工具 V3.2
- ·冲击波病毒专杀工具包 V 1.0
- ·McAfee VirusScan SuperDAT(Engine + DAT) 5081 病毒码
- ·大蜘蛛Dr.Web杀毒软件病毒库升级包 2008.05.13
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:编写QQ外挂插件的原理和方法
精品推荐
热点TOP10
- ·游戏外挂设计技术探讨
- ·编写QQ外挂插件的原理和方法
- ·GIF文件格式
- ·使用SAFEARRAY传送对象
- ·1.3.4 高级数据和信息系统与高级应用
- ·网络游戏外挂核心封包揭密
- ·Solaris 10 安装及SVC管理及X及Vmware及其它可能遇到的一些问题
- ·代码静态分析工具PC-LINT安装配置
- ·DirectDraw之C#入门攻略
- ·网游外挂编写完全攻略
- ·Spring让LOB数据操作变得简单易行
- ·开发WDM型的USB设备驱动程序
- ·利用表空间的备份快速恢复IBM DB2数据库
- ·Windows完成端口编程
- ·使用BHO定制你的IE浏览器
- ·Unix和Windows跨系统通讯编程
- ·CMMI 综述
- ·利用HOOK拦截封包原理
- ·简单对象访问协议(SOAP)初级指南
- ·使用串行化传送对象
