读取 Excel 文件的 VBA 宏(或 vbaProject.bin),而无需在 MS Excel 中打开它[已关闭]

问题描述 投票:0回答:2

我想分析Excel文件,特别是那些里面包含VBA程序的文件。因为我计划对大量 Excel 文件逐一运行此分析,所以我不想在 Microsoft Excel 中打开这些文件来分析它们。

一个困难是查找并解析 Excel 文件的 VBA 宏。我们知道Excel文件可以转换为

.zip
文件,其中包含大量的
.xml
vbaProject.bin
,可以肯定VBA宏位于
vbaProject.bin
中。然而问题是如何读呢?

有谁知道是否有任何工具或API可以查找和解析VBA宏?

有谁知道有没有什么工具或者API可以阅读

vbaProject.bin

vba excel binary bin
2个回答
32
投票

Microsoft 有一个非常大的 PDF,其中记录了如何从

vbaproject.bin
中提取函数:

此处提供该 pdf 的多个版本:https://learn.microsoft.com/en-us/openspecs/office_file_formats/ms-ovba/575462ba-bf67-4190-9fac-c275523c75fc

此资源截至 2019 年 6 月 27 日有效且可用。如果此链接过时(Microsoft 定期更改其永久链接结构或以其他方式更改其实现文档/答案存储库的方式等),请搜索

MS-OVBA.pdf

一些可能补充或不补充上述内容的附加信息:

http://www.codeproject.com/Articles/15216/Office-2007-bin-file-format


6
投票

这里有 2017 年更新的文章,其中列出了几种有助于解决此问题的工具。我能够使用 OfficeMalScanner 工具从 vbaProject.bin 中提取 VBA 代码。 编辑:成功使用此工具几个月后,Windows 正在检测其中的恶意软件。链接是www dotreconstructerdotorg/code/OfficeMalScanner.zip。使用风险自负 - 在源代码丢失后,它对我从项目中提取一堆所需的 VBA 代码很有用。 编辑2:根据下面的@HackSlash评论,可能是误报。

© www.soinside.com 2019 - 2024. All rights reserved.