《恶意代码基础与防范(微课版)》全套教学课件_第1页
《恶意代码基础与防范(微课版)》全套教学课件_第2页
《恶意代码基础与防范(微课版)》全套教学课件_第3页
《恶意代码基础与防范(微课版)》全套教学课件_第4页
《恶意代码基础与防范(微课版)》全套教学课件_第5页
已阅读5页,还剩634页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章

恶意代码概述第2章

漏洞第3章

传统计算机病毒-补充知识第4章-linux恶意代码第5章

木马第6章

移动智能终端恶意代码第7章

蠕虫第8章

勒索型恶意代码第9章-其他恶意代码第10章

恶意代码防范技术第11章

杀毒软件及解决方案第12章

恶意代码防治策略恶意代码基础与防范全套可编辑PPT课件

第1章恶意代码概述全套可编辑PPT课件

本章学习目标明确恶意代码的基本概念了解恶意代码的发展历史熟悉恶意代码的分类熟悉恶意代码的命名规则了解恶意代码的未来发展趋势一、为什么提出恶意代码的概念?计算机病毒的官方定义不能涵盖新型恶意代码《中华人民共和国计算机信息系统安全保护条例》《计算机病毒防治管理办法》传统计算机病毒定义:是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。传统计算机病毒定义的不足之处传统定义强调:把破坏代码插入正常程序中,而忽略把代码直接复制到硬盘上的独立恶意程序(例如,木马),忽略恶意程序主动侵入设备(例如,蠕虫)等。传统定义没有排除:具有恶意行为,但不是有意为之的行为,例如,不小心形成的恶意行为。这些不足带来的法律问题使用这个定义可能逃脱应有的惩罚二、恶意代码定义恶意代码:在未被授权的情况下,以破坏软硬件设备、窃取用户信息、扰乱用户心理、干扰用户正常使用为目的而编制的软件或代码片段。这个定义涵盖的范围非常广泛,它包含了所有敌意、插入、干扰、讨厌的程序和源代码。一个软件被看作是恶意代码主要是依据创作者的意图,而不是恶意代码本身的特征。恶意代码的特征1.目的性目的性是恶意代码的基本特征,是判别一个程序或代码片段是否为恶意代码的最重要的特征,也是法律上判断恶意代码的标准。2.传播性传播性是恶意代码体现其生命力的重要手段。3.破坏性破坏性是恶意代码的表现手段。恶意代码产生的动机(原因):计算机系统的脆弱性(IBM病毒防护计划)作为一种文化(hacker)病毒编制技术学习恶作剧\报复心理用于版权保护(xx公司)用于特殊目的(军事、某些计算机防病毒公司)赚钱、赚钱、赚钱……萌芽Unix病毒DOS时代的病毒网络时代的恶意代码恶意代码新时代三、恶意代码简史在第一部商用电脑出现之前,冯·诺伊曼在他的论文《复杂自动装置的理论及组识的进行》里,就已经勾勒出了病毒程序的蓝图。70年代美国作家雷恩出版的《P1的青春-TheAdolescenceofP1》一书中作者构思出了计算机病毒的概念。美国电话电报公司(AT&T)的贝尔实验室中,三个年轻程序员道格拉斯.麦耀莱、维特.维索斯基和罗伯.莫里斯在工作之余想出一种电子游戏叫做“磁芯大战(corewar)”。1、萌芽阶段博士论文的主题是计算机病毒1983年11月3日,FredCohen博士研制出第一个计算机病毒(Unix)。2、第一个真病毒3、Dos时代的病毒1986年初,巴基斯坦的拉合尔,巴锡特和阿姆杰德两兄弟编写了

Pakistan病毒,即Brain,其目的是为了防范盗版软件。Dos–PC–引导区1987年世界各地的计算机用户几乎同时发现了形形色色的计算机病毒,如大麻、IBM圣诞树、黑色星期五等等。视窗病毒1988年3月2日,一种苹果机的病毒发作,这天受感染的苹果机停止工作,只显示“向所有苹果电脑的使用者宣布和平的信息”。以庆祝苹果机生日。肇事者-RobertT.Morris,美国康奈尔大学学生,其父是美国国家安全局安全专家。机理-利用sendmail,finger等服务的漏洞,消耗CPU资源,并导致拒绝服务。影响-Internet上大约6000台计算机感染,占当时Internet联网主机总数的10%,造成9600万美元的损失。CERT/CC的诞生-DARPA成立CERT(ComputerEmergencyResponseTeam),以应付类似事件。莫里斯蠕虫(MorrisWorm)1988年1989年,全世界计算机病毒攻击十分猖獗,其中“米开朗基罗”病毒给许多计算机用户(包括中国)造成了极大损失。全球流行DOS病毒4、用于军事的恶意代码在沙漠风暴行动的前几周,一块被植入病毒(AF/91(1991))的计算机芯片被安装进了伊拉克空军防卫系统中的一台点阵打印机中。该打印机在法国组装,取道约旦、阿曼运到了伊拉克。病毒瘫痪了伊拉克空军防卫系统中的一些Windows系统主机以及大型计算机,据说非常成功。5、傻瓜式恶意代码——宏病毒1996年,出现针对微软公司Office的“宏病毒”。1997年公认为计算机反病毒界的“宏病毒年”。特点:书写简单,甚至有很多自动制作工具6、烧毁硬件的恶意代码

CIH(1998-1999)1998年,首例破坏计算机硬件的CIH病毒出现,引起人们的恐慌。1999年4月26日,CIH病毒在我国大规模爆发,造成巨大损失。7、网络恶意代码时代:蠕虫1999年3月26日,出现一种通过因特网进行传播的美丽莎病毒。2001年7月中旬,一种名为“红色代码”的病毒在美国大面积蔓延,这个专门攻击服务器的病毒攻击了白宫网站,造成了全世界恐慌。2003年,“2003蠕虫王”病毒在亚洲、美洲、澳大利亚等地迅速传播,造成了全球性的网络灾害。记忆犹新的3年(2003-2005)2004年是蠕虫泛滥的一年,大流行病毒:网络天空(Worm.Netsky)高波(Worm.Agobot)爱情后门(Worm.Lovgate)震荡波(Worm.Sasser)SCO炸弹(Worm.Novarg)冲击波(Worm.Blaster)恶鹰(Worm.Bbeagle)小邮差(Worm.Mimail)求职信(Worm.Klez)大无极(Worm.SoBig)2005年是木马流行的一年,新木马包括:8月9日,“闪盘窃密者(Trojan.UdiskThief)”病毒。该木马病毒会判定电脑上移动设备的类型,自动把U盘里所有的资料都复制到电脑C盘的“test”文件夹下,这样可能造成某些公用电脑用户的资料丢失。11月25日,“证券大盗”(Trojan/PSW.Soufan)。该木马病毒可盗取包括南方证券、国泰君安在内多家证券交易系统的交易账户和密码,被盗号的股民账户存在被人恶意操纵的可能。7月29日,“外挂陷阱”(troj.Lineage.hp)。此病毒可以盗取多个网络游戏的用户信息,如果用户通过登陆某个网站,下载安装所需外挂后,便会发现外挂实际上是经过伪装的病毒,这个时候病毒便会自动安装到用户电脑中。9月28日,"我的照片"(Trojan.PSW.MyPhoto)病毒。该病毒试图窃取《热血江湖》、《传奇》、《天堂Ⅱ》、《工商银行》、《中国农业银行》等数十种网络游戏及网络银行的账号和密码。该病毒发作时,会显示一张照片使用户对其放松警惕。8、木马时代2006年木马仍然是病毒主流,变种层出不穷2006年上半年,江民反病毒中心共截获新病毒33358种,另据江民病毒预警中心监测的数据显示,1至6月全国共有7322453台计算机感染了病毒,其中感染木马病毒电脑2384868台,占病毒感染电脑总数的32.56%,感染广告软件电脑1253918台,占病毒感染电脑总数的17.12%,感染后门程序电脑

