[发明专利]一种代码保护方法、装置、计算机设备和存储介质在审
申请号: | 201910212434.0 | 申请日: | 2019-03-20 |
公开(公告)号: | CN109948309A | 公开(公告)日: | 2019-06-28 |
发明(设计)人: | 付蒙 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F8/72 |
代理公司: | 北京华仲龙腾专利代理事务所(普通合伙) 11548 | 代理人: | 李静 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件代码 伪随机数 不透明 谓词 代码保护 计算机设备 变量依赖 存储介质 代码混淆 软件保护 生成算法 运算 混淆 | ||
1.一种代码保护方法,其特征在于,所述方法包括以下步骤:
获取软件代码,确定所述软件代码中的变量依赖关系;
将所述变量依赖关系中的代码变量进行伪随机数生成运算,得到代码伪随机数;
根据所述代码伪随机数构造不透明谓词,并将所述不透明谓词插入所述软件代码中,得到所述软件代码对应的软件混淆代码,以保护所述软件代码。
2.根据权利要求1所述的方法,其特征在于,所述将所述变量依赖关系中的代码变量进行伪随机数生成运算,得到代码伪随机数之前,还包括:
随机选取预设的伪随机数生成算法,所述预设的伪随机数生成算法至少包括线性同余方法、梅森旋转算法和密码学安全伪随机数生成算法中的一种或几种。
3.根据权利要求2所述的方法,其特征在于,所述将所述变量依赖关系中的代码变量进行伪随机数生成运算,得到代码伪随机数,具体包括:
随机选取所述变量依赖关系中的代码变量,并将所述代码变量进行比特变换,得到代码变量变换值,所述代码变量变换值比特长度与选取的所述伪随机数生成算法要求的随机数种子比特长度一致;
将所述代码变量变换值作为随机数种子进行伪随机数生成运算,得到代码伪随机数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述代码伪随机数构造不透明谓词,并将所述不透明谓词插入所述软件代码中,得到所述软件代码对应的软件混淆代码,具体包括:
将所述代码伪随机数串联成预设比特长度的比特序列;
将所述比特序列进行位运算,得到位运算结果;
将所述位运算结果与0或1构建等式和/或不等式;
判断所述等式和/或所述不等式的真假性,若所述等式和/或所述不等式恒为真或假,则将所述等式和/或所述不等式作为不透明谓词插入所述软件代码中,得到所述软件代码对应的软件混淆代码。
5.根据权利要求4所述的方法,其特征在于,所述将所述比特序列进行位运算,得到位运算结果,具体为:
将所述比特序列中从高位到低位相邻的两个比特值进行位运算,并将运算结果与下一个低位比特值进行相同的位运算,直到所述比特序列中的所有比特值位运算完毕,得到位运算结果。
6.根据权利要求4所述的方法,其特征在于,所述将所述等式和/或所述不等式作为不透明谓词插入所述软件代码中,具体包括:
随机选取所述软件代码中的分支语句位置和/或非分支语句位置;
在所述分支语句位置和/或所述非分支语句位置中插入临时分支语句,并将所述临时分支语句的分支条件作为临时谓词进行标记;
将所述等式和/或所述不等式作为不透明谓词替换所述临时谓词,得到所述软件代码对应的软件混淆代码。
7.根据权利要求6所述的方法,其特征在于,所述将所述等式和/或所述不等式作为不透明谓词替换所述临时谓词,得到软件混淆代码之前,还包括:
将所述临时分支语句的分支条件为真的代码片段进行代码克隆,得到克隆代码片段;
将所述克隆代码片段的程序运算语句进行算法随机变异,并将变异后的所述克隆代码片段插入所述临时分支语句的分支条件为假的临时分支语句之后。
8.一种代码保护装置,其特征在于,所述装置包括:
变量依赖关系分析模块,用于获取软件代码,确定所述软件代码中的变量依赖关系;
伪随机数生成模块,用于将所述变量依赖关系中的代码变量进行伪随机数生成运算,得到代码伪随机数;
谓词插入模块,用于根据所述代码伪随机数构造不透明谓词,并将所述不透明谓词插入所述软件代码中,得到所述软件代码对应的软件混淆代码,以保护所述软件代码。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1至7中任一项权利要求所述代码保护方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至7中任一项权利要求所述代码保护方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910212434.0/1.html,转载请声明来源钻瓜专利网。