[发明专利]一种不透明谓词的插入方法及装置有效
申请号: | 201710581387.8 | 申请日: | 2017-07-17 |
公开(公告)号: | CN107341374B | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | 苏庆;孙金田;张俊源;程天艺 | 申请(专利权)人: | 广东工业大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 510062 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 不透明 谓词 插入 方法 装置 | ||
本发明公开了一种不透明谓词的插入方法,包括:定位原代码分支语句中的表达式;利用第一运算符对所述表达式进行分割,生成分割后的表达式;构造永真混沌不透明谓词;利用第二运算符对所述永真混沌不透明谓词进行分割,生成分割后的永真混沌不透明谓词;根据预定组合规则,将分割后的表达式与分割后的永真混沌不透明谓词进行组合,将组合后生成的不透明谓词插入所述原代码,生成混淆代码。可见,在本方案中,通过将构造的永真不透明谓词与程序中原有分支判断语句结合为一体的新的插入混淆方法,可提高抵抗静态分析的能力,增加代码混淆的安全性;本发明还公开了一种不透明谓词的插入装置,同样能实现上述技术效果。
技术领域
本发明涉及软件保护技术领域,更具体地说,涉及一种不透明谓词的插入方法及装置。
背景技术
计算机软件作为人机交互的媒介,大大增加了计算机的便捷程度并降低了用户使用计算机的门槛。那些功能和技术完备的商业软件体现着开发人员的智慧,软件的实现也蕴藏了软件厂商的核心商业机密。软件盗版是软件产业发展的一个重要安全问题,软件逆向工程通过非法途径破解软件,窃取软件的核心算法和商业机密,导致软件的知识产权遭受重大的损害,得不到应有的权益保护。代码混淆技术作为一种新兴的软件保护技术,在软件保护领域受到越来越多的关注和应用。代码混淆技术可分为布局混淆、数据混淆、控制流混淆和预防性混淆四类,其中不透明谓词混淆技术具有形式简单,不显著增加程序开销的优点,成为热点的控制流混淆技术之一。通过构造不透明谓词并将其插入程序代码中,可以有效增加程序的复杂度,使得破解者的逆向工作变得更加困难。
常用的插入点选择方式有两种:
1.插入至需要使用布尔值进行程序分支走向控制之处。例如if语句的判断条件或循环语句的边界条件判断处。
2.在顺序执行的语句块中间插入谓词,将顺序执行的控制流转换为分支控制流。谓词插入后不影响程序的执行过程,即实际的运行过程依旧与原顺序执行的过程相同。
然而,在上述不透明谓词插入技术,由于插入后的不透明谓词与程序中原有谓词是分别独立存在的,通过静态分析技术破解者有可能找到插入的不透明谓词,然后将其去除;因此,如何增加代码混淆抵抗静态分析的能力,增加代码混淆的安全性,是本领域技术人员需要解决的问题。
发明内容
本发明的目的在于提供一种不透明谓词的插入方法及装置,以实现增加代码混淆抵抗静态分析的能力,增加代码混淆的安全性。
为实现上述目的,本发明实施例提供了如下技术方案:
一种不透明谓词的插入方法,包括:
定位原代码分支语句中的表达式;
利用第一运算符对所述表达式进行分割,生成分割后的表达式;
构造永真混沌不透明谓词;
利用第二运算符对所述永真混沌不透明谓词进行分割,生成分割后的永真混沌不透明谓词;
根据预定组合规则,将分割后的表达式与分割后的永真混沌不透明谓词进行组合,将组合后生成的不透明谓词插入所述原代码,生成混淆代码。
其中,所述利用第一运算符对所述表达式进行分割,生成分割后的表达式,包括:
利用比较运算符将所述表达式P分割为三部分,分割后的表达式包括第一表达式P1、比较运算符op、第二表达式P2。
其中,所述利用第二运算符对所述永真混沌不透明谓词进行分割,生成分割后的永真混沌不透明谓词,包括:
利用第二运算符=将所述永真混沌不透明谓词Q分割为三部分,分割后的永真混沌不透明谓词包括:第一不透明谓词Q1、第二运算符=、第二不透明谓词Q2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东工业大学,未经广东工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710581387.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种软件保护方法和装置
- 下一篇:智能穿戴设备的控制方法及装置