2024年3月20日发(作者:)

COMPUTING SECURITY TECHNIQUES 计算机安全技术 

基于VB的Excel宏表病毒专杀工具设计与实现 

解必华 

(云南省楚雄农业学校,云南楚雄675000) 

摘要:基于VB的Excel宏表病毒专杀工具,具有清除硬盘、移动磁盘及用户指定目录中已知的Bo0k1宏表病毒 

及其他未知的Excel宏表病毒功能。本文分析宏表病毒的感染症状与原理,论述了程序的设计与实现。 

关键词:Excel;Book一病毒;宏病毒;专杀程序 

The Design and Realization of a Removal Macro Virus Tool Based on VB 

XIE Bihua 

(Yunnan Chuxiong Agricultural School,Yunnan Chuxiong 675000) 

Abstract:The programe of the Remov ̄Excel macro-sheet virus,can remove the excel macro—sheet virus such as Bookl— 

Vim in the hard drive,the removable disks and the directory.This paper analyzes the macro virus infection symptoms and 

principle,discusses the design and realization of the program. 

Key words:Excel;Book—Vim;Macro Vius;Kirlling Vius Programe r

1 引言 

Excel宏表病毒属于Excel宏病毒,具有一定的危害性、 

易传染、Excel普通用户难清除等特点。时下正流行的Bookl 

病毒,可认为是Excel宏表病毒的典型代表。通用杀毒软件一 

般不检查此类病毒或直接隔离、删除染毒Excel数据文件,给 

用户造成不必要的损失;手工逐文件清除病毒费时、费力, 

43个之多)。对于受感染的Excel文件,用户使用网易邮件服 

务器发送时,会被告知因邮件含病毒而未被发送。 

3 专杀工具设计与实现 

3.1程序功能 

Excel宏表病毒专杀程序的核心功能是干净、尽可能无损 

或微损清理目标计算机及用户Excel文件中的Excel宏表病毒, 

恢复Excel程序正常运行及用户Excel数据文件的正常使用。 

从方便用户使用角度,设计Excel宏表病毒专杀程序主要功能 

如下: 

效率与效益低。下文尝试论述以Visual Basic6.0作开发工具, 

开发主要针对Bookl病毒的Excel宏表病毒专杀软件。 

2 病毒原理及感染特征 

Excel宏表病毒通过在Excel工作簿文件中插入隐藏的 

Microsoft Excel 4.0宏表,向工作簿中定义若干名称,在宏表 

(1)全盘清理:对用户计算机整个硬盘各逻辑分区及插 

入计算机的各移动磁盘中的所有Excel工作簿文件逐个进行 

Excel宏表病毒检查与清理。 

中写入若干公式,实现向Excel启动文件夹Xlstart中检查或创 

建其无扩展名母病毒文件,向新工作簿及所打开工作簿复制 

宏表病毒。Excel宏表病毒利用Excel启动时自动加载Xlstart 

启动文件夹中文件、Excel 4.0宏表禁止宏运时不打开含宏表 

(2)U盘清理:仅对用户插入计算机的各移动磁盘中的所 

有Excel工作簿文件逐个进行Excel宏表病毒检查与清理。 

(3)目录清理:仅对用户指定的硬盘某一逻辑分区、插 

入计算机的某一移动磁盘或任一目录中的所有Excel工作簿文 

件逐个进行Excel宏表病毒检查与清理。 

(4)特殊文件隔离:对受损或用户无密码不能打开的Ex— 

cel工作簿文件,分别移动到专门目录,供用户删除处理,获 

得密码或文件修复后,使用“目录清理”功能清理。 

(5)Excel清理:无论上述哪种清理,均首先清除Excel 

的相应工作簿、Exce1名称与公式在工作簿打开后自动运算功 

能,激发自身运行,实现Excel感染与文件感染及自身传播。 

计算机感染Excel宏表病毒后,在Program Files\Microsoft 

Ofifce\OfficekXlstart目录,甚至各Windows用户的Application 

Data\MierosoftkExcelkXLSTART目录中,会被创建一个可用Ex— 

cel打开的无扩展名文件)或扩展名为.xls的文件(Bookl病毒 

均命名为“Bookl”)。用户启动Excel或打开Excel文件并禁用 

宏时,Excel提示“该工作簿中含有一种无法被禁用又无法被 

