用途:还原 .ps1、.docm、.xlsm、.js、.jse、.hta 等脚本与宏的混淆,包括编码、字符串拼接与执行链。不适用于编译产物(native、.NET、Java)或本身可读的脚本。
主要能力:识别脚本类型与混淆风格(PowerShell 的 -EncodedCommand、IEX、FromBase64String;VBA 的 AutoOpen、Document_Open、Chr、StrReverse;JS 的 eval、unescape、fromCharCode、\xHH);逐层解码并跟踪执行链,每层存档编号;用 olevba 提取与解码 VBA 宏;用 PowerShell AST 提取字符串字面量;处理 base64、hex、字符码、反转、XOR 等常见编码链;对抗 JScrambler 类商业混淆(字符串表、控制流平坦化、死代码)。
使用方式:静态解码为主,可免沙箱。工具包括 python3、oletools(pip install oletools)、xxd/sed、PowerShell/pwsh、js-beautify。示例:pwsh -NoProfile -Command '$d=[Convert]::FromBase64String("BASE64"); [Text.Encoding]::Unicode.GetString($d)';olevba -c sample.docm > macro.txt;olevba --decode -c sample.docm > macro_decoded.txt;js-beautify layer_01.js -o pretty.js。任何运行脚本或开宏的动态步骤必须进沙箱。
适用场景:钓鱼附件宏、恶意下载器脚本、脚本类样本的载荷还原与 IOC 提取。
限制:olevba 只提取不还原,剩余需手动处理;正则盲改易破坏结构,替换后应做语法检查;多层嵌套需逐层解;动态执行必须沙箱隔离。具体收费与平台信息暂未提供。