《第21讲VBSampVBS病毒名师编辑PPT课件.ppt》由会员分享,可在线阅读,更多相关《第21讲VBSampVBS病毒名师编辑PPT课件.ppt(45页珍藏版)》请在第壹文秘上搜索。
1、第21讲 VBS&VBS病毒内容提纲1.什么是 VBScript2.在 HTML页中添加 VBScript 代码 3.VBScript 数据类型4.VBScript 变量5.VBScript 常量6.VBScript 运算符7.使用条件语句8.编码循环9.VBScript 过程10.VBScript 编码惯例11.VBS病毒2023-11-121.什么是VBScriptnVBScript是Visual Basic Script的简称,即 Visual Basic 脚本语言,有时也被缩写为VBS。是asp动态网页默认的编程语言,配合asp内建对象和ADO对象,用户很快就能掌握访问数据库的asp动
2、态网页开发技术。n它具有原语言容易学习的特性。目前这种语言广泛应用于网页和ASP程序制作,同时还可以直接作为一个可执行程序。n补充:ADO(ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。例如,如果您希望编写应用程序从DB2或Oracle数据库中向网页提供数据,可以将ADO程序包括在作为活动服务器页(ASP)的HTML文件中。当用户从网站请求网页时,返回的网页也包括了数据中的相应数据,这些是由于使用了ADO代码的结果。2023-11-131.什么是VBScriptnVBScript主要的优
3、点有:n由于VBScript由网页浏览器解释执行,不需要增大服务器的负担。n易学。n在所有2000/98SE以后的Windows版本都可直接使用。n可以使用其它程序和可使用的物件(尤其Microsoft Office)。n缺点有:n现在VBS无法作为电子邮件的附件了。Microsoft Outlook拒绝接受VBS为附件,收信人无法直接使用VBS附件。nVBS的各种编辑程器不受欢迎。n操作系统没有任何特别的保护设施。VBS程序与其它JS、EXE、BAT或CMD程序一样对待。操作系统没有监察恶意功能的能力。2023-11-142.在 HTML页中添加 VBScript 代码 nVBScript
4、代码写在成对的 标记之间 n代码的开始和结束部分都有 标记。LANGUAGE 属性用于指定所使用的脚本语言。由于浏览器能够使用多种脚本语言,所以必须在此指定所使用的脚本语言。注意 CanDeliver 函数被嵌入在注释标记()中。这样能够避免不能识别 标记的浏览器将代码显示在页面中。2023-11-15 2 End Function-2.在 HTML页中添加 VBScript 代码nSCRIPT 块可以出现在 HTML 页面的任何地方(BODY 或 HEAD 部分之中)。然而最好将所有的一般目标脚本代码放在 HEAD 部分中,以使所有脚本代码集中放置。这样可以确保在 BODY 部分调用代码之前
5、所有脚本代码都被读取并解码。2023-11-16订购 2 End Function-.3.VBScript 数据类型nVBScript 只有一种数据类型,称为 Variant。Variant 是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。因为 Variant 是 VBScript 中唯一的数据类型,所以它也是 VBScript 中所有函数的返回值的数据类型。n最简单的 Variant 可以包含数字或字符串信息。Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理。这就是说,如果使用看起来象是数字的数据,则 VBScript 会假定其为数字并以适用
6、于数字的方式处理。与此类似,如果使用的数据只可能是字符串,则 VBScript 将按字符串处理。也可以将数字包含在引号()中使其成为字符串。2023-11-173.VBScript 数据类型nVariant 子类型子类型n除简单数字或字符串以外,Variant 可以进一步区分数值信息的特定含义。n例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时,结果也总是表示为日期或时间。n从 Boolean 值到浮点数,数值信息是多种多样的。nVariant 包含的数值信息类型称为子类型。大多数情况下,可将所需的数据放进 Variant 中,而 Variant 也会按照最适用于其包含
7、的数据的方式进行操作。2023-11-183.VBScript 数据类型n下表显示 Variant 包含的数据子类型:2023-11-194.VBScript 变量n变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储脚本运行时可更改的程序信息。n例如,可以创建一个名为 ClickCount 的变量来存储用户单击 Web 页面上某个对象的次数。n使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。n在 VBScript 中只有一个基本数据类型,即 Variant,因此所有变量的数据类型都是 Variant。2023-11-1104.VBS
8、cript 变量n声明变量n声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在脚本中显式声明变量。例如:n Dim DegreesFahrenheitn声明多个变量时,使用逗号分隔变量。例如:n Dim Top,Bottom,Left,Rightn隐式声明变量n另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯,因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外的结果。2023-11-1114.VBScript 变量n命名规则n变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循:n第一个字符必须是字母。
9、n不能包含嵌入的句点。n长度不能超过 255 个字符。n在被声明的作用域内必须唯一。4.VBScript 变量n变量的作用域与存活期n变量的作用域由声明它的位置决定。n如果在过程中声明变量,则只有该过程中的代码可以访问或更改变量值,此时变量具有局部作用域并被称为过程级变量。n如果在过程之外声明变量,则该变量可以被脚本中所有过程所识别,称为 Script 级变量,具有脚本级作用域。n变量存在的时间称为存活期。Script 级变量的存活期从被声明的一刻起,直到脚本运行结束。n对于过程级变量,其存活期仅是该过程运行的时间,该过程结束后,变量随之消失。n在执行过程时,局部变量是理想的临时存储空间。可以
10、在不同过程中使用同名的局部变量,这是因为每个局部变量只被声明它的过程识别。4.VBScript 变量n给变量赋值给变量赋值n创建如下形式的表达式给变量赋值:变量在表达式左边,要赋的值在表达式右边。例如:Dim Myname,Myage,MyschoolMyname=“王小二”Myage=18Myschool=“广东教育学院”4.VBScript 变量n数组变量数组变量n多数情况下,只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。n有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。数组变量和标量变量是以相同的方式声明的,唯一的区别是声明数组变量时
11、变量名后面带有括号()。下例声明了一个包含 11 个元素的一维数组:nDim A(10)n虽然括号中显示的数字是 10,但由于在 VBScript 中所有数组都是基于 0 的,所以这个数组实际上包含 11 个元素。n在基于 0 的数组中,数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。4.VBScript 变量n在数组中使用索引为数组的每个元素赋值。从 0 到 10,将数据赋给数组的元素,如下所示:nA(0)=256 nA(1)=324n A(2)=100n.nA(10)=55 n与此类似,使用索引可以检索到所需的数组元素的数据。例如:n.nSomeVariable=A
12、(8)n.4.VBScript 变量n动态数组n也可以声明动态数组,即在运行脚本时大小发生变化的数组。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。例如:nDim MyArray()nReDim AnotherArray()n 要使用动态数组,必须随后使用 ReDim 确定维数和每一维的大小。4.VBScript 变量n在下例中,ReDim 将动态数组的初始大小设置为 25,而后面的 ReDim 语句将数组的大小重新调整为 30,同时使用 Preserve 关键字在重新调整大小时保留数组的内容。nReDim MyArray(25)n.nReDi
13、m Preserve MyArray(30)n重新调整动态数组大小的次数是没有任何限制的,将数组的大小调小时,将会丢失被删除元素的数据。5.VBScript 常数n常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。nVBScript 定义了许多内部常数(由应用程序提供的常数。由于不能禁用内部常数,因此不能以相同的名称创建用户自定义常数。如Dim就不能定义为常数)。5.VBScript 常数n创建常数创建常数n您可以使用 Const 语句在 VBScript 中创建用户自定义常数。使用 Const 语句可以创建名称具有一定含义的字符串型或数值型常数,并给它们赋原义值。例如:nCons
14、t MyString=这是一个字符串。“n Const MyAge=49 n请注意字符串文字包含在两个引号(“”)之间。这是区分字符串型常数和数值型常数的最明显的方法。n日期文字和时间文字包含在两个井号(#)之间。例如:nConst CutoffDate=#6-1-97#6.VBScript 运算符 nVBScript 有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。n运算符优先级n当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号中的运算符,然后再执行括号
15、外的运算符。但是,在括号中仍遵循标准运算符优先级。n当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。6.VBScript 运算符n当乘号与除号同时出现在一个表达式中时,按从左到右的顺序计算乘、除运算符。同样当加与减同时出现在一个表达式中时,按从左到右的顺序计算加、减运算符。6.VBScript 运算符n字符串连接(&)运算符不是算术运算符,但是在优先级顺序中,它排在所有算术运算符之后和所有比较运算符之前。nIs 运算符是对象引用比较运算符。它并不比较对象或对象的值,而只是进行检查,判断两个对象
16、引用是否引用同一个对象。6.VBScript 运算符n连接运算符(&)n强制两个表达式进行字符串连接。nresult=expression1&expression2n参数nResult:任意变量。nexpression1:任意表达式。nExpression2:任意表达式。n说明n任一 expression 不是字符串时,它将被转换为 String 子类型。如果两个表达式都为 Null,result 也为 Null。然而,如果仅有一个 expression 为 Null,则它和其他表达式连接时,按零长度字符串()处理。任何表达式为 Empty 时也按零长度字符串处理。6.VBScript 运算符nIs 运算符n比较两个对象引用变量。nresult=object1 Is object2n参数nresult:任意数值变量。nobject1:任意对象名。nobject2:任意对象名。n说明n如果 object1 和 object2 都引用同一个对象,则 result 为 True;否则 result 为 False。可以使用许多方法使两个变量引用同一个对象。7.使用条件语句 n条件语句 nIf