如何安全地检查来自不受信任来源的 XLSM 文件?

如何安全地检查来自不受信任来源的 XLSM 文件?

我有一个来自不可信来源的 XLSM 文件。内容很可能是无害的,但为了保险起见,我想先检查一下里面的 VBA 代码。

如何无风险地检查文件的源代码?Excel 的默认设置(阻止存储在“不受信任的位置”的文件中的宏)是否足够,或者是否有已知的方法可以规避该设置?

我可以设置一个没有 LAN 访问的 VM 并在那里安装 Office,但如果有更简单的解决方案,我很乐意听取...

答案1

您需要确保它不会自主执行任何操作。如果宏对某些事件做出响应,它们可以自主执行。幸运的是,我们可以抑制这种自主行为。

比如说,我们想检查其中的 VBA 编码DontCrossTheStreams.xlsm。我们不是通过双击来打开文件,而是使用一个简短的宏来打开文件:

Sub OpenSafely()
    Application.EnableEvents = False
    Workbooks.Open Filename:="DontCrossTheStreams.xlsm"
End Sub

宏很容易安装并使用:

  1. Alt+F11 打开 VBE 窗口
  2. Alt+ I. Alt+M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,宏也会随之保存。

如果您使用的是 2003 之后的 Excel 版本,则必须将文件另存为 而.xlsm不是.xlsx

消除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

使用Excel 窗口中的宏:

  1. Alt+F8
  2. 选择宏
  3. 触摸运行

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

必须启用宏才能使其工作!

(但一旦打开可疑工作簿,事件将被禁用)

相关内容