摘要

针对底层虚拟机混淆器(ollvm)在指令混淆层面只支持指令替换一种算法,且仅支持5种运算符和13种替换方案的问题,设计了一种改进版的指令混淆框架(InsObf),以加强底层虚拟机混淆器指令层面的混淆效果。InsObf包含指令加花和指令替换,指令加花首先对基本块的指令进行依赖分析,然后插入叠加跳转和虚假循环两种花指令;指令替换在ollvm的基础上,拓展至13种运算符,共计52种指令替换方案。在底层虚拟机(LLVM)上实现了框架原型,通过实验表明,与ollvm指令替换功能相比,InsObf在时间开销增长约10个百分点,空间开销增长约20个百分点的情况下,圈复杂度和抗逆向能力均可提高4倍;与同样基于ollvm改进的Armariris和Hikari相比,InsObf在同一量级时空开销下,可以提供更高强度的代码复杂度。因此,InsObf可提供指令层级的有效保护。