6

有没有办法以编程方式确定 .xls 是否包含宏,而无需在 Excel 中实际打开它?

还有什么方法可以检查这些宏是用哪个证书(包括时间戳证书)签名的?再次不使用 Excel。

我特别想知道当存在宏时是否有任何字符串总是出现在 Excel 文件的原始数据中。

4

2 回答 2

2

是的,您可以将 .xls 文件作为复合文档文件打开并检查是否包含 VBA 文件夹和包含 VBA 代码的流。

此 CodeProject 文章中提供了示例代码:

另一个 OLE 文档查看器,但具有编辑功能

证书信息存储在DocumentSummaryInformation流中。如果您想从那里读出信息,您应该深入了解 Microsoft 提供的文件格式规范:

[MS-OSHARED]:Office 通用数据类型和对象结构规范

[MS-OFFCRYPTO]:Office 文档加密结构规范

于 2010-06-09T14:03:53.670 回答
0

一个包含宏的 xls 文件应该包含一个类似于

Keyboard Shortcut:

不知道这是否是一个万无一失的解决方案

于 2010-06-09T13:57:46.800 回答