一种基于LLVM的虚拟机保护方法及系统

    公开(公告)号:CN114327789A

    公开(公告)日:2022-04-12

    申请号:CN202210017306.2

    申请日:2022-01-07

    Applicant: 北京大学

    Abstract: 本发明公开了一种基于LLVM的虚拟机保护方法及系统,通过实现自定义指令集与程序解释器,在LLVM中间代码层面实现虚拟机保护。本发明通过将源代码转化为LLVM中间表示,遍历整个IR程序获得程序所有的函数和基本块作为基本单位,为所有基本单位进行依赖分析并根据依赖分析结果对基本单位进行切分得到基本指令,将基本指令进行重组得到新基本块,并绑定操作码,根据新基本块创建操作码数组和解释器,通过解释器完成整个程序的控制逻辑从而达到虚拟机保护的目的。相比传统静态混淆技术,本发明具有更高的反混淆能力;相比传统的虚拟机保护技术,本发明在保证高混淆强度的情况下,极大地降低了混淆所需要的时间、空间开销。

    一种基于LLVM的虚拟机保护方法及系统

    公开(公告)号:CN114327789B

    公开(公告)日:2024-05-17

    申请号:CN202210017306.2

    申请日:2022-01-07

    Applicant: 北京大学

    Abstract: 本发明公开了一种基于LLVM的虚拟机保护方法及系统,通过实现自定义指令集与程序解释器,在LLVM中间代码层面实现虚拟机保护。本发明通过将源代码转化为LLVM中间表示,遍历整个IR程序获得程序所有的函数和基本块作为基本单位,为所有基本单位进行依赖分析并根据依赖分析结果对基本单位进行切分得到基本指令,将基本指令进行重组得到新基本块,并绑定操作码,根据新基本块创建操作码数组和解释器,通过解释器完成整个程序的控制逻辑从而达到虚拟机保护的目的。相比传统静态混淆技术,本发明具有更高的反混淆能力;相比传统的虚拟机保护技术,本发明在保证高混淆强度的情况下,极大地降低了混淆所需要的时间、空间开销。

Patent Agency Ranking