毕业设计(论文)-一种简单的计算机病毒的实现_第1页
毕业设计(论文)-一种简单的计算机病毒的实现_第2页
毕业设计(论文)-一种简单的计算机病毒的实现_第3页
毕业设计(论文)-一种简单的计算机病毒的实现_第4页
毕业设计(论文)-一种简单的计算机病毒的实现_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

一种简单的计算机病毒的实现一种简单的计算机病毒的实现 摘摘 要要 计算机病毒是干扰计算机正常运行并造成计算机软硬件故障,破坏计算机 数据的能进行自我复制的计算机程序或指令集合。随着计算机在社会生活各个 领域的广泛应用,计算机病毒攻击与防范技术也在不断拓展,防范计算机病毒 也越来越受到高度重视。本论文从脚本病毒的基本理论和实现脚本病毒的关键 技术出发,实现了一个简单的脚本病毒,深入分析了脚本病毒的机制及原理。 本论文概述了计算机病毒的发展历史,发展趋势,简单介绍了实现脚本病毒所 需要的VBScript,Windows脚本宿主(WSH)以及注册表的基本知识。重点讲 述了该脚本病毒的工作原理以及各个模块所使用的主要技术,并以该脚本病毒 的源代码为例,分析了设计思路,感染模块,破坏模块,标记模块的功能,实 现了脚本病毒采用递归算法进行的搜索磁盘机制和感染机制。 关键词:关键词:计算机病毒;注册表;Windows 脚本宿主;递归算法 Implementation of a Kind of Simple Computer Virus Abstract The computer virus is a self-copy computer program or a set of instruction that disturbs the computers normal operation. It can cause the computer software and hardware breakdown, and destroy the computer data. With the widespread application of computer in the social life of each area, the technology of computer virus assault and anti-virus is continuously developing, the technology of anti-virus attract more and more attention. Based on the script viruss theory and script viruss essential technology, a simple script virus is implemented and the script viruss mechanism and principle is analyzed. We outlined computer viruss history, tendency, some simply basic knowledge of VBScript, Windows Script Host and registry which the implementation of script virus requires. Then we focus on the principle of script virus and the main technology of each module, take the source code for instance, analyze the thought of the design, the function of infection module, deleting module and marking module. At last we introduce the infection mechanism and the disk searching mechanism which the recursion algorithm carries on. Key words: Computer virus; registry; Windows Script Host; Recursion algorithm 目目 录录 论文总页数:23 页 1 引 言.1 2 病毒的发展史.1 2.1 计算机病毒的发展历史.1 2.2 计算机病毒的当前状况.1 2.3 计算机病毒的发展趋势.2 3 相关工具简要介绍.3 3.1 WSH(WINDOWS SCRIPT HOST)介绍 .3 3.2 VBSCRIPT语言简介.5 3.3 注册表基本知识.6 4 VBSCRIPT 脚本病毒特点及原理分析.7 4.1 VBSCRIPT脚本病毒的特点.7 4.2 VBSCRIPT脚本病毒原理分析.8 4.2.1 感染破坏文件部分.8 4.2.2 修改注册表.8 4.2.3 设置感染标记.8 5 脚本病毒的实现.8 5.1 脚本病毒必要知识.8 5.1.1 获取文本文件对象.9 5.1.2 对文件的操作.10 5.2 功能流程图.11 5.3 设计思路.11 5.4 功能模块实现.11 5.4.1 主函数模块.11 5.4.2 感染文件模块.14 5.4.3 搜索文件模块.15 5.4.4 破坏模块.16 5.4.5 注册表操作模块.17 5.4.6 感染标记模块.19 结 论.20 参考文献.21 致 谢.22 声 明.23 商业源代码,全套计算机毕业设计免费下载 更多全套设计联系 QQ:1042897696 最新设计大全 第 1 页 共 23 页 1 1 引引 言言 近年来计算机技术高速发展,各种各样的新技术得到了应用,新技术的发 展为我们带来了方便,使信息交流更加快捷有效,而病毒也随着计算机技术的 广泛应用而得到了发展,从 DOS 到 Windows 再到 Internet,病毒无处不在,甚 至愈演愈烈,对计算的破坏也在不断升级,研究病毒原理及结构迫在眉睫。知 己知彼,百战百胜,研究计算机病毒有助于反病毒技术的发展,了解病毒的原 理和结构才能清除和防治病毒,减少病毒给我们带来的损失。 本文以一个脚本病毒为例,分别解析了计算机病毒的感染模块、破坏模块、 搜索模块,解析病毒程序的一般结构。分析了各模块的功能特征,以及实现了 一个脚本病毒,达到对脚本病毒原理进行深入分析的目的。 此文的目的在于了解病毒的发展状况及病毒程序的设计思路,掌握病毒基 础知识,使我们能够尽早的防治和尽快的发现病毒的存在,提高计算机的安全 性,意义不言而喻。 2 2 病毒的发展史病毒的发展史 2.12.1 计算机病毒计算机病毒的发展历史的发展历史 到了 1987 年,第一个电脑病毒 C-BRAIN 终于诞生了。一般而言,业界都 公认这是真正具备完整特征的电脑病毒始祖。这个病毒程序是由一对巴基斯坦 兄弟:巴斯特(Basit)和阿姆捷特(Amjad)所写的,他们在当地经营一家贩 卖个人电脑的商店,由于当地盗拷软件的风气非常盛行,因此他们的目的主要 是为了防止他们的软件被任意盗拷。只要有人盗拷他们的软件,C-BRAIN 就会 发作,将盗拷者的硬盘剩余空间给吃掉。 这个病毒在当时并没有太大的杀伤力,但后来一些有心人士以 C-BRAIN 为蓝图,制作出一些变形的病毒。而其他新的病毒创作,也纷纷出笼,不仅有 个人创作,甚至出现不少创作集团(如 NuKE,Phalcon/Skism,VDV)。各类 扫毒、防毒与杀毒软件以及专业公司也纷纷出现。一时间,各种病毒创作与反 病毒程序,不断推陈出新,百家争鸣。 2.22.2 计算机病毒计算机病毒的当前状况的当前状况 1计算机网络(互联网、局域网)成为计算机病毒的主要传播途径,使用 计算机网络逐渐成为计算机病毒发作条件的共同点。 计算机病毒最早只通过文件拷贝传播,当时最常见的传播媒介是软盘和盗 版光碟。随着计算机网络的发展,目前计算机病毒可通过计算机网络利用多种 方式(电子邮件、网页、即时通讯软件等)进行传播。计算机网络的发展有助 于计算机病毒的传播速度大大提高,感染的范围也越来越广。可以说,网络化 第 2 页 共 23 页 带来了计算机病毒传染的高效率。与以前计算机病毒给我们的印象相比,计算 机病毒的主动性(主动扫描可以感染的计算机)、独立性(不再依赖宿主文件) 更强了。 2计算机病毒变形的速度极快并向混合型、多样化发展 计算机病毒向混合型、多样化发展的结果是一些病毒会更精巧,另一些病 毒会更复杂,混合多种病毒特征,如红色代码病毒(Code Red)就是综合了文 件型、蠕虫型病毒的特性,这种发展趋势会造成反病毒工作更加困难。2004 年 1 月 27 日,一种新型蠕虫病毒在企业电子邮件系统中传播,导致邮件数量暴增, 从而阻塞网络。不同反病毒厂商将其命名为 Novarg、Mydoom、SCO 炸弹、诺 威格、小邮差变种等,该病毒采用的是病毒和垃圾邮件相结合的少见战术,不 知情用户的推波助澜使得这种病毒的传播速度似乎比近来其他几种病毒的传播 速度要快。 3运行方式和传播方式的隐蔽性 微软安全中心发布的漏洞安全公告中 MS04-028 所提及的 GDI+漏洞,危害 等级被定为“严重”。在被计算机病毒感染的计算机中,你可能只看到一些常 见的正常进程如 svchost、taskmgr 等,其实它是计算机病毒进程。 4利用操作系统漏洞传播 操作系统是联系计算机用户和计算机系统的桥梁,也是计算机系统的核心, 目前应用最为广泛的是 WINDOWS 系列的操作系统。随着 DOS 操作系统使用 率的减少,感染 DOS 操作系统的计算机病毒也将退出历史舞台;随着 WINDOWS 操作系统使用率的增加,针对 WINDOWS 操作系统的计算机病毒 将成为主流。 5计算机病毒技术与黑客技术将日益融合 严格来说,木马和后门程序并不是计算机病毒,因为它们不能自我复制和 扩散。但随着计算机病毒技术与黑客技术的发展,病毒编写者最终将会把这两 种技术进行了融合。 6物质利益将成为推动计算机病毒发展的最大动力 从计算机病毒的发展史来看,对技术的兴趣和爱好是计算机病毒发展的源 动力。但越来越多的迹象表明,物质利益将成为推动计算机病毒发展的最大动 力。 如今,不少银行都提供网上验证或密码钥匙,用户千万不要只图节省费用而冒 失去巨大资金风险。买密码钥匙或数字证书是相当必要的。 2.32.3 计算机病毒计算机病毒的发展趋势的发展趋势 对所有脚本类病毒发展的展望:随着网络的飞速发展,网络蠕虫病毒开始 第 3 页 共 23 页 流行,而 VBS 脚本蠕虫则更加突出,不仅数量多,而且威力大。由于利用脚本 编写病毒比较简单,除了将继续流行目前的 VBS 脚本病毒外,将会逐渐出现更 多的其它脚本类病毒,譬如 PHP,JS,Perl 病毒等。但是脚本并不是真正病毒 技术爱好者编写病毒的最佳工具,并且脚本病毒解除起来比较容易、相对容易 防范。脚本病毒仍将继续流行,但是能够具有像爱虫、新欢乐时光那样大影响 的脚本蠕虫病毒只是少数。计算机病毒的发展趋势: 1高频度 病毒疫情发作的频率高。造成较大影响的计算机病毒达到百余种之多。恶 性病毒的比例大,病毒对计算机用户的危害增大; 2传播速度快,危害面广 由于网络的特征决定了国内计算机病毒几乎与国外病毒疫情同步爆发,且 迅速大面积流行。目前对用户安全威胁最大的是恶性网络蠕虫病毒 3病毒制作技术新 与传统的计算机病毒不同的是,许多新病毒是利用当前最新的编程语言与 编程技术实现,易于修改以产生新的变种,从而逃避反病毒软件的搜索。例如 “爱虫”病毒是用 VBScript 语言编写的,只要通过 Windows 下自带的编辑软 件修改病毒代码中的一部分,就能轻而易举地制造病毒变种,以躲避反病毒软 件的追击。 4病毒形式多样化 病毒呈现多样化的趋势。病毒分析显示,虽然新病毒不断产生,但较早的 病毒发作仍很普遍,并向卡通图片、ICQ、OICQ 等方面发展。 此外,新的病 毒更善于伪装,如主题会在传播中改变,许多病毒会伪装成常用程序,或者将 病毒代码写入文件内部长度而不发生变化,用来麻痹计算机用户。 5病毒生成工具 以往计算机病毒都是编程高手制作的,编写病毒显示自己的技术。“库尔 尼科娃”病毒的设计者只是修改下载的 VBS 蠕虫孵化器,“库尔尼科娃”病毒 就诞生了。据报道,VBS 蠕虫孵化器被人们下载了十五万次以上。由于这类工 具在网络上可以很容易地获得,使得现在新病毒出现的频率超出以往任何时候。 3 3 相关工具简要介绍相关工具简要介绍 3.13.1 WSH(Windows Script Host)介绍)介绍 VBS 代码在本地是通过 Windows Script Host(WSH)解释执行的。VBS 脚本 的执行离不开 WSH,WSH 是微软提供的一种基于 32 位 Windows 平台的、与 语言无关的脚本解释机制,它使得脚本能够直接在 Windows 桌面或者命令提示 第 4 页 共 23 页 符下运行。利用 WSH,用户能够操纵 WSH 对象、ActiveX 对象、注册表和文 件系统等。 1概述 WSH,是“Windows Scripting Host”的缩略形式,其通用的中文译名为 “Windows 脚本宿主”。它是内嵌于 Windows 操作系统中的脚本语言工作环境。 Windows Scripting Host 这个概念最早出现于 Windows 98 操作系统。MS-Dos 下的批处理命令类似于如今的脚本语言。微软在研发 Windows 98 时,为了实现 多类脚本文件在 Windows 界面或 Dos 命令提示符下的直接运行,就在系统内植 入了一个基于 32 位 Windows 平台、并独立于语言的脚本运行环境,并将其命 名为“Windows Scripting Host”。WSH 架构于 ActiveX 之上,通过充当 ActiveX 的脚本引擎控制器,WSH 为 Windows 用户充分利用威力强大的脚本 指令语言扫清了障碍。 2组成 WSH 自带的几个内置对象包括: 由 Wscript.exe 提供的对象 Wscript 作为 Wscript 公开给脚本引擎。 WshArguments 通过 Wscript.Arguments 属性访问。 由 WSHom.Ocx 提供的对象。 WshShortcut 通过 WshShell.CreateShortcut 方法访问。 WshUrlShortcut 通过 WshShell.CreateShortcut 方法访问。 WshCollection 通过 WshNetwork.EnumNetworkDrives 访问。 WshEnvironment 通过 WshShell.Environment 属性访问。 WshSpecialFolders 通过 WshShell.Folder 属性访问。 它们主要可以完成环境变量的获取,网络登陆,驱动器映射,快截方式创 建,程序加载,特殊文件夹(如系统文件夹)信息获取等功能。 3WSH 的作用 WSH 的设计,在很大程度上考虑到了“非交互性脚本(no interactive scripting)”的需要。在这一指导思想下产生的 WSH,给脚本带来非常强大的 功能,可以利用它完成映射网络驱动器、检索及修改环境变量、处理注册表项 等工作;管理员还可以使用 WSH 的支持功能来创建简单的登陆脚本,甚至可 以编写脚本来管理活动目录。而事实上,上述功能的实现,均与 WSH 内置的 多个对象密切相关,这些内置对象肩负着直接处理脚本指令的重任。 WSH 共有 14 个内置对象,它们各自有着明确分工。具体而言,位于最底 部的 Wscript,主要作用是提取命令行变量,确定脚本文件名,确定 WSH 执行 第 5 页 共 23 页 文件名(wscript.exe 还是 cscript.exe),确认 host 版本信息,创建、关连及分 离 COM 对象,写入事件,按程序结束一个脚本文件的运行,向默认的输出设 备(如对话框、命令行)输出信息等;WshArguments 的作用是获取全部的命令 行变量;WshNamed 负责获取指定的命令行参数集;WshUnnamed 负责获取未 经指定的命令行参数集;WshNetwork 的主要作用是开放或关闭网络共享,连接 或断开网络打印机,映射或取消网络中的共享,获取当前登陆用户的信息; WshController 可以创建一个远程脚本对象;WshRemote 可以实现网络中对计算 机系统的远程管理,也可按计划对其它程序/脚本进行处理;WshRemote Error 的作用在于:当一个远程脚本(WshRemote 对象)因脚本错误而终止时,获取 可用的错误信息;WshShell 主要负责程序的本地运行,处理注册表项、创建快 捷方式、获取系统文件夹信息,处理环境变量;WshShortcut 主要用于按计划创 建快捷方式;WshSpecialfolders 用于获取任意一个 Windows 特殊文件夹的信息; WshURLShortcut 用于按程序要求创建进入互联网资源的快捷方式; WshEnvironment 用于获取任意的环境变量(如 WINDIR,PATH,或 PROMPT); WshScriptExec 用于确定一个脚本文件的运行状态及错误信息。 商业源代码,全套计算机毕业设计免费下载 更多全套设计联系 QQ:1042897696 最新设计大全 3.23.2 VBScript 语言简介语言简介 Microsoft Visual Basic Scripting Edition 是程序开发语言 Visual Basic 家族的 最新成员,它将灵活的脚本应用于更广泛的领域,包括 Microsoft Internet Explorer 中的 Web 客户机脚本和 Microsoft Internet Information Server 中的 Web 服务器 Script。 ActiveX Script VBScript 使用 ActiveX(R)脚本与宿主应用程序对话。使用 ActiveX Script, 浏览器和其他宿主应用程序不再需要每个脚本部件的特殊集成代码。ActiveX 脚本使宿主可以编译 Script、获取和调用入口点及管理开发者可用的命名空间。 通过 ActiveX Script,语言厂商可以建立标准脚本运行时语言。Microsoft 将提供 VBScript 的运行时支持。Microsoft 正在与多个 Internet 组一起定义。ActiveX 脚 本标准以使脚本引擎可以互换。ActiveX 脚本可用在 Microsoft(R) Internet Explorer 和 Microsoft(R) Internet Information Server 中。 VBScript 是 Microsoft Visual Basic 的简化版本。编程方法和 Visual Basic 基 本相同。VBScript 只有一种数据类型,即,Variant 类型。 VBScript 不支持 Visual Basic 中传统的 I/O 功能,即不能通过 Open 语句和 第 6 页 共 23 页 函数在客户机上读写文件,这样防止了可能对客户机造成的危害;VBScript 不 能调用 API 函数,这是因为 API 函数调用会危及客户机的安全,如病毒可以轻 而易举地通过 API 函数调用来破坏客户机;Visual Basic 支持 Screen、Printer、App、Debug、Err 和 Clipboard 等系统对象,但 VBScript 只支 持 Err 对象,该对象用于为应用程序提供运行时错误处理。 VBScript 既可编写服务器脚本,也可编写客户端脚本。 客户端编程语言的优点是浏览器完成了所有的工作,这可以减轻服务器的 负担,客户端程序运行起来比服务器端程序快得多。 3.33.3 注册表基本知识注册表基本知识 Windows 注册表是帮助 Windows 控制硬件、软件、用户环境和 Windows 界面的一套数据文件,注册表包含在 Windows 目录下两个文件 system.dat 和 user.dat 里。通过 Windows 目录下的 regedit.exe 程序可以存取注册表数据库。 在以前,在 windows 的更早版本(在 Win95 以前),这些功能是靠 win.ini,system.ini 和其他和应用程序有关联的.ini 文件来实现的. 注册表(Registry)是操作系统、硬件设备以及客户应用程序得以正常运行 和保存设置的核心“数据库”;是一个巨大的树状分层的数据库。它记录了用 户安装在机器上的软件和每个程序的相互关联关系;它包含了计算机的硬件配 置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各 种状态信息和数据等。 在系统中注册表是一个记录 32 位驱动的设置和位置的数据库。当操作系统 需要存取硬件设备,它使用驱动程序,甚至设备是一个 BIOS 支持的设备。无 BIOS 支持的设备安装时必须需要驱动,这个驱动是独立于操作系统的,但是操 作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注 册表对设备的记录,它们就不能被使用。 WINDOWS 的注册表有六大根键: 1HKEY_USERS 该根键保存了存放在本地计算机口令列表中的用户标识和密码列表,即用 户设置。每个用户的预配置信息都存储在 HKEY_USERS 根键中。 HKEY_USERS 是远程计算机中访问的根键之一。其内容取决于计算机是否激 活了用户配置文件,若未激活用户配置文件,则可以看到称为.DEFAULT 的单 一子键,该子键包括和所有用户相关的各种设置,并且和Windows 下的 USER.DAT 文件相配合。若激活了用户配置文件并且正确地执行了登录,则还 有一个“用户名”的子键,该用户名为用户登录的名称。 2HKEY_CURRENT_USER 第 7 页 共 23 页 该根键包含本地工作站中存放的当前登录的用户信息,包括用户登录用户名 和暂存的密码。 3HKEY_CURRENT_CONFIG 该根键存放着定义当前用户桌面配置(如显示器等)的数据,最后使用的文档 列表(MRU)和其他有关当前用户的 Windows 98 中文版的安装的信息。 4HKEY_CLASSES_ROOT 该键由多个子键组成,具体可分为两种:一种是已经注册的各类文件的扩 展名,另一种是各种文件类型的有关信息。左栏中的子键就是各种已经注册的 文件扩展名。注册表内己经登记的文件扩展名中,有系统默认和应用程序自定 义的扩展名。应用程序只有把自定义的扩展名在注册表中登记,系统才能识别 和关联使用有关的文档,但只有经过注册的扩展名,系统才能自动关联。 5HKEY_LOCAL_MACHINE 注册表的核心,计算机的各种硬件和软件的配置均存在于此。它包括以下 八个部分:Config 配置、Driver 驱动程序、Enum 即插即用、Hardware 硬件、 Network 网络、Security 安全、Software 软件、System 系统。每部分中又包括许 多子键。该根键存放本地计算机硬件数据,此根键下的子关键字包括在 SYSTEM.DAT 中,用来提供 HKEY_LOCAL_MACHINE 所需的信息,或者在远程 计算机中可访问的一组键中。该根键中的许多子键与 System.ini 文件中设置项 类似。 6HKEY_DYN_DATA 该根键存放了系统在运行时动态数据,此数据在每次显示时都是变化的, 因此,此根键下的信息没有放在注册表中。 4 4 VBScript 脚本病毒脚本病毒特点及原理分析特点及原理分析 4.14.1 VBScript 脚本病毒的特点脚本病毒的特点 VBS 病毒是用 VBScript 编写而成,该脚本语言功能非常强大,它们利用 Windows 系统的开放性特点,通过调用一些现成的 Windows 对象、组件,可以 直接对文件系统、注册表等进行控制,功能非常强大。应该说病毒就是一种思 想,但是这种思想在用 VBS 实现时变得极其容易。VBS 脚本病毒具有如下几 个特点: 1编写简单,一个以前对病毒一无所知的病毒爱好者可以在很短的时间里 编出一个新型病毒来。 2破坏力大。其破坏力不仅表现在对用户系统文件及性能的破坏。他还可 以使邮件服务器崩溃,网络发生严重阻塞。 3感染力强。由于脚本是直接解释执行,并且它不需要像 PE 病毒那样, 第 8 页 共 23 页 需要做复杂的 PE 文件格式处理,因此这类病毒可以直接通过自我复制的方式 感染其他同类文件,并且自我的异常处理变得非常容易。 4传播范围大。这类病毒通过 htm 文档,Email 附件或其它方式,可以在 很短时间内传遍世界各地。 5病毒源码容易被获取,变种多。由于 VBS 病毒解释执行,其源代码可 读性非常强,即使病毒源码经过加密处理后,其源代码的获取还是比较简单。 因此,这类病毒变种比较多,稍微改变一下病毒的结构,或者修改一下特征值, 很多杀毒软件可能就无能为力。 6欺骗性强。脚本病毒为了得到运行机会,往往会采用各种让用户不大注 意的手段,譬如,邮件的附件名采用双后缀,如“.jpg”,“.vbs”,由于系统 默认不显示后缀,这样,用户看到这个文件的时候,就会认为它是一个 jpg 图 片文件。 7使得病毒生产机实现起来非常容易。 8vbs 脚本病毒的弱点 vbs 脚本病毒由于其编写语言为脚本,因而它不会像 PE 文件那样方便灵活, 它的运行是需要条件的。 1)绝大部分 VBS 脚本病毒运行的时候需要用到一个对象: FileSystemObject。 2)VBScript 代码是通过 Windows Script Host 来解释执行的。 3)VBS 脚本病毒的运行需要其关联程序 Wscript.exe 的支持。 4)通过网页传播的病毒需要 ActiveX 的支持。 5)通过 Email 传播的病毒需要 OE 的自动发送邮件功能支持,但是绝大部 分病毒都是以 Email 为主要传播方式的。 4.24.2 VBScript 脚本病毒原理分析脚本病毒原理分析 4.2.14.2.1 感染破坏文件部分感染破坏文件部分 定义系统文件操作对象,通过 getfolder 方法得到文件夹下的所有文件,通 过 getextentionname 方法得到所有文件的后缀名,比较后缀名,如果后缀名是 “html”,“htm”,“xls”,“doc”,“ppt”,“vbs”,则将 vbscopy 变量 写入文件,覆盖原文件的内容,实现感染功能。如果后缀名是“exe”, “com”,“bat”,则直接删除文件。递归调用上述步骤。 4.2.24.2.2 修改注册表修改注册表 定义修改注册表过程 regcreate,调用 regcreate 过程实现注册表的修改 第 9 页 共 23 页 4.2.34.2.3 设置感染标记设置感染标记 打开当前文件,读入当前文件,判断是否有“Rem You have infected by raul virus”字段。如果匹配,则该文件已经被感染,如果无匹配,则实行感染操作。 感染操作为读入病毒代码。 具体步骤及实现代码请参见下一部分。 5 5 脚本病毒的实现脚本病毒的实现 5.15.1 脚本病毒必要知识脚本病毒必要知识 FSO 简介 FSO(File System Object)对象模型能对文件系统进行访问处理。该模型提 供了一个基于对象的工具,通过它所提供的一系列属性和方法,可以在应用程 序中更简单、灵活地对文件系统进行各种操作。 FSO 对象模型包含以下几种对象: Drive 对象:允许收集系统物理或通过 LAN 与系统逻辑连接的硬盘、 CDROM 等驱动器的可用空间、共享名等信息。 Folder 对象:允许创建、删除或移动文件夹,并向系统查询文件夹的名称、 路径等。 Files 对象:允许创建、删除或移动文件,并向系统查询文件的名称、路径 等。 TextStream 对象:允许创建和读写文本文件。 FileSystemObject 对象:提供一整套用于驱动器、文件夹和文件操作的方法, 在功能上可以把它看作是上面几个对象的集合并且经常与它们配合使用。与该 对象相关联的很多方法重复了前面四个对象中的方法,因此既可以通过 FileSystemObject 对象来对驱动器、文件夹和文件进行大多数操作,也可以通过 对应的驱动器、文件夹或文件对象对这些组件进行操作。FSO 模型通过两种方 法实现对同一对象的操作,其操作效果是相同的,提供这种冗余功能的目的是 为了实现最大的编程灵活性。 5.1.15.1.1 获取文本文件对象获取文本文件对象 1创建一个 FileSystemObject 对象实例要进行文件操作,首先必须创建一 个 FileSystemObject 对象实例,用来创建或打开一个文件创建一个 FileSystemObject 对象实例的具体格式为(以 FSO)为例:Set FSO = CreateObject(Scripting.FileSystemObjecct) 2用 FileSystemObjec 来获取文本文件对象 TextStreamFileSystemObject 提 供了两种方法用于获取文本文件对象 TextStream,其中用于创建文件的是 CreateTextFile,用于打开已存在文件的是 OpenTextFile,两种方法的返回结果 第 10 页 共 23 页 都是一个 TextStream 对象的实例,利用该对象可以进行文件的具体操作 创建一个新文件 创建新文件的方法的具体格式为(以 FSO 为例): FSO.CreateTextFile(NewFileName,OverwriteExistingFile,IsUnicode) 其中:NewFileName 是一个 string 值,指定要建立的文件的名称,通常为 文件的实际路径加文件名称。 OverwriteExistingFile 是一个 Boolean 值,表示如果有同名文件存在时是否 覆盖原来的文件该参数可以省略,缺省时为 False,即不覆盖原来文件 IsUnicode 是一个 Boolean 值,表示要建立的文件是 ASCII 文件还是 Unicode 文件,该参数可以省略,缺省时为 False,即为 ASCII 文件 打开已存在的文件 打开已存在文件的方法的具体格式为(以 FSO 为例): FSO.OpenTextFile(FileName,IOMode,create,format)其中: FileName 是一个 string 值,指定要打开的文件的名称,通常为文件的实际 路径加文件名称。 IOMode 是常数值,表示打开文件的目的,ForReading(1)表示用于读取数据; ForAppending 表示用于增加数据该参数可以省略,缺省时为 ForReading Create 是一个 Boolean 值,表示要打开的文件不存在时是否创建新文件, 该参数可以省略,缺省时为 False,即不创建新文件。 Format 表示文件打开的方式其可能的值及含义如下: TristateTrue:以 Unicode 的方式打开。 TristateFalse:以 ASCII 的方式打开。 TristateUseDefault:以系统默认的方式打开。 该参数可以省略,缺省时为 TristateFalse,即 ASCII 方式 5.1.25.1.2 对文件的操作对文件的操作 在建立或打开了文件之后,就可利用对象 TextStream 提供的方法进行文件 的实际操作了 1用于写操作的方法有: Write(string) 将由 string 指定的字符串写入到文件中。 WriteLine(string) 在文件中写入由 string 指定的字符串,并写入一个换行字符。 第 11 页 共 23 页 参数 string 可以省略,此时将在文件中插入一个空行。 WriteBlankLines(NumOfLines) 在文件中插入若干空行,行数由 NumOfLines 指定。 2用于读操作的方法和属性方法有: AtEndOfLine 该属性是一个 Boolean 值,表示文件指针是否已指向当前行的行尾。 AtEndOfStream 该属性是一个 Boolean 值,表示文件指针是否已指向文件尾。 Column 该属性是一个整数值,表示文件指针在当前行中的位置。 Line 该属性是一个整数值,表示文件指针所在行的行号。 Read(NumOfCharacters) 该方法从文件当前位置开始,读入由 NumOfCharacters 数目指定的若干字 符,返回一个字符串。 ReadLine 该方法从文件当前位置开始,读入当前行的内容直到行尾,返回一个字符 串。 ReadAll 该方法从当前位置开始,读入整个文件的内容直到文件结束,返回一个字 符串。 Skip(NumOfCharacters) 该方法从文件当前位置开始,跳过由 NumOfCharacters 数目指定的若干字 符。 SKipLine 该方法从文件当前位置开始,跳过当前行的内容。 3用于关闭文件的方法有: Close 关闭已经建立或打开的文件。 5.25.2 功能流程图功能流程图 脚本病毒程序流程:首先是初始化工作及创建主函数过程,其次是搜索文 件,选择某一文件并判断感染条件,如果已经感染,则结束感染破坏文件模块, 并选择下一文件。如果未感染,则执行感染破坏文件模块,再选择下一文件。 并使用递归算法调用搜索文件模块本身,对子文件夹进行操作。对磁盘搜索, 文件感染破坏操作完成后,执行注册表修改操作,最后结束程序。如图 1 所示 第 12 页 共 23 页 5.35.3 设计思路设计思路 1初始化部分:定义相关全局变量。 2主函数部分:使用系统文件操作(FSO)对象来对各个文件进行操作, 调用 scan 过程,磁盘遍历过程,注册表操作过程。 3文件搜索部分:使用系统文件操作对象,通过调用 getfolder 方法,得 到路径下的文件,再用递归算法,调用过程本身,实现对自文件夹的访问。 4文件破坏部分:判断文件后缀,如果符合条件,执行删除操作。 5文件感染部分:如果文件未感染,则将脚本病毒自身代码覆盖源文件, 实现对目标文件的感染。 6注册表操作部分:创建注册表键值修改过程,再调用该过程对注册表进 行修改操作。 5.45.4 功能模块实现功能模块实现 5.4.15.4.1 主函数模块主函数模块 该模块主要用到的对象: CreateObject 对象 创建注册表对象 该模块主要用到的方法: RegRead 方法 读注册表键值 Regcreate 方法 创建注册表键值 否 是 是 搜索文件 选择文件 执行破坏模块 开始 初始化 文件是否 感染 执行感染模块 搜索文件

温馨提示

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

评论

0/150

提交评论