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

Sof*_*mur 31 binary excel vba excel-vba bin

我想分析Excel文件,特别是那些包含VBA程序的文件.因为我打算逐个对大量的Excel文件进​​行分析,我不想在Microsoft Excel中打开这些文件来分析它们.

一个难点是查找和解析Excel文件的VBA宏.我们知道可以将Excel文件转换为.zip包含大量文件的文件,.xml并且vbaProject.bin很可能确定VBA宏在其中vbaProject.bin.但问题是如何阅读呢?

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

有谁知道是否有任何工具或API可供阅读vbaProject.bin

Dav*_*ens 27

Microsoft提供了一个非常大的PDF,它记录了如何从以下内容中提取函数vbaproject.bin:

http://download.microsoft.com/download/2/4/8/24862317-78f0-4c4b-b355-c7b2c1d997db/%5BMS-OVBA%5D.pdf [ 来源 ]

一些额外的信息可能与上述内容互补或不同:

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

  • 友好提示:提到的主要资源(从`vbaproject.bin`中提取函数)似乎不可用,因此无法再阅读这个高度赞扬的答案的主要部分 - @DavidZemens (2认同)
  • 谢谢@TM——微软不时地改变他们的存储库和文档结构。我猜想在这个答案发布后 6 年内的某个时候,他们对这个资源做出了重大改变。我已经更新了当前的资源位置。干杯。 (2认同)

pet*_*tys 6

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

  • OfficeMalScanner 工具链接的下载内容包含病毒! (2认同)
  • 它不是病毒。它是一个可用于查找病毒的工具。有时,安全工具会被归类为“黑客”并被列为“潜在有害程序”而被阻止。您必须比病毒扫描程序更聪明。 (2认同)