所以,最近我一直在研究一个涉及通过 MS Office 文档传播的恶意软件的项目,除此之外,我需要检测适当文档流中的 VBA 代码。
我已经阅读了Office VBA 文件格式结构的大部分内容,在我看来,检测压缩代码开头的正确方法是解析dir包含PROJECTMODULES Record和MODULEOFFSET Record其元素TextOffset包含实际偏移量的流到压缩后的源代码里面相应的ModuleStream. 我还发现了一个项目officeparser,它通过以下方式执行VBA代码检测,但是根据Github上的项目站点,最近几年该项目没有任何工作。
但是,我还发现了另外两个项目,它们以不同的方式处理相同的问题,并且是最新的。这些项目是oledump和oletools,它们检测流中压缩 VBA 代码开头的方式是搜索模式\x00Attribut,然后从该位置向后定位 3 个字节。我还没有找到关于这种方法的任何官方文档,所以我想知道的是,这种方法是搜索压缩代码的某种启发式方法,还是我遗漏了文档的某些部分?