664589台,占病毒感染电脑总数的9.03%,蠕虫病毒216228台,占病毒感染电脑总数的2.95%,监测发现漏洞攻击代码感染181769台,占病毒感染电脑总数的2.48%,脚本病毒感染15152台,占病毒感染电脑总数的2.06%。最前沿病毒2007年:流氓软件——反流氓软件技术对抗的阶段。Cnnic3721–yahoo熊猫烧香2008年:木马ARPPhishing(网络钓鱼)2009年恶意代码产业化木马是主流其他:浏览器劫持、下载捆绑、钓鱼2010年新增恶意代码750万(瑞星);流行恶意代码:快捷方式真假难分、木马依旧猖獗,但更注重经济利益和特殊应用。2011年随着SNS等新型社交网络的迅速崛起,恶意代码制造者又有了新的病毒载体平台。例如,新浪微波的移动互联网平台恶意代码。例如,手机病毒。2012年中国计算机病毒统计根据金山毒霸安全中心统计2012年共捕获病毒样本总量超过4200万个,比上一年增长41.4%,月捕获病毒样本数在300万至450万个之间,日均超过11万个。鬼影病毒、AV终结者末日版、网购木马、456游戏木马、连环木马(后门)、QQ粘虫木马、新淘宝客病毒、浏览器劫持病毒、传奇私-Fu劫持者、QQ群蠕虫病毒等病毒类型对用户危害最大。来源:/analysis/kaspersky-security-bulletin/58335/mobile-malware-evolution-2013/9、手机恶意代码登场

2015年移动恶意代码行为(Kaspasky)2015年,卡巴斯基实验室检测到的内容如下:•2,961,727个恶意安装包•884,774个新的恶意移动项目——数量较前一年增长了三倍.•7,030个移动银行木马ThenumberofattacksblockedbyKasperskyLabsolutions,2015ThenumberofusersprotectedbyKasperskyLabsolutions,2015Thegeographyofmobilethreatsbynumberofattackedusers,2015Distributionofnewmobilemalwarebytypein2014and20151.ConfickerConficker是一种针对微软的Windows操作系统的计算机蠕虫病毒,最早的版本出现在2008年秋季。2.Sality通过僵尸网络控制3.LockyLocky是勒索软件家族新成员,出现于2016年年初,通过RSA-2048和AES-128算法对100多种文件类型进行加密。Locky通过漏洞工具包或包含JS、WSF、HTA或LNK文件的电子邮件传播。4.Cutwail一款僵尸网络,用于DDoS攻击并发送垃圾邮件。10、恶意代码新时代——勒索、APT、工控、物联网5.ZeusZeus是几年前出现的一款银行木马。6.Chanitor被称为Hancitor或H1N1,使用垃圾邮件来传播木马。7.Tinba–木马8.CryptowallCryptowall是CryptoLocker勒索软件的变种。9.Blackhole-一种恶意程序工具包,10.Nivdort-模块化木马。2018十大恶意软件APT武器:持续升级的APT28工具系列白俄罗斯工控系统:继Stuxnet之后最大威胁的Industroyer能够直接控制变电中的电路开关和继电器物联网:持续“扩张”的Mirai家族2017年与Mirai相关的知名恶意软件包括:Rowdy、IoTroops、Satori等。这些恶意软件以mirai的源代码为本体,经过不断的变异改进,已经从传统的Linux平台演变到了Windows平台,利用的端口也在不断变化,从传统的弱口令攻击转变到了弱口令和漏洞利用的综合攻击方式,同时感染设备范围由网络摄像机、家庭路由,正向有线电视机顶盒等领域“扩张”。银行/金融:在线销售的CutletMakerCutletMaker的软件于2017年5月开始在AlphaBay暗网市场上销售,因为美国有关机构在7月中旬关闭了AlphaBay,软件经营方现新建了一个独立网站专门销售该软件。犯罪勒索:占领半壁江山的WannaCry移动终端:安卓终端排名第一的Rootnik劫持与广告:造成史上最大规模感染的FireBallFireBall可以控制互联网浏览器,监视受害者的web使用,并可能窃取个人文件。FireBall与拥有3亿客户声称提供数字营销和游戏应用程序的中国公司Rafotech(卿烨科技/)相关。Windows&office:被滥用的NSA工具DoublePulsar恶意邮件:造成30亿美元损失的尼日利亚钓鱼无文件/脚本恶意软件:被用于挖矿的NSA漏洞利用工具Zealot利用NSA漏洞大量入侵Linux和Windows服务器同时植入恶意软件“Zealot”来挖掘Monero加密货币的攻击2019年的新趋势•勒索软件的规模正在增长。•基于物联网平台的僵尸网络-〉DDOS攻击总体趋势总结网络化发展专业化发展简单化发展多样化发展自动化发展犯罪化发展四、病毒人生(法律)1983年11月3日,弗雷德·科恩(FredCohen)博士研制出一种在运行过程中可以复制自身的破坏性程序,伦·艾德勒曼(LenAdleman)将它命名为计算机病毒(computerviruses),并在每周一次的计算机安全讨论会上正式提出。1988年冬天,正在康乃尔大学攻读的莫里斯,把一个被称为“蠕虫”的电脑病毒送进了美国最大的电脑网络——互联网。1988年11月2日下午5点,互联网的管理人员首次发现网络有不明入侵者。当晚,从美国东海岸到西海岸,互联网用户陷入一片恐慌。CIH病毒,又名“切尔诺贝利”,是一种可怕的电脑病毒。它是由台湾大学生陈盈豪编制的,九八年五月间,陈盈豪还在大同工学院就读时,完成以他的英文名字缩写“CIH”名的电脑病毒起初据称只是为了“想纪念一下1986的灾难”或“使反病毒软件公司难堪”。年仅18岁的高中生杰弗里·李·帕森因为涉嫌是“冲击波”电脑病毒的制造者于2003年8月29日被捕。对此,他的邻居们表示不敢相信。在他们的眼里,杰弗里·李·帕森是一个电脑天才,而决不是什么黑客,更不会去犯罪。李俊,大学本科毕业大于1000万用户染毒损失数亿元人民币处罚:最高无期?五、恶意代码的主要危害直接危害:1.病毒激发对计算机数据信息的直接破坏作用2.占用磁盘空间和对信息的破坏3.抢占系统资源4.影响计算机运行速度5.计算机病毒错误与不可预见的危害6.计算机病毒的兼容性对系统运行的影响病毒的危害情况间接危害:1.计算机病毒给用户造成严重的心理压力2.造成业务上的损失3.法律上的问题近几年来的重大损失年份攻击行为发起者受害PC数目损失金额(美元)2006木马和恶意软件————2005木马————2004Worm_Sasser(震荡波)————2003Worm_MSBLAST(冲击波)超过140万台——2003SQLSlammer超过20万台9.5亿至12亿2002Klez超过6百万台90亿2001RedCode超过1百万台26亿2001NIMDA超过8百万台60亿2000LoveLetter——88亿1999CIH超过6千万台近100亿六、恶意代码的分类总体上分两大类第一大类:传统的计算机病毒感染操作系统引导程序感染可执行文件(感染exe、com、elf文件)感染数据文件(宏病毒、Shell脚本恶意代码)第二大类:传统计算机病毒之外的恶意代码木马、蠕虫、流氓软件……后门、僵尸、移动端恶意代码……七、计算机病毒的传播途径

