计算机病毒原理(最新)剖析

上传人:我** 文档编号:115947590 上传时间:2019-11-15 格式:PPT 页数:69 大小:884.50KB
返回 下载 相关 举报
计算机病毒原理(最新)剖析_第1页
第1页 / 共69页
计算机病毒原理(最新)剖析_第2页
第2页 / 共69页
计算机病毒原理(最新)剖析_第3页
第3页 / 共69页
计算机病毒原理(最新)剖析_第4页
第4页 / 共69页
计算机病毒原理(最新)剖析_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《计算机病毒原理(最新)剖析》由会员分享,可在线阅读,更多相关《计算机病毒原理(最新)剖析(69页珍藏版)》请在金锄头文库上搜索。

1、计算机病毒分析 将要介绍的几种病毒类型 vDOS病毒 v引导区病毒 v文件型病毒 v混合型病毒 vWindows病毒 vVBS脚本病毒 v宏病毒 v网页病毒 vWin32 PE病毒 引导区病毒 v什么是主引导记录? v硬盘的主引导记录在硬盘的0磁头0柱面1扇区。主 引导记录由三部分组成: v主引导程序; v四个分区表; v主引导记录有效标志字。 DOS引导区病毒 v引导区病毒 v所谓引导区病毒是指一类专门感染软盘引导扇区和硬盘主引 导扇区的计算机病毒程序。 v如果被感染的磁盘被作为系统启动盘使用,则在启动系统时 ,病毒程序即被自动装入内存,从而使现行系统感染上病毒 。 v在系统带毒的情况下,如

2、果进行了磁盘IO操作,则病毒程 序就会主动地进行传染,从而使其它的磁盘感染上病毒。 DOS的正常启动过程 v加电开机后进入系统的检测程序并执行该程序对系统的基本设 备进行检测; v检测正常后从系统盘0面0道1扇区即逻辑0扇区读入Boot引导程 序到内存的0000: 7C00处; v转入Boot执行之; vBoot判断是否为系统盘, 如果不是系统盘则提示: non-system disk or disk error Replace and strike any key when ready 否则, 读入IBM BIO.COM和IBM DOS.COM两个隐含文件; DOS的正常启动过程 v执行IB

3、M BIO.COM和IBM DOS.COM两个隐含文件, 将 COMMAND.COM装入内存; v系统正常运行, DOS启动成功。 v引导区病毒实际上就是先保存软盘的引导记录或者硬 盘的主引导记录,然后用病毒程序替换原来的引导记 录,这样,当系统引导时,便先执行病毒程序,然后 将控制权转交给正常的引导程序。 带毒盘引导的启动过程 v将Boot区中病毒代码首先读入内存的0000: 7C00处; v病毒将自身全部代码读入内存的某一安全地区、常驻内存, 监 视系统的运行; v修改INT 13H中断服务处理程序的入口地址, 使之指向病毒控制 模块并执行之。因为任何一种病毒要感染软盘或者硬盘,都离不 开

4、对磁盘的读写操作, 修改INT13H中断服务程序的入口地址是 一项少不了的操作; v病毒程序全部被读入内存后才读入正常的Boot内容到内存的 0000: 7C00处, 进行正常的启动过程; v病毒程序伺机等待随时准备感染新的系统盘或非系统盘。 感染过程 v是否在读写软盘? v是,则将目标盘的引导扇区读入内存, 对该盘进行判别是否传 染了病毒; v当满足传染条件时, 则将病毒的全部或者一部分写入Boot区, 把 正常的磁盘的引导区程序写入磁盘特写位置; v返回正常的INT 13H中断服务处理程序, 完成了对目标盘的传染 。 感染过程 引导型病毒的主要特点 v引导型病毒是在安装操作系统之前进入内存

