基于控制流平展化代码变形技术的研究

基于控制流平展化代码变形技术的研究

论文摘要

代码变形技术是软件保护技术的关键技术之一,属于针对逆向工程与加密技术互补的安全分支。代码变形技术按照类型分为词法变形、数据变形和控制流变形。本文主要研究了基于控制流平展化的控制流变形。在学术界普遍认为词法变形和数据变形对于攻击者所花费的时间远小于控制流变形所带来的逆向变换时间。因此,控制流变形是非常有效的一种变形方式。在控制流变形方面,硬件支持的控制流混乱方法由于当前计算机结构仍然是主流,寄希望与更好的软件方法。不透明谓词方法虽然有良好的实验结果,但是没有正式的理论基础。并进进程保护方法虽然有良好的理论基础,但是对原有代码的负载性较高。控制流平展化方法不但有正式的理论基础,并且对原有代码的负载性较低,因此是一种比较好的方法。但是,控制流平展化方法存在调度变量问题以及平展化特征,并且代码复杂性可以进一步提高。本文通过对控制流平展化的仔细研究提出了两个改进,调度变量动态赋值算法和构造插入伪代码块算法,进一步隐藏了原始代码的控制流信息。前者针对控制流平展化算法中的调度变量很容易在静态分析获得基本块之间的跳转关系,因此结合网络中链路状态路由思想针对调度变量进行保护,并给出了具体保护算法。后者是通过引入不透明谓词的思想,使得真实代码基本块和伪代码基本块混合存在,达到了代码控制流混乱的目的。实验结果表明改进后控制流平展化具有很好的变形能力,同时提高了逆向工程的难度,使得原始代码进一步得到保护。实验取得较好的结果。根据控制流平展化技术的详细研究,本文提出了一个多种控制流变形方式的控制流变形模型及其相关算法,并在原型系统实现了除控制流平展化以外,线性排列的变形方式和多重循环控制结构的变形方式。实验结果显示该控制流变形模型实现了代码的控制流信息不仅隐藏在数据流信息中,并且可以获得多种代码的变形方式,提高了逆向工程的难度。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 课题背景及意义
  • 1.2 代码变形的定义及流程
  • 1.3 代码变形技术研究的历史与现状
  • 1.4 本文内容及组织
  • 1.4.1 本文内容
  • 1.4.2 本文的组织
  • 第2章 代码变形技术简介
  • 2.1 引言
  • 2.2 代码变形的对象
  • 2.2.1 源代码变形
  • 2.2.2 目标代码变形
  • 2.2.3 Java 字节码变形
  • 2.2.4 源代码变形的有效性
  • 2.3 代码变形技术的划分
  • 2.3.1 词法变形技术
  • 2.3.2 数据变形技术
  • 2.3.3 控制流变形技术
  • 2.4 本章小结
  • 第3章 控制流平展化的改进
  • 3.1 引言
  • 3.2 控制流平展化技术分析
  • 3.2.1 算法实现前提
  • 3.2.2 控制流平展化算法
  • 3.3 控制流平展化的改进研究
  • 3.3.1 控制流平展化的不足
  • 3.3.2 调度变量的保护方案
  • 3.3.3 链路状态路由思想的引入
  • 3.3.4 调度变量动态赋值算法
  • 3.3.5 不透明谓词思想的引入
  • 3.3.6 构造插入伪代码块算法
  • 3.4 本章小结
  • 第4章 改进前后实验及结果分析
  • 4.1 实验设置
  • 4.2 改进控制流平展化测试结果及分析
  • 4.3 测试代码功能性测试结果及分析
  • 4.4 源代码变形前后结果及分析
  • 4.5 源代码变形前后流程图对比分析
  • 4.6 可执行代码变形前后反汇编控制流图对比分析
  • 4.7 实验总结
  • 4.8 本章小结
  • 第5章 控制流变形模型
  • 5.1 模型思想来源
  • 5.2 模型设计思想与目标
  • 5.3 模型的建立与实现
  • 5.3.1 模型的建立
  • 5.3.2 模型的实现
  • 5.4 实验结果及分析
  • 5.4.1 实验设置
  • 5.4.2 测试代码变形后功能性测试结果及分析
  • 5.4.3 测试源代码变形后的结果及分析
  • 5.4.4 测试源代码变形后流程图对比分析
  • 5.4.5 实验总结
  • 5.5 本章小结
  • 结论
  • 参考文献
  • 攻读硕士学位期间发表的学术论文
  • 附录一 第4 章测试代码的实验结果
  • 附录二 第5 章测试代码的实验结果
  • 致谢
  • 相关论文文献

    • [1].利用代码重构改善软件设计[J]. 信息记录材料 2020(09)
    • [2].代码对比与动态规划[J]. 电脑编程技巧与维护 2017(03)
    • [3].什么样的代码才是好代码[J]. 计算机与网络 2017(06)
    • [4].安全通论(14)——病毒式恶意代码的宏观行为分析[J]. 成都信息工程大学学报 2017(01)
    • [5].恶意代码同源判定技术综述[J]. 通信技术 2017(07)
    • [6].基于方法的克隆代码检测[J]. 信息与电脑(理论版) 2017(13)
    • [7].市代码[J]. 山西教育(招考) 2020(03)
    • [8].有关信息代码[J]. 山西教育(招考) 2019(02)
    • [9].关于机场的冷知识[J]. 意林 2019(22)
    • [10].市代码[J]. 山西教育(招考) 2016(08)
    • [11].代码自动生成及代码上下文分析研究综述[J]. 数据通信 2020(02)
    • [12].智能代码补全研究综述[J]. 软件学报 2020(05)
    • [13].基于文本分类技术的恶意代码检测工具应用[J]. 科技经济导刊 2020(27)
    • [14].克隆代码映射的方法与应用[J]. 计算机工程与应用 2017(06)
    • [15].基于增强描述的代码搜索方法[J]. 软件学报 2017(06)
    • [16].银行代码安全审计工作探索与实践[J]. 网络安全技术与应用 2017(08)
    • [17].重视统一信用代码的应用[J]. 浙江经济 2017(19)
    • [18].代码依恋检测与重构研究[J]. 电子科技 2016(11)
    • [19].基于相识度的恶意代码检测[J]. 计算机科学 2015(01)
    • [20].有关信息代码[J]. 山西教育(招考) 2018(03)
    • [21].有关信息代码[J]. 山西教育(招考) 2016(Z1)
    • [22].有关信息代码[J]. 山西教育(招考) 2011(08)
    • [23].基于模糊识别恶意代码检测技术的研究[J]. 微电子学与计算机 2014(06)
    • [24].恶意代码加壳脱壳技术[J]. 辽宁警专学报 2014(05)
    • [25].代码复查的要点探讨[J]. 技术与市场 2013(06)
    • [26].代码规制:构建安全文明网络的必由之路[J]. 保密科学技术 2013(07)
    • [27].消除隔阂,提升效率——MATHWORKS推出基于MATLAB生成HDL代码的产品[J]. 世界电子元器件 2012(05)
    • [28].C~#托管代码调用非托管代码参数传递的实现方法[J]. 软件导刊 2011(01)
    • [29].恶意代码与信息安全[J]. 硅谷 2011(18)
    • [30].代码证书遗失声明[J]. 大众标准化 2010(12)

    标签:;  ;  ;  

    基于控制流平展化代码变形技术的研究
    下载Doc文档

    猜你喜欢