1、软盘软盘作为最常用的交换媒介,在计算机应用的早期对病毒的传播发挥了巨大的作用,因那时计算机应用比较简单,可执行文件和数据文件系统都较小,许多执行文件均通过软盘相互拷贝、安装,这样病毒就能通过软盘传播文件型病毒;另外,在软盘列目录或引导机器时,引导区病毒会在软盘与硬盘引导区内互相感染。因此软盘也成了计算机病毒的主要的寄生“温床”。2、光盘光盘因为容量大,存储了大量的可执行文件,大量的病毒就有可能藏身于光盘,对只读式光盘,不能进行写操作,因此光盘上的病毒不能清除。以谋利为目的非法盗版软件的制作过程中,不可能为病毒防护担负专门责任,也决不会有真正可靠的技术保障避免病毒的传入、传染、流行和扩散。当前,盗版光盘的泛滥给病毒的传播带来了极大的便利。甚至有些光盘上杀病毒软件本身就带有病毒,这就给本来“干净”的计算机带来了灾难。

3、硬盘(含移动硬盘、USB)有时,带病毒的硬盘在本地或移到其他地方使用甚至维修等,就会将干净的软盘传染或者感染其他硬盘并扩散。网络病毒技术社区集体攻击病毒

蠕虫病毒特洛伊木马黑客技术脚本病毒邮件病毒病毒源码发布4、有线网络网络——〉病毒的加速器触目惊心的计算——卿斯汉如果:20分钟产生一种新病毒,通过因特网传播(30万公里/秒)。联网电脑每20分钟感染一次,每天开机联网2小时。结论:一年以內一台联网的电脑可能会被最新病毒感染2190次。另一个数字:75%的电脑被感染。网络服务——〉传播媒介网络的快速发展促进了以网络为媒介的各种服务(FTP,WWW,BBS,EMAIL等)的快速普及。同时,这些服务也成为了新的病毒传播方式。电子布告栏(BBS):电子邮件(Email):即时消息服务(QQ,ICQ,MSN等):WEB服务:FTP服务:新闻组:5、无线通讯系统病毒对手机的攻击有3个层次:攻击WAP服务器,使手机无法访问服务器;攻击网关,向手机用户发送大量垃圾信息;直接对手机本身进行攻击,有针对性地对其操作系统和运行程序进行攻击,使手机无法提供服务。病毒表现现象:计算机病毒发作前的表现现象病毒发作时的表现现象病毒发作后的表现现象与病毒现象相似的硬件故障与病毒现象相似的软件故障八、染毒计算机的症状1、发作前的现象平时运行正常的计算机突然经常性无缘无故地死机操作系统无法正常启动运行速度明显变慢以前能正常运行的软件经常发生内存不足的错误打印和通讯发生异常以前能正常运行的应用程序经常发生死机或者非法错误系统文件的时间、日期、大小发生变化运行Word,打开Word文档后,该文件另存时只能以模板方式保存磁盘空间迅速减少网络驱动器卷或共享目录无法调用基本内存发生变化陌生人发来的电子邮件2、发作时的现象提示一些不相干的话发出一段的音乐产生特定的图像硬盘灯不断闪烁进行游戏算法Windows桌面图标发生变化计算机突然死机或重启自动发送电子邮件鼠标自己在动3、发作后的现象硬盘无法启动,数据丢失系统文件丢失或被破坏文件目录发生混乱部分文档丢失或被破坏部分文档自动加密修改系统文件使部分可软件升级主板的BIOS程序混乱,主板被破坏网络瘫痪,无法提供正常的服务4、与病毒现象类似的软件故障出现“Invaliddrivespecification”(非法驱动器号)软件程序已被破坏(非病毒)软件与操作系统的兼容性引导过程故障用不同的编辑软件程序5、与病毒现象类似的硬件故障系统的硬件配置电源电压不稳定插件接触不良软驱故障关于CMOS的问题九、计算机病毒的命名规则

CARO命名规则,每一种病毒的命名包括五个部分:病毒家族名病毒组名大变种小变种修改者CARO规则的一些附加规则包括:不用地点命名不用公司或商标命名如果已经有了名字就不再另起别名变种病毒是原病毒的子类

精灵(Cunning)病毒是瀑布(Cascade)病毒的变种,它在发作时能奏乐,因此被命名为Cascade.1701.A。Cascade是家族名,1701是组名。因为Cascade病毒的变种的大小不一(1701,1704,1621等),所以用大小来表示组名。A表示该病毒是某个组中的第一个变种。

业界补充:反病毒软件商们通常在CARO命名的前面加一个前缀来标明病毒类型。比如,WM表示MSWord宏病毒;Win32指32位Windows病毒;VBS指VB脚本病毒。这样,梅丽莎病毒的一个变种的命名就成了W97M.Melissa.AA,Happy99蠕虫就被称为Win32.Happy99.Worm。VGrep是反病毒厂商的一种尝试,这种方法将已知的病毒名称通过某种方法关联起来,其目的是不管什么样的扫描软件都能按照可被识别的名称链进行扫描。VGrep将病毒文件读入并用不同的扫描器进行扫描,扫描的结果和被识别出的信息放入数据库中。每一个扫描器的扫描结果与别的扫描结果相比较并将结果用作病毒名交叉引用表。VGrep的参与者赞同为每一种病毒起一个最通用的名字最为代表名字。拥有成千上万扫描器的大型企业集团要求杀毒软件供应商使用VGrep命名,这对于在世界范围内跟踪多个病毒的一致性很有帮助。十、计算机病毒防治病毒防治的公理1、不存在这样一种反病毒软硬件,能够防治未来产生的所有病毒。2、不存在这样一种病毒程序,能够让未来的所有反病毒软硬件都无法检测。3、目前的反病毒软件和硬件以及安全产品是都易耗品,必须经常进行更新、升级。4、病毒产生在前,反病毒手段滞后的现状,将是一个长期的过程。人类为防治病毒所做出的努力

立体防护网络版单机版防病毒卡对计算机病毒应持有的态度1.客观承认计算机病毒的存在,但不要惧怕病毒。

