基于对象映射的可控数据混淆方法及系统技术方案

技术编号:37821286 阅读:37 留言:0更新日期:2023-06-09 09:56
本发明专利技术属于互联网技术领域,特别涉及一种基于对象映射的可控数据混淆方法及系统,将目标程序转变为中间语言,挖掘程序中数据引用关系和执行路径信息,并构建目标程序的数据语义关联图;遍历数据语义关联图,依据数据语义信息将关键数据从程序结构中剥离并封装为数据类,利用类的继承、派生和多态混淆程序数据流结构,使程序中对数据的直接访问转换成通过类对数据的间接访问。本发明专利技术有效保护程序数据语义信息,使得程序数据访问更加复杂,增强程序抗逆向分析能力;通过类的派生策略和多态机制,可使程序数据流任意复杂,混淆强度具有可伸缩性;通过向封装和派生的类中添加各类安全性函数来达到特定的数据保护目的,混淆方法具有可扩展性。有可扩展性。有可扩展性。

【技术实现步骤摘要】
基于对象映射的可控数据混淆方法及系统


[0001]本专利技术属于互联网
,特别涉及一种基于对象映射的可控数据混淆方法及系统。

技术介绍

[0002]代码混淆是针对软件逆向提出的对抗性技术,通过对代码结构进行等价变换,可有效阻止逆向分析人员理解代码逻辑,增加逆向成本。然而,随着近年来逆向技术的快速发展,传统代码混淆技术的有效性在不断减弱,如何构建更具对抗性的代码混淆算法,成为学界亟待解决的问题。控制流和数据流是进行程序分析的主要依据,控制流分析的目的是根据程序中的跳转语句构造一个表达程序结构的控制流图,数据流分析可以在控制流图的基础上通过迭代分析得到感兴趣的数据流结果。
[0003]当前,代码混淆中对控制流混淆的研究相对较多,而对软件数据流保护的研究并不广泛深入。数据是数据流分析的基础,程序中有很多数据相关的结构,例如,数组、结构体、字符串等包含着重要的语义信息,改变数据的常规使用方式和本身结构特征,可有效增加数据流逆向分析的难度,实现对程序数据流层面的保护。软件控制流保护中,不透明谓词混淆算法和平展控制流混淆算法是两种重要代码保护本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于对象映射的可控数据混淆方法,其特征在于,包含如下内容:将目标程序转变为中间语言,挖掘程序中数据引用关系和执行路径信息,并构建目标程序的数据语义关联图;遍历数据语义关联图,依据数据语义信息将关键数据从程序中剥离并封装为数据类,利用类的继承、派生和多态混淆程序数据流结构,使程序中对数据的直接访问转换成通过类对数据的间接访问。2.根据权利要求1所述的基于对象映射的可控数据混淆方法,其特征在于,构建数据语义关联图,程序首先将程序转变为LLVM中间语言,在中间语言层面程序分析程序的控制流和数据流,进而挖掘程序中存在的数据引用关系;然后,依据存在的数据引用关系构建数据语义关联图。3.根据权利要求1所述的基于对象映射的可控数据混淆方法,其特征在于,数据类封装中,依据数据语义信息将关键数据从程序中剥离并封装到数据类中,利用数据语义熵作为指导,对程序中所有数据进行分析,挖掘程序中的关键数据程序,并将关键数据封装整合为数据类。4.根据权利要求3所述的基于对象映射的可控数据混淆方法,其特征在于,利用数据语义熵作为指导,数据语义熵获取过程如下:首先,依据数据语义关联图得到所有数据之间的引用关系,依据引用关系来得到从数据中获取语义信息的概率;然后,利用从数据中获取语义信息的概率,并结合程序全局数据和引用关系来获取数据语义熵。5.根据权利要求4所述的基于对象映射的可控数据混淆方法,其特征在于,依据引用关系来得到从数据中获取语义信息的概率,包含:设定根据数据语义关联图得到所有数据之间的引用关系为n,其中,数据i在关联图中被引用次数为l
i
,具有直接引用关系为1,间接引用关系每经过一次中转引用加1,则从数据i中获得语义信息的概率P(A
i
)表示为:...

【专利技术属性】
技术研发人员:舒辉李洋康绯赵耘田郭旺
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1