5、,寄生对象又相对 固定,因此该类型病毒基本上不得不采用减少操作系统所掌管 的内存容量方法来驻留内存高端。而正常的系统引导过程一般 是不减少系统内存的。 v引导型病毒需要把病毒传染给软盘,一般是通过修改INT 13H 的中断向量,而新INT 13H中断向量段址必定指向内存高端的 病毒程序。 v引导型病毒感染硬盘时,必定驻留硬盘的主引导扇区或引导扇 区,并且只驻留一次,因此引导型病毒一般都是在软盘启动过 程中把病毒传染给硬盘的。 文件型病毒 v什么是文件型病毒? v所有通过操作系统的文件系统进行感染的病毒都称 作文件病毒 。 v我们将会介绍的两种病毒 vCOM文件型病毒 vEXE文件型病毒 COM

6、文件型病毒 vCOM文件被载入内存后的格式 COM文件型病毒 v病毒要感染COM文件一般采用两种方法: v加在文件尾部 COM文件型病毒 v加在文件头部 EXE文件型病毒 vMZ文件头格式 v偏移 大 小 描述 v00 2 bytes .EXE 文件类型标记:4d5ah v02 2 bytes 文件的最后一个扇区的字节数 v04 2 bytes 文件的总扇区数 文件大小=(总扇区数-1)*512+最后一页字节数 v06 2 bytes 重定位项的个数 v08 2 bytes exe文件头的大小 (16 bytes*this value) v0a 2 bytes 最小分配数(16 bytes*t

7、his value) v0c 2 bytes 最大分配数(16 bytes*this value) v0e 2 bytes 堆栈初始段址(SS) v10 2 bytes 堆栈初始指针(SP) v12 2 bytes 补码校验和 v14 2 bytes 初始代码段指针(IP) v16 2 bytes 初始代码段段址(CS) v18 2 bytes 定位表的偏移地址 v1a 2 bytes 覆盖号The overlay number make by link EXE文件型病毒的感染 v头寄生 EXE文件型病毒的感染 v尾寄生 EXE文件型病毒的感染 v插入寄生 EXE文件型病毒的感染 v伴随型 E

8、XE文件型病毒的感染 v病毒感染的方式还有很多,譬如DIRII属于一种链接型的病毒, 还有无入口点的病毒,没有任何美感的覆盖型病毒等。 v病毒如何感染,一直是病毒研究的话题,这并不存在非常固定 的模式。病毒作者完全可以任意发挥自己的想象。 混合型病毒 v什么是混合型病毒? v所谓混合型病毒,就是指既可以感染引导区又可以 感染文件的病毒。 v但是这种病毒绝对不是引导区病毒和文件型病毒的 简单相加。 v文件型病毒大多采用INT 21H,但是引导型病毒是 在引导阶段进行感染驻留,这时DOS系统还没有启 动,因此混合型病毒此时无法采用21号中断。如何 解决这个问题? VBS脚本病毒如何感染 vVBS脚

9、本病毒是直接通过自我复制来感染文件的病毒 中的绝大部分代码都可以直接附加在其他同类程序的 中间. v新欢乐时光病毒可以将自己的代码附加在.htm文件的尾部, 并在顶部加入一条调用病毒代码的语句. v爱虫病毒则是直接生成一个文件的副本,将病毒代码拷入其 中,并以原文件名作为病毒文件名的前缀,vbs作为后缀。 VBS脚本病毒如何感染 v文件感染的部分关键代码 set fso=createobject(“scripting.filesystemobject”) 创建一个文件系统对 象 set self=fso.opentextfile(wscript.scriptfullname,1) 读打开当前文