3.树立计算机病毒意识,积极采取预防(备份等)措施。4.掌握必要的计算机病毒知识和病毒防治技术,对用户至关重要。5.发现病毒,冷静处理。特征码扫描法特征码扫描法是分析出病毒的特征病毒码并集中存放于病毒代码库文件中,在扫描时将扫描对象与特征代码库比较,如有吻合则判断为染上病毒。该技术实现简单有效,安全彻底;但查杀病毒滞后,并且庞大的特征码库会造成查毒速度下降;目前广泛应用的几种防治技术:在查杀病毒时在机器虚拟内存中模拟出一个“指令执行虚拟机器”在虚拟机环境中虚拟执行(不会被实际执行)可疑带毒文件在执行过程中,从虚拟机环境内截获文件数据,如果含有可疑病毒代码,则杀毒后将其还原到原文件中,从而实现对各类可执行文件内病毒的查杀虚拟执行技术

该技术通过虚拟执行方法查杀病毒,可以对付加密、变形、异型及病毒生产机生产的病毒,具有如下特点:智能引擎技术

智能引擎技术发展了特征码扫描法的优点,改进了其弊端,使得病毒扫描速度不随病毒库的增大而减慢。刚刚面世的瑞星杀毒软件2003版即采用了此项技术,使病毒扫描速度比2002版提高了一倍之多;计算机监控技术文件实时监控内存实时监控脚本实时监控邮件实时监控注册表实时监控参考:未知病毒查杀技术

未知病毒技术是继虚拟执行技术后的又一大技术突破,它结合了虚拟技术和人工智能技术,实现了对未知病毒的准确查杀。压缩智能还原技术

世界上的压缩工具、打包工具、加“壳”工具多不胜数,病毒如果被这样的工具处理后被层层包裹起来,对于防病毒软件来说,就是一个噩梦。为了使用统一的方法来解决这个问题,反病毒专家们发明了未知解压技术,它可以对所有的这类文件在内存中还原,从而使得病毒完全暴露出来。多层防御,集中管理技术反病毒要以网为本,从网络系统的角度设计反病毒解决方案,只有这样才能有效地查杀网络上的计算机病毒。在网络上,软件的安装和管理方式是十分关键的,它不仅关系到网络维护和管理的效率和质量,而且涉及到网络的安全性。好的杀毒软件需要能在几分钟之内便可轻松地安装到组织里的每一个NT服务器上,并可下载和散布到所有的目的机器上,由网络管理员集中设置和管理,它会与操作系统及其它安全措施紧密地结合在一起,成为网络安全管理的一部分,并且自动提供最佳的网络病毒防御措施。病毒免疫技术

病毒免疫技术一直是反病毒专家研究的热点,它通过加强自主访问控制和设置磁盘禁写保护区来实现病毒免疫的基本构想。实际上,最近出现的软件安全认证技术也应属于此技术的范畴,由于用户应用软件的多样性和环境的复杂性,病毒免疫技术到广泛使用还有一段距离。加强对未知病毒的查杀能力是反病毒行业的持久课题,目前国内外多家公司都宣布自己的产品可以对未知病毒进行查杀,但据我们研究,国内外的产品只有少数可以对同一家族的新病毒进行预警,不能清除。目前有些公司已经在这一领域取得了突破性的进展,可以对未知DOS病毒、未知PE病毒、未知宏病毒进行防范。其中对未知DOS病毒能查到90%以上,并能准确清除其中的80%,未知PE病毒能查到70%以上、未知宏病毒能实现查杀90%.病毒防治技术的趋势前瞻加强对未知病毒的查杀能力防杀针对掌上型移动通讯工具和PDA的病毒

随着掌上型移动通讯工具和PDA的广泛使用,针对这类系统的病毒已经开始出现,并且威胁将会越来越大,反病毒公司将投入更多的力量来加强此类病毒的防范。兼容性病毒的防杀

目前已经发现可以同时在微软WINDOWS和日益普及的LINUX两种不同操作系统内运作的病毒,此类病毒将会给人们带来更多的麻烦,促使反病毒公司加强防杀此类病毒。蠕虫病毒和脚本病毒的防杀不容忽视

蠕虫病毒是一种能自我复制的程序,驻留内存并通过计算机网络复制自己,它通过大量消耗系统资源,最后导致系统瘫痪。给人们带来了巨大的危害,脚本病毒因为其编写相对容易正成为另一种趋势,这两类病毒的危害性使人们丝毫不能忽视对其的防杀。十一、杀毒软件及评价(一)杀毒软件必备功能

病毒查杀能力对新病毒的反应能力对文件的备份和恢复能力实时监控功能及时有效的升级功能智能安装、远程识别功能界面友好、易于操作对现有资源的占用情况系统兼容性软件的价格软件商的实力(二)国内外杀毒软件及市场金山毒霸、瑞星杀毒、KV3000、PC-CillinVirusBuster、NortonAntiVirus、McafeeVirusScan、KasperskyAntivirus、F-SecureAntivirus,Nod32等。《电脑报》2008评测结果2014年2015年/十二、解决方案和策略防病毒策略1、建立病毒防治的规章制度,严格管理;

2、建立病毒防治和应急体系;

3、进行计算机安全教育,提高安全防范意识;

4、对系统进行风险评估;

5、选择经过公安部认证的病毒防治产品;

6、正确配置,使用病毒防治产品;

7、正确配置系统,减少病毒分侵害事件;

8、定期检查敏感文件;

9、适时进行安全评估,调整各种病毒防治策略;

10、建立病毒事故分析制度;

11、确保恢复,减少损失;十三、国内外病毒产品的技术发展态势国内外反病毒公司在反病毒领域各有所长国内外产品竞争激烈

国内以360为代表,进入了免费时代国内反病毒企业发展势头强劲

随着中国信息化进程的深入开展,多家国际反病毒公司基本撤出了在中国的杀毒业务;相信人类受到恶意代码侵害及由此带来的损失将逐步减少,国内反病毒行业在政府的规范和用户的支持下将取得更好的成绩!反病毒服务是竞争关键

