我想分析Excel文件,特别是那些里面包含VBA程序的文件。因为我计划对大量 Excel 文件逐一运行此分析,所以我不想在 Microsoft Excel 中打开这些文件来分析它们。
一个困难是查找并解析 Excel 文件的 VBA 宏。我们知道Excel文件可以转换为
.zip
文件,其中包含大量的.xml
和vbaProject.bin
,可以肯定VBA宏位于vbaProject.bin
中。然而问题是如何读呢?
有谁知道是否有任何工具或API可以查找和解析VBA宏?
有谁知道有没有什么工具或者API可以阅读
vbaProject.bin
?
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
这里有 2017 年更新的文章,其中列出了几种有助于解决此问题的工具。我能够使用 OfficeMalScanner 工具从 vbaProject.bin 中提取 VBA 代码。 编辑:成功使用此工具几个月后,Windows 正在检测其中的恶意软件。链接是www dotreconstructerdotorg/code/OfficeMalScanner.zip。使用风险自负 - 在源代码丢失后,它对我从项目中提取一堆所需的 VBA 代码很有用。 编辑2:根据下面的@HackSlash评论,可能是误报。