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

    公开(公告)号:CN114327789B

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

    申请号:CN202210017306.2

    申请日:2022-01-07

    Applicant: 北京大学

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

    一种基于LLVM的指令加花混淆方法及装置

    公开(公告)号:CN114357389A

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

    申请号:CN202111680645.0

    申请日:2021-12-31

    Applicant: 北京大学

    Abstract: 本发明公布了一种基于LLVM的指令加花混淆方法及装置,该方法将待混淆的源程序转换为LLVM中间表示文件,并提取函数、原始基本块和指令信息;对每一个原始基本块内的所有指令进行依赖分析,按照指令间的依赖关系将原始基本块内的指令拆分为若干指令依赖集合,随机选择一个位置,将原始基本块切分为第一基本块和第二基本块;在第一基本块和第二基本块之间插入叠加跳转指令,进一步还可以插入虚假循环指令,将混淆后的中间表示文件转换为目标平台的可执行文件。本发明方法可在充分利用源程序中指令信息的同时,有效干扰逆向人员的分析,加大静态分析的难度;另外,本发明基于LLVM中间表示层,可应用于不同的前端编程语言和目标机器架构,具有通用性。

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

    公开(公告)号:CN114327789A

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

    申请号:CN202210017306.2

    申请日:2022-01-07

    Applicant: 北京大学

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

    一种基于LLVM的指令加花混淆方法及装置

    公开(公告)号:CN114357389B

    公开(公告)日:2024-04-16

    申请号:CN202111680645.0

    申请日:2021-12-31

    Applicant: 北京大学

    Abstract: 本发明公布了一种基于LLVM的指令加花混淆方法及装置,该方法将待混淆的源程序转换为LLVM中间表示文件,并提取函数、原始基本块和指令信息;对每一个原始基本块内的所有指令进行依赖分析,按照指令间的依赖关系将原始基本块内的指令拆分为若干指令依赖集合,随机选择一个位置,将原始基本块切分为第一基本块和第二基本块;在第一基本块和第二基本块之间插入叠加跳转指令,进一步还可以插入虚假循环指令,将混淆后的中间表示文件转换为目标平台的可执行文件。本发明方法可在充分利用源程序中指令信息的同时,有效干扰逆向人员的分析,加大静态分析的难度;另外,本发明基于LLVM中间表示层,可应用于不同的前端编程语言和目标机器架构,具有通用性。

Patent Agency Ranking