要推动企业信息安全建设、并从根本上改变国内信息安全现状,建立健全的服务体系是关键。相关资源1.Wildlist国际组织该网站维护世界各地发现的病毒列表。网站负责维护这个列表,并且按月打包供用户下载。此外,网站上还有一些计算机病毒方面的学术论文。2.病毒公告牌对于任何关心恶意代码和垃圾信息防护、检测和清除的人来说,病毒公告在线杂志是一个必不可少的参考。逐日逐月地,病毒公告牌提供如下信息:1)来自于反恶意代码业界的发人深省的新闻和观点2)最新恶意代码威胁的详细分析3)探索反恶意代码技术开发的长篇文档4)反恶意代码专家的会见5)对当前反病毒产品的独立评测6)覆盖垃圾邮件和反垃圾邮件技术的月报3.卡饭论坛http://卡饭的意思是卡巴斯基的FANS(爱好者),取其谐音,即为卡饭。卡饭论坛最初是一个以卡巴斯基爱好者为主体,以计算机安全软件为主要内容的论坛。随着国产计算机安全软件的兴起,卡饭论坛对主流的计算机安全软件均有不同程度的涉猎,迄今为止已发展成为最大的计算机安全论坛之一。论坛的开放时间是2006年6月1日。4.亚洲反病毒研究者协会(AVAR)AVAR(亚洲反病毒研究者协会)成立于1998年6月。协会的宗旨是预防计算机病毒的传播和破坏,促进亚洲的反病毒研究者间建立良好的合作关系。5.国家计算机病毒应急处理中心网站主要内容是病毒流行列表、病毒SOS求救、数据恢复等。6.病毒观察网站主要内容包括病毒预报、新闻、评论、相关法规、反病毒资料、安全漏洞、密码知识、病毒百科在线检索等。7.HACK80HACK80是集黑客技术交流、黑客工具分享的黑客论坛。与传统黑客联盟不同,该论坛在守法的前提下提倡自由的技术交流,力求成为一个气氛优秀的技术圈子。8.安全焦点安全焦点是中国目前顶级的网络安全站点,那里集聚的一大批知名的黑客。网站内容包括安全论文、安全工具、安全漏洞以及逆向技术等。9.看雪论坛/看雪论坛是致力于PC、移动、物联网安全研究及逆向工程相关的开发者舍却。网站主要内容包括黑客频道、防毒技巧、网络安全新闻和病毒新闻等。10.国际计算机安全联合会(ICSA-InterNationalComputerSecwrityAssociation)/如要对Internet的安全问题感兴趣,你可以访问国家计算机安全联合会(NCSA)的站点。这里会看到很多关于国家计算机安全联合会各种活动的信息,包括会议,培训、产品认证和安全警告等。在这里你可以了解到国际知名的病毒防治软件登记请况。AnyQuestions?ThankYou!202X感谢聆听汇报人姓名汇报时间漏洞本章目标了解漏洞的概念。掌握软件漏洞产生。了解漏洞的发展。掌握漏洞利用情况。熟悉漏洞发布。2.1漏洞的概念漏洞(Vulnerability)又叫脆弱性,这一概念早在1947年冯•诺依曼建立计算机系统结构理论时就有涉及。他认为计算机的发展和自然生命有相似性,一个计算机系统也有天生的类似基因的缺陷,也可能在使用和发展过程中产生意想不到的问题。20世纪80年代,早期黑客的出现和第一个计算机病毒的产生,使得软件漏洞逐渐引起人们的关注。20世纪70年代中期,美国启动的PA计划(ProtectionAnalysisProject)和可靠操作系统的研究(ResearchinSecuredOperatingSystems)计划,开启了信息安全漏洞研究工作的序幕。在历经40多年的研究过程中,学术界、产业界以及政策制定者对漏洞给出了很多定义,漏洞定义本身也随着信息技术的发展而具有不同的含义与范畴,从最初的基于访问控制的定义发展到现阶段的涉及系统安全流程、系统设计、实施、内部控制等全过程的定义。1.信息安全漏洞的定义信息安全漏洞是信息安风险的主要根源之一,是网络攻防对抗中的主要目标。由于信息系统漏洞的危害性、多样性和广泛性,在当前网络空间博弈中,漏洞作为一种战略资源被各方所积极关注。如何有效发现、管理和应用漏洞的相关信息,已经成为世界各国在信息安全领域工作的共识和重点。信息安全漏洞是信息技术、信息产品、信息系统在需求、设计、实现、配置、维护和使用等过程中,有意或无意产生的缺陷,这些缺陷一旦被恶意主体所利用,就会造成对信息产品或系统安全的损害,从而影响构建于信息产品或系统之上正常服务的运行,危害信息产品或系统及信息的安全属性。也就是说,本书将漏洞研究的对象限制在信息技术、信息产品、信息系统等方面,未将人和管理流程作为主要研究目标;同时,明确了漏洞的产生环节,即需求、设计、实现、配置、运行等全生命周期过程中均可能存在漏洞;最后,指出了漏洞的危害特性。信息安全漏洞是和信息安全相对而言的。安全是阻止未经授权进入信息系统的支撑结构。漏洞是信息产品或系统安全方面的缺陷。例如,在IntelPentium芯片中存在的逻辑错误、在Sendmail中的编程错误、在NFS协议中认证方式上的弱点、在Unix系统管理员设置匿名FTP服务时配置不当、对信息系统物理环境、信息使用人员的管理疏漏等,这些问题都可能被攻击者使用,威胁到系统的安全。因而这些都可以认为是系统中存在的安全漏洞。2.信息安全漏洞特征(1)信息安全漏洞是一种状态或条件。它的存在并不能导致损害,但是可以下被攻击者利用,从而造成对系统安全的破坏。漏洞的恶意利用能够影响人们的工作、生活,甚至给国家安全带来灾难性的后果。(2)漏洞可能是有意,也可能是无意造成的。在信息系统中,人为主动形成的漏洞称为预置性漏洞,但大多数的漏洞是由于疏忽造成的。例如,软件开发过程中不正确的系统设计或编程过程中的错误逻辑等。(3)漏洞广泛存在。漏洞是不可避免的,它广泛存在于信息产品或系统的软件、硬件、协议或算法。而且在同一软件、硬件及协议的不同版本之间,相同软件、硬件及协议构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。(4)漏洞与时间紧密相关。一个系统从发布的那一天起,随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被系统供应商发布的补丁修复,或在以后发布的新版系统中得以纠正。而在新版系统纠正了旧版本中原有漏洞的同时,也会引人一些新的漏洞和错误。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现。(5)漏洞研究具有两面性和信息不对称性。针对漏洞的研究工作,一方面可以用于防御,一方面也可以用于攻击。同时,在当前的安全环境中,很多因素都会导致攻击者的出现。攻击者相对于信息系统的保护者具有很大的优势,攻击者只需要找出一个漏洞,而防御者却在试图消除所有漏洞。随着网络的发展,包括恶意工具在内的各种攻击工具均可从互联网上自由下载,任何有此意图的人都能得到这些工具。而且出现了越来越多的无需太多知识或技巧的自动工具。同防护系统、网络、信息以及响应攻击所需的支出相比要更廉价。尽管网络安全和信息保障技术能力也在逐步增强,但攻与防的成本差距不断增大,不对称性越来越明显。2.2漏洞的产生根据漏洞的定义可知,软件或产品漏洞是由于软件在需求、设计、开发、部署或维护阶段,由于开发或使用者有意或无意产生的缺陷所造成的。而信息系统漏洞产生的原因主要是由于构成系统的元素,例如,硬件、软件协议等在具体实现或安全策略上存在的缺陷。事实上,由于人类思维能力、计算机计算能力的局限性等根本因素,导致了漏洞的产生是不可避免的。下面我们将从技术、经济、应用环境等角度来分析为什么漏洞总是在不断地产生,而且每年数量还呈现出不断增多的趋势。2.2.1漏洞产生的原因1.技术角度随着信息化技术和应用领城的不断发展和深入。人们对软件的依赖越来越大,对其功能和性能的要求也越来越高。因此驱动了软件系统规模的不断膨胀。例如,Windows95只有1500万行代码,Windows98有1800万行代码,WindowsXP有3500万行代码,而目前Windows11代码约为5亿行。同时,由于软件编程技术可视化技术、系统集成技术的不断发展,更进一步地促使软件系统内部结构和逻辑日益复杂。显然,软件系统规模的迅速膨胀及内部结构的日益复杂,直接导致软件系统复杂性的提高,而目前学术界普遍认为,软件系统代码的复杂性是导致软件系统质量难于控制、安全性降低、漏洞产生的重要原因。2.经济角度软件系统的安全性不是显性价值,厂商要实现安全性就要额外付出巨大的代价。此时,软件系统的安全质量形成了一个典型的非对称信息案例,即产品的卖方对产品质量比买方有更多信息。在这种情况下,经济学上著名的“柠檬市场”效应会出现,即在信息不对称的情况下,往往好的商品遭受淘汰,而劣等品会逐渐占领市场并取代好的商品,导致市场中都是劣等品。在这种市场之下,厂商更加重视软件系统的功能、性能、易用性,而不愿意在安全质量上做大的投人,甚至某些情况下,为了提高软件效率而降其安全性,结果导致了软件系统安全问题越来越严重。这种现象可以进一步归结为经济学上的外在性Externality),像环境污染一样,软件系统漏洞的代价要全社会来承受,而厂商拿走了所有的收益中。3.应用环境角度由于以Internet为代表的网络逐渐融入人类社会的方方面面,伴随着Internet技术与信息技术的不断融合与发展,导致了软件系统的运行环境发生了改变,从传统的封闭、静态和可控变为开放、动态和难控。因此,在网络空间下,复杂的网络环境导致软件系统的攻防信息不对称性进一步增强,攻易守难的矛盾进一步增强。此外,在该环境下,还形成了一些新的软件形态,例如,网构软件(Internetware)从技术的角度看,网构软件是在面向对象、软件构件等技术支持下的软件实体以主体化的软件服务形式存在于Internet的各个节点之上,各个软件实体相互间通过协同机制进行跨网络的互联、互通、协作和联盟,从而形成一种与www相类似的软件Web(SoftwareWeb)。由此,在网络环境中的开发、运行、服务的网络化软件一方面导致了面向Web应用的跨站脚本,SQL注入等漏洞越来越多,另一方面也给安全防护带来了更大的难度。2.2.2漏洞的产生条件漏洞与安全缺陷有着密不可分的关系。软件系统的不同开发阶段会产生不同的安全缺陷,其中一些安全缺陷在一定条件下可转化为安全漏洞。由于安全缺陷是产生漏洞的必要条件,因此,要想防止漏洞并降低修复成本,就要从诵洞的根源人手,控制安全缺陷的产生与转化,下面我们将介绍安全缺陷的定义、漏洞与安全缺陷的对应关系以及安全缺陷转化为漏洞的条件。1.安全缺陷的定义安全缺陷是指软件、硬件或协议在开发维护和运行使用阶段产生的安全错误实例。安全缺陷是信息系统或产品自身“与生俱来”的特征,是其固有成分。无论是复杂的软件系统还是简单的应用程序,可能都存在着安全缺陷,这些安全缺陷,有的容易表现出来,有的却难以发现;有的对软件产品内使用有轻微影响,有的可在一定的条件下,形成漏洞并会造成财产乃至生命等巨大损失。例如,在下面的C语言代码中,存在对字符串变量string长度没有进行检查的缺陷,因此,一旦string的字符长度超过buf变量的大小24个字符),就有可能引发缓冲区溢出的漏洞。2.2.3漏洞的状态漏洞与具体时间和具体系统环境有着紧密的关系,不可能脱离二者独立讨论,并且随着时间和环境的变化会重复出现、循环反复,可以说,漏洞是有生命的,其状态随着时间、空间、人等相关要素而演变。1.漏洞的生成软件产品在设计、编码或配置使用时,均可能引人安全缺陷,漏洞的生成阶段即指存在安全缺陷的产品在执行中形成漏洞。2.漏洞的发现软件产品的漏洞被发现,其标志是指漏洞首次被挖掘者、使用者或厂商识别。漏洞在被发现之前就已经存在,但通常情况下,漏洞仅被少数人发现,这些人可能是黑客,也可能是妄图滥用漏洞知识的有组织的犯罪团体,或者是正在合作修复漏洞的研究人员和厂商。在漏洞向公众发布之前,漏洞的发现时间指某软件漏洞被发现并被认为可构成安全风险的最早报告时间)始终不为公众所知,但这时漏洞已具有一定的安全影响,从漏洞发现到编洞信息发布这段时间常被称为“黑色风险期”。3.漏洞的发布是指漏洞信息通过公开渠道告知公众。漏洞的发布可能以各种方式来自各种源头,例如由厂商或独立研究人员宣布。不同的作者对于一个漏洞的发布时间有着不同的定义。最常见的一种说法是由某团体公开发布安全信息。通常,漏洞信息在邮件列表和安全网站中进行讨论,然后再据此形成一份安全报告。为确保相关安全信息能够出现并保证质量,Stefan提出了一种更严格的发布时间定义。漏洞发布时间指某漏洞首次通过某种渠道出现,在该渠道中被发布的漏洞信息须满足下列条件:(1)可由公众自由获取。从安全的角度来看,只有自由和公开地公布才能保证所有感兴趣的和涉及的团体获取相关信息。(2)由独立且可信赖的渠道公布。只有独立于厂商或政府的渠道才无偏见,才能够公平传播安全信息。只有在业界被认可属于可接受的安全信息来源渠道,才能被视为是一个可信赖的渠道(例如,长期以来一直都在提供可靠的安全信息)。(3)已经过专家分析,如应包括风险级别信息。分析和风险级别能够保证所发布信息的质量。仅仅是在邮件列表中讨论某个可能的缺陷或来自厂商的模糊信息并不具质量可言。分析必须包括足够的细节,能使相关软件用户评估其个人风险或立即采取资产保护措施。4.漏洞信息的流行该阶段可通过各种方式发生,如新闻报逍、发布报告蠕虫活动,但最终结果是很多人都知道了这个漏洞。5.漏洞的修复这一阶段通常由厂商通过提供补丁来完成。这个阶段可以大大减少成功的入侵数量。修复漏洞的补丁通过公开渠道告知公众,常与漏洞信息同时发布。补丁出现时间指的是厂商或软件创始人最早发布能够抵御漏洞遭利用的修复方案、应急方案或补丁的时间,补丁的形式可以非常简单,如厂商仅发布对某种配置变动的说用,也可以比较复杂如广商以更新包的形式发布软件程序,在漏洞发布到漏制修复的这段时期,软件用户在等待厂商发布补丁,通常将这段风险暴露时期称为“灰色风险期",这段时期内公众知道漏洞风险但软件开发高尚未提供修复方案。但是,用户可以通过海洞发布信息评估自己所面临的风险,也可能在补丁发布之前采取其他安全机制,如入侵防御系统或反病毒工具能对某一漏洞信息进行检测,并不代表漏洞得到了修复,另外,补丁发布后并不是所有用户都会及时安装补丁,由于用户未及时安装补丁而导致出现的风险期,通常称为“白色风险期”6.漏洞衰败阶段攻击者不再对利用该漏洞感兴趣。并非每个漏洞都存在这一阶段,但某些漏洞及其利用方案都显示出周期性的活跃期。7.漏洞的消亡当可能被利用的目标机器数量降至可忽略的水平时,即绝大多数软件系统应用了漏洞的修复措施之后,漏洞进人死亡期。8.利用脚本的出现这是指有人针对某一漏洞发布了有效的攻击代码,或是发布了如何形成攻击代码的说明。二者中的任何一种情况,都会导致攻击者的数量大量增加,即使是技术不佳的攻击者也可以实施攻击。某一漏洞的利用代码被开发、测试和实施,这此过程一定出现在漏洞发现之后,但可能早于漏洞发布或补丁发布的时间,或是出现在补丁发布但未安装部署前。其中。漏洞利用时间指的是某漏洞最早出现利用方案的时间,这里把所有能够利用该漏洞的黑客工具、病毒、数据或命令行等都视为利用方案。根据上述内容,漏洞生命周期理论呈现出图2-1中所示的趋势。

