前言
本文仅讨论windows office系列,wps系列原理大致相同。
宏是什么?
宏就是一些命令组织在一起,作为一个单独命令完成一个特定任务。Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”。Word使用宏语言Visual Basic将宏作为一系列指令来编写。
宏又分为局部宏和全局宏:全局宏对所有文档都有效,局部宏只对本文档有效.
注意:在office系列中是可以直接使用宏的,wps则需自己安装对应的软件。
如何录制一个宏
(word版本:2007)
首先点击开发工具,然后点击录制宏。
首先输入宏名,然后选择触发方式,将宏指定到按钮可以理解为添加一个快捷方式。
当我们点击这个按钮的时候就会执行宏.
将宏指定到键盘相当于使用快捷键执行宏.
使用宏隐藏文字
在编写代码前,首先要更改两个设置
将箭头所所指的两个选项的对勾取消,否则隐藏字体将会失败.
Alt+F11打开VBA
这里录制了一个名为hidden的宏,用于隐藏文字
VBA的语法请自行学习,这里不再赘述.关于VBA的更多API及其属性请参考微软官方档案
https://docs.microsoft.com/zh-cn/office/vbaa/api/overview/
什么是宏病毒
宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在Normal模板上。从此以后,所有自动保存的文档都会“感染”上这种宏病毒,而且如果其他用户打开了感染病毒的文档,宏病毒又会转移到他的计算机上。
利用自动执行的宏达到取得控制权的目的,自动执行的宏名也可以在微软档案中找到。
https://docs.microsoft.com/zhcn/office/vba/word/concepts/customizing-word/auto-macros
宏名 | 运行条件 |
---|---|
AutoExec | 启动word时或加载全局模板时 |
AutoNew | 每次新建文件时 |
AutoOpen | 每次打开已有文件时 |
AutoClose | 每次关闭文件时 |
AutoExit | 退出word或卸载共用模板时 |
编写宏如下
注意:在VBA中,不区分字母的大小写,AutoOpen和autoopen等价.
编写宏病毒
典型案例(CDO自发邮箱获取系统用户名):
可以获取的信息有很多,这里以获取系统用户名为例
代码如下:
防御措施
- 在线沙箱检测文档是否宏病毒。
- 开启禁用宏
- 安装杀毒软件
宏病毒攻击方式多种多样(邮箱钓鱼,云宏病毒,下载木马等等)