以编程方式确定 Excel 文件 (.xls) 是否包含宏

发布于 2024-09-04 18:03:54 字数 152 浏览 7 评论 0原文

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

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

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

Is there any way to programmatically determine if an .xls contains macros, without actually opening it in Excel?

Also are there any methods to examine which certificate (including timestamp cert) these macros are signed with? Again without using Excel.

I'm wondering in particular if there are any strings that always show up in the raw data of an Excel file when macros are present.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尘曦 2024-09-11 18:03:54

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

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

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


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

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

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

Yes, you can open the .xls file as a compound document file and check whether is contains a VBA folder and streams containing VBA code.

Sample code is available in this CodeProject article:

Another OLE Doc Viewer but with editing facility

The certificate information is stored in the DocumentSummaryInformation stream. If you want to read out the information from there you should dig into the file format specifications available from Microsoft:

[MS-OSHARED]: Office Common Data Types and Objects Structure Specification

[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification

花间憩 2024-09-11 18:03:54

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

Keyboard Shortcut:

不知道这是否是万无一失的解决方案”的字符串

An xls file containing a macro should contain a string looking something like

Keyboard Shortcut:

Don't know if this is a surefire solution though

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文