图2-1漏洞生命周期理论模型第3章传统计算机病毒

——补充知识推荐参考资料学习本章前,建议学习并掌握PE可执行文件的结构及运行原理。推荐参考罗云彬编著的《Windows环境下32位汇编语言程序设计》。64位汇编资料/view/26be27f87cd184254a35359a.html1PE文件结构及其运行原理(1)PE文件格式总体结构

PE(PortableExecutable:可移植的执行体)是Win32环境自身所带的可执行文件格式。它的一些特性继承自Unix的Coff(CommonObjectFileFormat)文件格式。可移植的执行体意味着此文件格式是跨win32平台的,即使Windows运行在非Intel的CPU上,任何win32平台的PE装载器都能识别和使用该文件格式。当然,移植到不同的CPU上PE执行体必然得有一些改变。除VxD和16位的Dll外,所有win32执行文件都使用PE文件格式。因此,研究PE文件格式是我们洞悉Windows结构的良机。PE文件结构总体层次分布DOSMZheader‘MZ’格式头DOSstubDos桩程序PEheaderPE文件头Sectiontable节表Section1第1个节Section2第2个节……Sectionn第n个节所有PE文件必须以一个简单的DOSMZheader开始。有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体。DOSstub实际上是个有效的EXE,在不支持PE文件格式的操作系统中,它将简单显示一个错误提示,类似于字符串“该程序不能在DOS模式下运行”或者程序员可根据自己的意图实现完整的DOS代码。

