首页> 中文学位 >C/C++程序的控制流混淆技术研究
【6h】

C/C++程序的控制流混淆技术研究

代理获取

目录

摘要

第一章 绪论

1.1 研究背景及意义

1.2 国内外控制流混淆技术研究现状

1.3 研究内容和论文结构

1.4 本章小结

第二章 传统的控制流混淆技术

2.1 插入死代码或不相关代码

2.2 不透明表达式

2.3 控制流压缩

2.4 本章小结

第三章 基于程序切片的控制流混淆技术

3.1 程序切片

3.1.1 程序切片概念

3.1.2 切片的度量

3.2 基于程序切片的控制流混淆技术

3.2.1 变量编码伪依赖

3.2.2 循环变量伪依赖

3.2.3 判断条件伪依赖

3.3 混淆性能评价与分析

3.3.1 代码混淆评价指标

3.2.2 实验与分析

3.4 本章小结

第四章 基于伪别名的控制流压缩技术

4.1 指针伪别名

4.2 基于伪别名的控制流压缩技术

4.2.1 算法思想

4.2.2 算法描述

4.3 混淆性能评价与分析

4.4 本章小结

结论与展望

参考文献

攻读学位期间发表的论文

声明

致谢

展开▼

摘要

随着计算机技术的不断发展,计算机软件系统已经深入渗透到实际生活中的各个领域,若这些软件一旦遭受攻击,将给人类带来不可承受的损失。近年来,代码混淆技术作为软件保护的重要手段之一受到国内外研究者的重视。代码混淆技术是通过代码的混淆转换,增加程序静态分析与动态分析难度,从而阻止攻击者顺利实施逆向工程以提取程序的核心代码。现有的代码混淆技术主要包括词法混淆、数据混淆、控制流混淆和预防混淆等。其中,控制流混淆是最为有效且重要的一项代码混淆技术。本文在对当前主流的控制流混淆技术分析后发现,一方面,目前的控制流混淆方法都不能有效抵御切片攻击;另一方面,现有的控制流压缩技术不能有效保护派遣变量(控制流压缩后决定程序执行顺序的next变量)。基于控制流混淆的这两个问题,本文研究工作如下:
  1、针对程序切片攻击,本文提出了一种基于程序切片的控制流混淆技术。基于C/C++源程序的控制流分析,该技术通过计算程序的静态切片及冗余切片,对程序中需要保护的敏感信息片段进行变量编码、增加循环变量等混淆操作,增强程序的数据依赖关系,提高控制流程的复杂度,从而确保程序能有效抵御程序切片攻击。通过实验对基于程序切片的控制流混淆技术进行了正确性、混淆强度、耐受性的验证以及性能开销的分析。
  2、针对控制流压缩算法存在的缺陷,提出一种基于伪别名的控制流压缩算法。首先利用数组伪别名算法加密控制流压缩中的派遣变量(控制流压缩后决定代码块执行顺序的next变量),再根据C/C++指针的特性,提出了指针伪别名的不透明谓词构造算法,对控制流压缩后每个case语句中的控制块进行谓词插入,以对抗反汇编工具的攻击,使得攻击者无法重构控制流。在此基础上,用N皇后回溯算法对改进的控制流压缩技术进行了实验验证,并对其混淆性能进行了评价与分析。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号