首页> 中文学位 >恶意受控环境下的代码保护技术研究
【6h】

恶意受控环境下的代码保护技术研究

代理获取

目录

摘要

第一章 绪论

1.1 软件保护背景介绍

1.2 软件保护技术现状

1.3 代码混淆技术分类

1.3.1 依据混淆算法原理角度

1.3.2 依据保护对象不同

1.4 软件多样化保护技术概述

1.5 代码混淆有效性评估概述

1.6 当前存在的问题

1.7 文章主要内容和结构

第二章 一种混沌不透明谓词代码混淆技术

2.1 不透明谓词的提出

2.1.1 静态不透明谓词

2.1.2 上下文相关不透明谓词

2.1.3 动态不透明谓词

2.1.4 不透明谓词与其它代码混淆技术的结合

2.1.5 不透明谓词小结

2.2 混沌不透明谓词的定义

2.3 混沌不透明谓词的性质

2.3.1 安全性

2.3.2 代价

2.3.3 隐蔽性

2.4 混沌不透明谓词的构造

2.5 不透明谓词插入方法

2.5.1 插入点的选择

2.5.2 插入方式的设计

2.5.3 一种不透明谓词融合插入方法

2.6 实验及分析

2.6.1 强度

2.6.2 弹性

2.6.3 代价

2.6.4 隐蔽性

2.7 本章小结

第三章 一种窥孔多样化软件保护方法

3.2 中间/目标代码窥孔多样化

3.2.1 预处理

3.2.2 寄存器依赖关系

3.2.3 指令选择策略

3.2.4 指令序列功能等价性验证

3.2.5 嵌入已生成代码需要注意的问题

3.3 实验及分析

3.3.1 目标代码多样化示例

3.3.2 排序算法多样化

3.4 本章小结

第四章 一种基于Petri网的软件保护技术应用序列构建方法

4.1 多种软件保护技术综合运用问题现状

4.2 Petri网相关定义

4.3 软件保护技术依赖关系建模

4.3.1 必需依赖关系

4.3.2 禁止依赖关系

4.3.3 优先依赖关系

4.3.4 复合依赖关系

4.4 软件保护应用技术序列求解算法

4.4.1 算法框架

4.4.2 正确性证明

4.4.3 应用举例

4.5 软件保护技术应用序列需求分析

4.5.1 应用软件保护技术的总次数最多

4.5.2 应用软件保护技术的种类最多

4.5.3 应用指定软件保护技术的次数最多

4.6 实验及分析

4.6.1 软件复杂度测试

4.6.2 水印提取测试

4.7 本章小结

第五章 一种基于非线性模糊矩阵的代码混淆有效性评估模型

5.1 代码混淆有效性评估模型概述

5.2 非线性模型和模糊评估方法的发展和应用

5.3 代码混淆有效性评估模型

5.3.1 评估模型定义

5.3.2 MNLFM建模过程

5.4 评估模型的性质

5.4.1 评估合理性

5.4.2 单调递增性

5.4.3 连续性

5.4.4 突出性

5.5 实验结果与分析

5.5.1 模型的有效性验证

5.5.2 模型之间的对比实验

5.6 本章小结

总结与展望

参考文献

攻读学位期间发表的论文

声明

致谢

展开▼

摘要

随着信息化时代的发展,软件产业已经成为社会经济中不可缺少的一部分,其安全问题也日益突出。不法分子主要利用软件盗版、篡改和逆向分析等手段,攻击和窃取各种软件知识产权成果,引发了各国政府、工业界和学术界越来越多的关注,使得软件保护已逐渐发展成为计算机安全中的重要一环。
  在目前的安全态势下,当软件发布后,会有可能运行在受攻击者完全控制的恶意白盒环境中,受到各种恶意攻击。当前主要的软件保护方法可以分为两大类,一类是事前预防性保护方法,包括代码加密、代码混淆和代码自修改等;另一类是事后补救性保护方法,包括软件水印和代码多样性等。事前预防性保护方法中的代码混淆技术由于其实现代价适中,普遍保护效果较好,成为目前软件保护技术的热点之一;事后补救性保护方法中的代码多样性技术可以遏制软件侵害行为影响的扩大和追责,并且主要应用于软件发布阶段,基本上不会对软件的研发阶段造成过多的干扰,实施起来较为方便,是事前预防性方法的重要补充。
  然而,软件保护技术与软件攻击技术一直呈现出共生同发展的态势。虽然各种软件保护技术日渐完善,但也有许多曾经保护效果良好的代码混淆技术不断被攻破,亟待补充具备新安全理论基础的代码混淆技术。另外,单一的软件保护技术已经被证明为不是绝对安全的,应当研究各种软件保护技术的综合运用,以及对综合运用有重要影响的软件保护技术之间的依赖关系也应该进行详细的研究。
  论文的主要内容和贡献概括如下:
  1、提出了一种混沌不透明谓词代码混淆技术
  目前攻击者对大多数不透明谓词技术已经研究得比较透彻,有必要进行新型不透明谓词技术的引入、研究和应用。当混沌不透明表达式的值集合缩小为{TRUE,FALSE}时,混沌不透明表达式可称为混沌不透明谓词。本文提出了一种结合混沌不透明表达式的混沌不透明谓词的形式化定义以及相应的结合混沌不透明表达式的混沌不透明谓词构造和插入方法,并且对其安全性、代价、隐蔽性等各方面的性质进行了证明,同时还提出了一种将新构造的不透明谓词与原有谓词融合的插入方法,进一步提高了不透明谓词的隐蔽性。
  2、提出了一种窥孔多样化软件保护技术
  在软件发布阶段,运用窥孔优化技术,以基本块或函数层次的代码片段为多样化对象,研究待保护程序的寄存器依赖关系,对待保护程序进行数据流和控制流分析预处理。制定一系列代码生成策略,并根据预处理得到的依赖关系信息选择合适的策略以生成各种候选的多样性代码序列。经过代码功能等价性验证后,采取适当方式嵌入至待保护程序。基于已实现的代码多样性原型系统进行实验,可以在混淆效率和代价之间取得较好的平衡。
  3、提出了一种基于Petri网的软件保护技术应用序列构建方法
  首先研究现有的软件保护技术之间的依赖关系,利用带抑止弧的Petri网和带优先弧的Petri网,构建各种基本依赖关系及其复合依赖关系的Petri网模型。对典型的软件保护技术综合应用需求进行总结。利用Petri网作为严格数学工具并可提供图形化表示进行问题求解的便利性,在给定可用软件保护技术的应用场景下,求解出满足用户特定需求的可行的软件保护技术应用序列,避免出现部分软件保护技术的保护效果相互抵消或者产生其它有害副作用的情况。
  4、提出了一种基于非线性模糊矩阵的代码混淆有效性评估模型
  为了解决目前代码混淆评估方法对代码混淆效果区分度不高的问题,提出一种基于非线性模糊矩阵的代码混淆有效性评估模型MNLFM。证明了MNLFM具有评估合理性、单调递增性、连续性和突出性等特性,可以明显改善当前代码混淆评估领域在混淆效果方面可区分性差的现状。通过量化评估指标、确定隶属函数和构造非线性模糊矩阵等方法进行建模。建立一个Java程序测试用例集,基于压扁控制流和多种不透明谓词代码混淆技术对此模型进行混淆有效性检验,并与其他代码混淆评估模型进行比较。实验结果验证了MNLFM可以比较混淆后代码之间的综合复杂度,以及明确区分不同混淆算法对原代码的混淆程度。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号