PEheader是PE相关结构IMAGE_NT_HEADERS的简称,其中包含了许多PE装载器用到的重要域。sectiontable(节表)是节的索引。PE文件的真正内容被划分成块,我们称之为sections(节)。每节是一块拥有共同属性的数据,比如代码/数据、读/写等。把PE文件想象成一逻辑磁盘,PEheader是磁盘的boot扇区,而sections就是各种文件,每种文件自然就有不同属性如只读、系统、隐藏、文档等等。其中节表就像目录。值得我们注意的是——节的划分是基于各组数据的共同属性而不是逻辑概念。因此,我么不必关心节中类似于data,code或其他的逻辑概念。如果数据和代码拥有相同属性,它们就可以被归入同一个节中。节名称仅仅是个区别不同节的符号而已,类似于data和code等的节名称只为了便于识别,惟有节的属性设置决定了节的特性和功能。如果某块数据想作为只读属性,就可以将该块数据放入属性为只读的节中。装载PE文件的主要步骤第一,当PE文件被执行,PE装载器检查DOSMZheader里的PEheader偏移量。如果找到,则跳转到PEheader。第二,PE装载器检查PEheader的有效性。如果有效,就跳转到PEheader的尾部。第三,紧跟PEheader的是节表。PE装载器读取其中的节索引信息,并采用文件映射方法将这些节映射到内存,同时附上节表里指定的节属性。第四,PE文件映射入内存后,PE装载器将处理PE文件中类似importtable(引入表)逻辑部分。(2)检验PE文件的有效性什么样的PE文件是有效的?只要一些关键数据结构有效,我们就认为是有效的PE文件了。这个重要数据结构就是PEheader。从编程角度看,PEheader实际就是一个IMAGE_NT_HEADERS结构。IMAGE_NT_HEADERS结构的定义如下:IMAGE_NT_HEADERSSTRUCTSignatureddFileHeaderIMAGE_FILE_HEADEROptionalHeaderIMAGE_OPTIONAL_HEADER32IMAGE_NT_HEADERSENDSSignature:该域为PE标记,值为50h,45h,00h,00h(PE\0\0)。IMAGE_DOS_SIGNATUREequ5A4DhIMAGE_OS2_SIGNATUREequ454EhIMAGE_OS2_SIGNATURE_LEequ454ChIMAGE_VXD_SIGNATUREequ454ChIMAGE_NT_SIGNATUREequ4550hFileHeader:该结构域包含了关于PE文件物理分布的信息,比如节数目、文件执行机器等。OptionalHeader:该结构域包含了关于PE文件逻辑分布的信息。定位PEheaderDOSMZheader(IMAGE_DOS_HEADER)包含了指向PEheader的文件偏移量,即e_lfanew。定位步骤为:第一,检验文件头部第一个字的值是否等于IMAGE_DOS_SIGNATURE,是则DOSMZheader有效。第二,一旦证明文件的DOSMZheader有效后,就可用e_lfanew来定位PEheader了。第三,比较PEheader的第一个字的值是否等于IMAGE_NT_SIGNATURE。如果前后两个值都匹配,那我们就认为该文件是一个有效的PE文件。(3)文件头(FileHeader)文件头(FileHeader)是IMAGE_NT_HEADERS的一个重要的域。文件头的表示结构为:IMAGE_FILE_HEADERSTRUCTMachineWORDNumberOfSectionsWORDTimeDateStampddPointerToSymbolTableddNumberOfSymbolsddSizeOfOptionalHeaderWORDCharacteristicsWORDIMAGE_FILE_HEADERENDS域名含义Machine该文件运行所要求的CPU。对于Intel平台,该值是IMAGE_FILE_MACHINE_I386(14Ch)。NumberOfSections文件的节数目。如果我们要在文件中增加或删除一个节,就需要修改这个值。TimeDateStamp文件创建日期和时间。要让它保持原样,不要变PointerToSymbolTable用于调试。NumberOfSymbols用于调试。SizeOfOptionalHeader指示紧随本结构之后的OptionalHeader结构大小,必须为有效值。Characteristics关于文件信息的标记,比如文件是exe还是dll。注:节、节表和NumberOfSections的关系节表数组边界确定。NumberOfSections,全0标示(4)OptionalHeaderOptionalHeader是PEheader中最后,最大,也是最重要的成员,包含了PE文件的逻辑分布信息。该结构共有31个域。虚拟地址(VA——VirtualAddress)RVA(RelativeVirtualAddress,相对虚拟地址)域名含义AddressOfEntryPointPE装载器准备运行的PE文件的第一个指令的RVA。若您要改变整个执行的流程,可以将该值指定到新的RVA,这样新RVA处的指令首先被执行。ImageBasePE文件的优先装载地址。比如,如果该值是400000H,PE装载器将尝试把文件装到虚拟地址空间的400000H处。若该地址区域已被其他模块占用,那PE装载器会选用其他空闲地址。SectionAlignment内存中节对齐的粒度。例如,如果该值是4096(1000H),那么每节的起始地址必须是4096的倍数。若第一节从401000H开始且大小是10个字节,则下一节必定从402000H开始,即使401000H和402000H之间还有很多空间没被使用。FileAlignment文件中节对齐的粒度。含义类似SectionAlignment。MajorSubsystemVersionMinorSubsystemVersionWin32系统版本。SizeOfImage内存中整个PE映像体的尺寸。它是所有头和节经过节对齐处理后的大小。SizeOfHeaders所有头+节表的大小,也就等于文件尺寸减去文件中所有节的尺寸。可以以此值作为PE文件第一节的文件偏移量。SubsystemNT用来识别PE文件属于哪个子系统。对于大多数Win32程序,只有两类值:WindowsGUI和WindowsCUI(控制台)。DataDirectoryIMAGE_DATA_DIRECTORY结构数组。每个结构给出一个重要数据结构的RVA,比如引入地址表等。(5)节表(SectionTable)SectionTable是用来索引节的数组结构,其详细表示为:IMAGE_SIZEOF_SHORT_NAMEequ8IMAGE_SECTION_HEADERSTRUCTNamedbIMAGE_SIZEOF_SHORT_NAMEdup(?)unionMiscPhysicalAddressddVirtualSizeddEndsVirtualAddressddSizeOfRawDataddPointerToRawDataddPointerToRelocationsddPointerToLinenumbersddNumberOfRelocationsdwNumberOfLinenumbersdwCharacteristicsddIMAGE_SECTION_HEADERENDS

