不打开Excel,读取其中的VBA宏(或vbaProject.bin)文件。

37
我想要分析Excel文件,特别是那些包含VBA程序的文件。因为我计划逐个地对大量的Excel文件运行此分析,所以我不想在Microsoft Excel中打开这些文件来进行分析。
一个困难是找到并解析Excel文件中的VBA宏。我们知道,Excel文件可以转换成包含许多.xml和vbaProject.bin的.zip文件,很可能VBA宏在vbaProject.bin中。但问题是如何读取它?
有人知道是否有任何工具或API可用于查找和解析VBA宏吗?
有人知道是否有任何工具或API可用于读取vbaProject.bin吗?

那么,你成功了吗?我有类似的问题 - 但我还需要稍微编辑一下 :) 只是想知道你是否可以帮忙看一下。 - Sergius
2个回答

32

微软有一份非常庞大的PDF文件,介绍了如何从vbaproject.bin中提取函数:

https://interoperability.blob.core.windows.net/files/MS-OVBA/%5bMS-OVBA%5d.pdf [来源]

这个资源截至2019年6月27日仍然可用。如果此链接失效(微软定期更改其永久链接结构或以其他方式实现其文档/答案存储库等),请搜索MS-OVBA.pdf

以下是可能与上述内容相关的一些附加信息:

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


2
友情提示:提到的主要资源(从vbaproject.bin中提取函数)似乎不可用,因此无法再读取这个高赞回答的主要部分- @DavidZemens - T.M.
2
感谢@T.M. - 微软会不时更改他们的存储库和文档结构。我猜想,在此答案发布后的6年中的某个时候,他们对这个资源进行了重大更改。我已更新当前资源位置。干杯。 - David Zemens

5

这里有一篇2017年更新的文章,列出了几个帮助这方面的工具。我使用OfficeMalScanner工具从vbaProject.bin中提取了VBA代码。编辑:在成功使用此工具数月后,Windows检测到其中有恶意软件。链接是www dot reconstructer dot org / code / OfficeMalScanner.zip。使用时需自行承担风险-对我来说它可以从丢失源代码的项目中提取出许多所需的VBA代码。编辑2:根据@HackSlash下面的评论,可能是误报。


2
OfficeMalScanner工具的下载链接中包含病毒!请勿下载! - wbeard52
2
这不是病毒,而是一种可以用来查找病毒的工具。有时安全工具会被归类为“黑客工具”,并被列为“潜在的不需要程序”而被屏蔽。你必须比病毒扫描器更聪明。 - HackSlash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接