- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                计算机病毒Computer Virus 傅建明 Fujms@; fujms@  第五章 Windows病毒分析 5.1  Win32 PE病毒	 5.2  宏病毒	 5.3  脚本病毒	 5.4  网页病毒	 5.5  网络蠕虫	 5.1  Win32 PE病毒	 SMC, Self Modifying Code Win32 PE病毒原理 Win32 PE病毒样例 SMC Win32应用程序是运行在保护模式下的,每个Win32应用程序都有相互独立的4GB地址空间,没有段的区分,但不能在程序运行的过程中随便更改代码段。一般有data段和text段,编译器可以为不同的段指定不同属性。 如何实现SMC? 其实关键就在于链接时的参数,只要指定了代码段的属性是可写的(默认的参数是不可写的)。在编译、链接带有SMC的Win32ASM时应该这样做:? ml /c /coff %1.asm link /subsystem:windows /section:.text,RWE %1.obj SMC样例 ShowMessage    proto ReplaceMent    proto ? .data szMsg1        db    这是未执行SMC之前的代码!, 0 szMsg2        db    SMC已经执行!, 0 szCaption     db    SMC demo by LC, 2002, 0 Replace_Len   dd    0 SMC样例 .code main: ;第一次执行子程序ShowMessage,此时还没执行SMC操作     invoke ShowMessage?     lea eax, ReplaceMentEnd      ;标号ReplaceMent的结束     lea edx, ReplaceMentStart    ;标号ReplaceMent的开始     sub eax, edx                       ;标号ReplaceMent的长度     mov Replace_Len, eax         ;把长度储存起来 ?    ;关键代码!     lea esi, ReplaceMentStart    ;标号ReplaceMent的开始     lea edi, ShowMessageStart    ;原程序ShowMessage的标号的开始     mov ecx, Replace_Len         ;标号ReplaceMent的长度     rep movsb                     ;这里是最关键的语句!!!执行SMC操作! ;第二次执行子程序ShowMessage,其内容已经不是第一次运行时的内容     invoke ShowMessage     invoke ExitProcess, 0  Win32 PE病毒原理 一、病毒的重定位   病毒不可避免也要用到变量(常量),当病毒感染HOST程序后,由于其依附到HOST程序中的位置各有不同,病毒随着HOST载入内存后,病毒中的各个变量(常量)在内存中的位置自然也会随着发生变化。   Win32 PE病毒原理 Win32 PE病毒原理 二、获取API函数地址  Win32 PE病毒和普通Win32 PE程序一样需要调用API函数,但是普通的Win32 PE程序里面有一个引入函数表,该函数表对应了代码段中所用到的api函数在动态连接库中的真实地址。这样,调用api函数时就可以通过该引入函数表找到相应api函数的真正执行地址。   但是,对于Win32 PE病毒来说,他只有一个代码段,他并不存在引入函数段。要获得API函数地址,我们首先需要获得Kernel32的基地址。   Win32 PE病毒原理 二、获取API函数地址 当系统打开一个可执行文件的时候,它会调用Kernel32.dll中的CreateProcess函数;CreateProcess函数在完成装载应用程序后,会先将一个返回地址压入到堆栈顶端,然后转向执行刚才装载的应用程序。当该应用程序结束后,会将堆栈顶端数据弹出放到IP中,继续执行。刚才堆栈顶端保存的数据是什么呢?这个数据其实就是在Kernal32.dll中的返回地址。  Win32 PE病毒原理 三、关于文件搜索  搜索文件是病毒寻找目标文件的非常重要的功能。在Win32汇编中,通常采用两个API函数进行文件搜索。 a)FindFirstFile  b) FindNextFile   C) FindClose  Win32 PE病毒原理 Win32 PE病毒原理 Win32 PE病毒原理 五、病毒如何感染其他文件  PE病毒常见的感染其他文件的方法是在
                您可能关注的文档
- 产品申报及资料准备指南 2009军区.ppt
 - 第三章 固有结缔组织 powerpoint 演示文稿(2).ppt
 - 第七章离子聚合原理及生产工艺.ppt
 - [艺术、音乐类模板]sheet_music.ppt
 - 8 目标市场营销战略(1).ppt
 - 3、甲型h1n1流感疫苗免疫接种信息管理 儿童免疫接种信息系统建设.ppt
 - 第十四章 现代学校教育质量评价.ppt
 - 第六章、电子商务物流.ppt
 - aim伦敦创业板上市规则( 26).ppt
 - 第八章具体行政行为概述 powerpoint 演示文稿.ppt
 
- 宝洁在中国的营销策略分析 powerpoint presentation.ppt
 - [艺术、音乐类模板]michelangelo.ppt
 - 废旧轮胎资源市场化研究 powerpoint presentation.ppt
 - 北京时尚力量广告有限公司 powerpoint presentation.ppt
 - 奥曲肽注射液市场销售计划书.ppt
 - 第六次全国人口普查综合试点质量验收(1).ppt
 - 2011招标说明会下载 - powerpoint presentation.ppt
 - 第7章DNS服务器配置与管理.ppt
 - 第九章创建品牌资产 kotler keller 09.ppt
 - 第七讲金融市场机制 第十章货币供求及其均衡.ppt
 
原创力文档
                        

文档评论(0)