10、件(即病毒本身) vbscopy=self.readall 读取病毒全部代码到字符串变量vbscopy set ap=fso.opentextfile(目标文件.path,2,true) 写打开目标文件,准备写入病毒代码 ap.write vbscopy 将病毒代码覆盖目标文件 ap.close set cop=fso.getfile(目标文件.path) 得到目标文件路径 cop.copy(目标文件.path a.setCLSID(F935DC22-1CF0-11D0-ADB9-00C04FD58A0B); a.createInstance(); wsh=a.GetObject(); wsh

11、.Run(cmd.exe);/改为“wsh.Run(cmd.exe,false,1);“则程序在后台隐藏 运行 setTimeout(runcmd(),10); 网页病毒主要症状 v在用户IE浏览器的标题栏打广告 v修改IE的默认网址,并且不可以修改 v锁定用户的注册表编辑程序 v禁止使用“运行”选项 v有时候也可能对硬盘进行格式化,在用户机器 上创建一些文件 Win32 PE病毒 v什么是PE病毒? vPE病毒是指所有感染Windows下PE文件格式文件的 病毒。 vPE病毒大多数采用Win32汇编编写。 vPE病毒对于一个热衷于病毒技术的人来说,是必须 掌握的。 v只有在PE病毒中,我们才

12、能真正感受到高超的病毒 技术。 编写Win32病毒的几个关键 vApi函数的获取 v不能直接引用动态链接库 v需要自己寻找api函数的地址,然后直接调用该地址 v一点背景:在PE Loader装入我们的程序启动后堆栈顶的地 址是是程序的返回地址,肯定在Kernel中! 因此我们可以得 到这个地址,然后向低地址缩减验证一直到找到模块的起 始地址,验证条件为PE头不能大于4096bytes,PE header的 ImageBase值应该和当前指针相等. v病毒没有.data段,变量和数据全部放在.code段 编写Win32病毒的几个关键 v偏移地址的重定位 Call delta delta: po

13、p ebp sub ebp,offset delta 那么变量var1的真正偏移地址为:var1+ebp v对PE文件格式的了解 编写Win32病毒的几个关键 v病毒如何感染其他文件 v在文件中添加一个新节 v该新节中添加病毒代码和病毒执行后的返回Host程序的代吗 v修改文件头中代码开始执行位置(AddressOfEntryPoint) 指向新添加的节,以便程序运行后先执行病毒代码。 PE病毒感染其他文件的方法还有很多,譬如PE病毒 还可以将自己分散插入到每个节的空隙中等等,这 里不在一一叙述。 PE文件格式一览 DOS MZ header DOS stub PE header Sectio

14、n table Section 1 Section 2 Section . Section n PE header Pe header 由三部分组成 v 字串 “PE00”(Signature) v 映像文件头(FileHeader) v 可选映像头(OptionalHeader) 字串 “PE00” vSignature 一dword类型,值为50h, 45h, 00h, 00h (PE00)。 本域为PE标记,我们可以此识别 给定文件是否为有效PE文件。 v这个字串在文件中的位置(e_lfanew),可以 在DOS程序头中找到它的指针,它占用四个字 节,位于文件开始偏移3CH字节中。 映像

15、文件头 v该结构域包含了关于PE文件物理分布的信息, 比如节数目、文件执行机器等。 v它实际上是结构IMAGE_FILE_HEADER的简 称。 映像文件头结构 IMAGE_FILE_HEADER STRUCT Machine WORD ? NumberOfSections WORD ? TimeDateStamp dd ? PointerToSymbolTable dd ? NumberOfSymbols dd ? SizeOfOptionalHeader WORD ? Characteristics WORD ? IMAGE_FILE_HEADER ENDS 映像文件头的基本信息 顺序名字

16、 大小( 字节) 描述 1Machine *2机器类型,x86为14ch 2NumberOfSection *2文件中节的个数 3TimeDataStamp4生成该文件的时间 4PointerToSymbleTable4COFF符号表的偏移 5NumberOfSymbols4符号数目 6SizeOfOptionalHeader2可选头的大小 7Characteristics *2关于文件信息的标记,比如 文件是exe还是dll 可选映像头 voptional header 结构是 IMAGE_NT_HEADERS 中的最后成员 。包含了PE文件的逻辑分布信息。该结构共有31个域,一些是 很关键,另一些不太常用。这里只介绍那些真正有用的域。 v这儿有个关于PE文件格式的常用术语: RVA RVA 代表相对虚拟地址。它是相对虚拟空间里的一个地址 。 v举例说明,如果PE文件装入虚拟地址(VA)空间的4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号