[发明专利]一种基于LLVM的虚拟机保护方法及系统在审
申请号: | 202210017306.2 | 申请日: | 2022-01-07 |
公开(公告)号: | CN114327789A | 公开(公告)日: | 2022-04-12 |
发明(设计)人: | 文伟平;刘琛;王雅仪;李成扬;黄天波 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F21/14;G06F8/41;G06F8/30 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 李稚婷 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 llvm 虚拟机 保护 方法 系统 | ||
本发明公开了一种基于LLVM的虚拟机保护方法及系统,通过实现自定义指令集与程序解释器,在LLVM中间代码层面实现虚拟机保护。本发明通过将源代码转化为LLVM中间表示,遍历整个IR程序获得程序所有的函数和基本块作为基本单位,为所有基本单位进行依赖分析并根据依赖分析结果对基本单位进行切分得到基本指令,将基本指令进行重组得到新基本块,并绑定操作码,根据新基本块创建操作码数组和解释器,通过解释器完成整个程序的控制逻辑从而达到虚拟机保护的目的。相比传统静态混淆技术,本发明具有更高的反混淆能力;相比传统的虚拟机保护技术,本发明在保证高混淆强度的情况下,极大地降低了混淆所需要的时间、空间开销。
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种基于LLVM的虚拟机保护方法及系统。
背景技术
在软件安全形势愈发严峻的情况下,保护软件不被篡改和恶意逆向是一项十分艰巨的任务。代码混淆是软件安全保护的一项重要技术。它通过在指令或函数级别进行修改来隐藏程序的原始逻辑,来增加逆向工程的难度。现有的代码混淆技术主要分为静态混淆技术和动态混淆技术。静态混淆技术主要包括控制流扁平化、虚假控制流等方式。但是传统的静态混淆技术具有抗反混淆能力较弱,无法抵抗动态调试等缺点。
动态混淆技术在实现上主要包括自修改代码技术和虚拟机保护技术,自修改代码技术可以在一定程度上阻碍逆向工具获取程序所有的明文代码,从而抵抗动态分析。虚拟机保护与传统自修改代码技术的最主要区别是虚拟机增加了一层自定义的指令集,而且其难以逆向,破解者想要获得程序源码,首先必须弄懂虚拟机的指令集,这极大增加了逆向的开销。但是传统的虚拟机保护具有时间、空间开销过大的缺点。
发明内容
为了克服上述现有技术的不足,本发明提供一种基于LLVM的虚拟机保护方法及系统,通过实现自定义指令集与程序解释器,在LLVM中间代码层面实现虚拟机保护。相比传统静态混淆技术,本发明具有更高的反混淆能力;相比传统的虚拟机保护技术,本发明在保证高混淆强度的情况下,极大地降低了混淆所需要的时间,空间开销。
本发明提供的基于LLVM的虚拟机保护方法通过将源代码编译为LLVM中间表示(以下简称LLVM IR),遍历整个LLVM IR程序获得程序所有的函数和基本块作为基本单位,为所有基本单位进行依赖分析并根据依赖分析结果对基本单位进行切分得到基本指令,将基本指令进行重组得到新基本块并绑定操作码,根据新基本块创建操作码数组和解释器,通过解释器完成整个程序的控制逻辑,从而达到虚拟机保护的目的,主要包括:提取程序基本单位阶段、基本单位依赖分析阶段、指令重组阶段、构建操作码数组与解释器阶段。
提取程序基本单位阶段执行如下步骤:
步骤1,将源代码转化成LLVM中间表示,即使用编译器将源代码编译成LLVM可分析的.bc文件,并在编译的过程中避免信息丢失;
步骤2,根据步骤1得到的源代码的.bc文件,获取源程序中的函数和基本块,即在整个程序层面和程序中的所有函数层面进行遍历,获取到程序中的所有函数,以及函数中的所有基本块,并将这些信息作为基本单位进行保存。
基本单位依赖分析阶段具体执行如下步骤:
步骤3,根据步骤2中得到的基本单位信息,对基本单位的每一条指令进行遍历,每条指令有一个标志位来标识是否经过了依赖分析;
步骤4,对于没有经过依赖分析的指令,需要从该条指令开始,分析得到该指令的所有依赖指令,并将所有依赖指令放进同一个分组,该分组代表一个最小的、不可分割的单位。
指令重组阶段具体执行如下步骤:
步骤5,该步骤需要对步骤4得到的分组进行指令重组,将分组中的指令包装成为一个新的基本块。首先要得到要包装的分组,为该分组创建一个新基本块,然后将分组中的指令全部复制到新基本块中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210017306.2/2.html,转载请声明来源钻瓜专利网。