跳转至

VBA Stomping

对手可能通过用良性数据替换VBA源代码,隐藏嵌入在MS Office文档中的恶意VBA有效载荷。(引用: FireEye VBA stomp Feb 2020) 嵌入VBA内容的MS Office文档将源代码存储在模块流中。每个模块流都有一个PerformanceCache,其中存储了称为p-code的VBA源代码的单独编译版本。当_VBA_PROJECT流(包含VBA项目的版本相关描述)中指定的MS Office版本与主机MS Office应用程序的版本匹配时,将执行p-code。(引用: Evil Clippy May 2019)(引用: Microsoft _VBA_PROJECT Stream) 对手可能通过用零、良性代码或随机字节覆盖VBA源代码位置,同时保留先前编译的恶意p-code来隐藏恶意VBA代码。扫描恶意VBA源代码的工具可能会被绕过,因为不需要的代码隐藏在编译的p-code中。如果删除VBA源代码,一些工具甚至可能认为没有宏存在。如果_VBA_PROJECT流与主机MS Office应用程序之间存在版本匹配,将执行p-code,否则将解压缩并重新编译良性VBA源代码为p-code,从而删除恶意p-code并可能绕过动态分析。(引用: Walmart Roberts Oct 2018)(引用: FireEye VBA stomp Feb 2020)(引用: pcodedmp Bontchev)