域名含义Name节名长不超过8字节。节名仅仅是个标记而已,可以选择任何名字甚至空着也行。节名不是一个ASCII字符串,所以不用null结尾。VirtualAddress本节的RVA。PE装载器将节映射至内存时会读取该值,如果域值是1000H,而PE文件装在地址400000H处,那么本节就被装载到401000H。SizeOfRawData经过文件对齐处理后的节尺寸。该域值代表需映射入内存的字节数。(假设一个文件的文件对齐尺寸是0x200,如果VirtualSize域指示本节长度是0x388字节,则本域值为0x400,表示本节是0x400字节长)。PointerToRawData节基于文件的偏移量。PE装载器通过该值找到节数据在文件中的位置。Characteristics包含标记以指示节属性。节是否含有可执行代码、初始化数据、未初始数据,是否可写、可读等。PE装载器的工作步骤:第一,读取IMAGE_FILE_HEADER的NumberOfSections域,获取文件的节数目;第二,SizeOfHeaders域值作为节表的文件偏移量,并以此定位节表;第三,遍历整个结构数组检查各成员值;第四,对于每个结构,读取PointerToRawData域值并定位到该文件偏移量。然后再读取SizeOfRawData域值来决定映射内存的字节数。将VirtualAddress域值加上ImageBase域值等于节起始的虚拟地址。然后就准备把节映射进内存,并根据Characteristics域值设置属性。第五,遍历整个数组,直至所有节都已处理完毕。(6)引入表(ImportTable)两个概念:引入函数:是被某模块调用的但又不在调用者模块中的函数,因而命名为Import(引入)函数。引入函数实际位于一个或者更多的DLL里。调用者模块里只保留一些函数信息,包括函数名及其驻留的DLL名。DataDirectory:OptionalHeader最后一个成员就是DataDirectory,它是一个IMAGE_DATA_DIRECTORY结构数组,共有15个成员。DataDirectory包含了PE文件中各重要数据结构的位置和尺寸信息。每个成员包含了一个重要数据结构的信息。DataDirectory的每个成员都是IMAGE_DATA_DIRECTORY结构类型,其定义如下所示:IMAGE_DATA_DIRECTORYSTRUCTVirtualAddressdd//数据结构的相对虚拟地址(RVA)isizedd//VirtualAddress所指向数据结构的字节数IMAGE_DATA_DIRECTORYENDS15个成员序号便移包含信息简介096Exportsymbols导出表1104Importsymbols导入表2112Resources资源3120Exception异常4128Security安全5136Baserelocation重定位表6144Debug调试信息7152Copyrightstring版权信息8160GlobalPTR全局指针相对虚拟地址表9168Threadlocalstorage(TLS)本地线程存储10172Loadconfiguration装载配置表11180BoundImport具体资料不祥12188ImportAddressTable引入函数的地址(宿主程序中的地址)表13192DelayImport具体资料不祥14200COMdescriptorCOM描述子15208Reserved未使用引入表:实际上是一个IMAGE_IMPORT_DESCRIPTOR结构数组。每个结构包含PE文件引入函数的一个相关DLL的信息。如果该PE文件从10个不同的DLL中引入函数,那么这个数组就有10个成员。该数组以一个全0的成员结尾。IMAGE_IMPORT_DESCRIPTOR结构的定义如下:IMAGE_IMPORT_DESCRIPTORSTRUCTUnionCharacteristicsddOriginalFirstThunkddEndsTimeDateStampddForwarderChainddNameddFirstThunkddIMAGE_IMPORT_DESCRIPTORENDSOriginalFirstThunk含有指向一个IMAGE_THUNK_DATA结构数组的RVA。FirstThunk与OriginalFirstThunk的结构相同,只是作用不同。IMAGE_THUNK_DATA是一个指向IMAGE_IMPORT_BY_NAME结构的指针。注意IMAGE_THUNK_DATA包含了指向一个IMAGE_IMPORT_BY_NAME结构的指针,而不是结构本身。IMAGE_IMPORT_BY_NAME结构保存着一个引入函数的相关信息。IMAGE_IMPORT_BY_NAME结构的定义:IMAGE_IMPORT_BY_NAMESTRUCTHintdw//引入函数在原dll中的索引号Namedb//引入函数在原dll中的名字IMAGE_IMPORT_BY_NAMEENDS假设有几个IMAGE_IMPORT_BY_NAME结构,我们收集起这些结构的RVA(=IMAGE_THUNK_DATAs)组成一个数组,并以0结尾,然后再将数组的RVA放入OriginalFirstThunk。FirstThunk与OriginalFirstThunk区别OriginalFirstThunkIMAGE_IMPORT_BY_NAMEFirstThunk

|

|IMAGE_THUNK_DATA>Function1<IMAGE_THUNK_DATAIMAGE_THUNK_DATA>Function2<IMAGE_THUNK_DATAIMAGE_THUNK_DATA>Function3<IMAGE_THUNK_DATAIMAGE_THUNK_DATA>Function4<IMAGE_THUNK_DATA...>...<...IMAGE_THUNK_DATA>Functionn<IMAGE_THUNK_DATAPE文件执行前OriginalFirstThunkIMAGE_IMPORT_BY_NAMEFirstThunk

|

|IMAGE_THUNK_DATA>Function1AddressofFunction1IMAGE_THUNK_DATA>Function2AddressofFunction2IMAGE_THUNK_DATA>Function3AddressofFunction3IMAGE_THUNK_DATA>Function4AddressofFunction4...>......IMAGE_THUNK_DATA>FunctionnAddressofFunctionnPE文件执行时用函数名调用:IMAGE_IMPORT_BY_NAME用序号调用:IM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论