签署的宏(Microsoft Excel 4.0版的宏……”。若用户选择不打 

开工作簿,目标丁作簿文件将不被打开。若用户选择启用宏 

启动目录中的宏表病毒文件。 

3.2查杀算法 

依据Excel宏表病毒感染原理,设计清除算法如下: 

(1)清除Programe程序目录中的Excel主病毒文件。 

打开工作簿,宏表病毒文件(Bookl病毒为“Bookl”文件) 

将被同时打开,宏表病毒自动运行,完成对所打开工作簿文 

件的感染;用户使用工作表取消隐藏操作或使用VBA代码设 

置所有工作表Visible属性为True,可看到被隐藏的病毒宏表 

(Bookl病毒为“O0000ppy”);在Excel“定义名称”对话框名 

(2)清除各Windows用户目录中的Excel主病毒文件甚至 

Excel菜单栏与工具栏配置文件。 

作者简介:解必华(1973一),男,讲师,研究方向:办公自 

动化与信息管理。 

收稿日期:2011-10—11 

称列表中,用户可找到若干非自己定义的名称(Bookl病毒有 

。参 -t柚 4 , 

电脑编程技巧与维护 

(3)清除硬盘各分区、移动磁盘或用户指定目录一辛受感 主要通过Do While……Loop循环、For……Next循环与 

Sub过程递归调用实现。在Do While……Loop循环中,通过Ⅱ 

染Excel工作簿文件中的病毒宏表和病毒定义名称,原路径、 

原名另存文件。 

(4)对受损与用户无密码不能打开的Excel工作簿文件, 

分别移动到专门目录“受损工作簿”与“加密工作簿”。 

3-3程序开发 

语句和GetAttr函数,实现对目录中子目录的判断及数量获取; 

在For……Next循环中,通过递归调用实现对各级子目录中工 

作簿文件的遍历;在Do While……Loop循环中,调用工作簿 

文件中病毒体清除过程,实现目录中所有工作簿文件的打开 

及病毒清理。 

(1)VB访问Excel程序 

VB中调用Excel,需添加对Excel的引用,Excel2003的 

引用项目为“Microsoft Excel 1 1.0 Object Library”。模块过程或 

事件过程中调用Excel打开工作簿前,先定义Excel程序、工 

作序簿、工作表对象并实例化。调用Excel完成一个染毒文件 

(6)工作簿文件中病毒体清除 

程序成功打开工作簿文件后,分两步清除病毒体,原路 

径、原名另存文件即可。首先,对于用户未知的宏表病毒, 

使用For Each……Next循环遍历WorkSheets集合,将其中的 

病毒体清理任务后,应释放定义的Excel程序、工作簿、工作 

表对象变量。 

(2)用户组遍历及主病毒文件清除 

Excel 4.0宏表全部删除(会导致用户的非病毒宏表删除);对 

于用户已知的Bookl病毒,不用遍历,使用Sheets 

(“O0000ppy”).delete删除其病毒宏表“00000ppy”。然后,对 

于用户未知的宏表病毒,使用For Each……Next循环遍历Ex— 

使用系统环境变量Environ(”SystemDrive”)获取系统盘 

盘符,使用FileSystem0biect对象的GetFolder方法获取各 

Windows用户文件夹所在的Documents and Settings文件夹。通 

过For Each……Next循环与Kill语句实现对Windows用户组 

的遍历,并删除各Windows用户目录中Excel启动文件夹中的 

病毒文件。 

(3)硬盘分区与移动磁盘遍历 

对磁盘的遍历,可调用Windows API函数中的GetLogi— 

calDriveStrings函数与GetDriveType函数实现,故需在VB工 

程声明部分,先声明两函数。GetLogicalDrivestrings函数用于 

获取所有逻辑驱动器的根驱动器路径;GetDriveType函数用于 

判断磁盘驱动器的类型。程序只对硬盘

DRIVE

cel的Names集合,将其中的名称定义全部删除(会导致用户 

定义的名称删除);对于用户已知的Book1病,只删除其病毒 

名称定义43个即可。 

4 结语 

基于VB的Excel宏表病毒专杀程序,是一款适用、小 

巧,对染毒Excel文件无损或微损清除宏表病毒体的绿色软 

件,可作为VB程序设计的教学范例或实训开发项目。 

参考文献 

[1]STEPHEN BULLEN,等,著.杜茂康,刘友军,等,译. 

Excel专业开发[M】.北京:电子工业出版社,2007. 

[2]张更路,董岩,高仕军.查杀Rose病毒的程序设计.电 

脑编程技巧与维护,2006(9). 

(类型值为 

FIXED)、移动磁盘(类型值为DRIVE—REMOVABLE) 

进行遍历和病毒清理。遍历通过Do……Loop Until循环实现。 

(4)目录及工作簿文件遍历 

(5)对目录及工作簿文件的遍历 

(上接第117页) 

Router(config-router)#net 1.1.1.2 0.0.0.0 area 0 

Router(config-router)#net 2.2.2.0 0.0.0.255 area 0 

Router(config-router)#exit 

R3: 

R2: 

Router#config t 

Router(config)#router ospf 100 

Router(config-router)#area 0 authentication mes- 

sage——digest Router#configt 

Router(config-router)#router ospf 100 

Router(config-router)#net 1.1.1.3 0.0.0.0 area 0 

Router(config-router)#int eO 

Router(config—if)#ip ospf message—digest—key 1 

md5 cisco 

R3: 

Router#config t 

Router(config-router)#net 3.3.3.3 0.0.0.255 area 0 

Router(config-router)#exit 

启用md5认证: 

R1: 

Router(config)#router ospf 100 

Router(config-router)#area 0 authentication mes- 

sage。‘digest 

Router#config t 

Router(config)#router ospf 100 

Router(config-router)#area 0 authentication mes- 

sage——digest 

Router(config-router)#int e0 

Router r config—i)#ifp ospf message—digest—key 1 

md5 cisco 

Router(config—router)#int eO 

Router(config—if)#ip ospf message—digest—key 1 

md5 CiSCO 

冀鼗