基于二进制代码的动态符号执行工具

基于二进制代码的动态符号执行工具

论文摘要

程序分析正在成为计算机安全领域一个重要的组成部分。它对于评估应用程序安全,乃至操作系统安全都有着特殊的意义。现有的程序分析方法很多,污染传播技术和符号执行技术是其中两种最热门且有效的方法。其中符号执行技术给出的分析结果更为精确有效,正成为国际上程序分析领域的研究热点。传统的符号执行是在不执行程序的前提下,用符号值表示程序变量的值,然后模拟程序执行来进行相关分析的技术。在分支语句处,符号执行会为此分支语句建立一个约束条件,将整条程序路径上的分支语句收集起来,便形成了这条程序路径所对应的路径约束条件。路径约束条件与程序路径是一一对应的,只有程序输入满足这个路径约束条件,程序才能沿着相应的程序路径前进。但传统符号执行技术存在状态爆炸、公式流复杂难解、执行效率低下等问题。为了解决符号执行技术中存在的问题,我们提出了一个轻量级的基于二进制代码的动态符号执行工具LDSE。该工具使用动态执行模式,并采用具体执行和符号执行相结合技术,并辅以动态反向切片技术,有效地缓解了上述问题。我们提出的轻量级基于二进制代码的动态符号执行工具LDSE的创新点为:1)采用了简洁的统一内存模型。2)实现了指令缓存器。3)增加了动态反向切片技术。4)实现了一个轻量级基于二进制代码的动态符号执行框架。实验表明,轻量级的动态符号执行工具LDSE在测试用例生成和程序路径覆盖两大应用上非常有效。动态反向切片技术更是在很大程度上缩减了问题集的规模,使得程序分析更快捷高效。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究背景与意义
  • 1.2 研究目标
  • 1.3 国内外研究现状
  • 1.4 本文的研究内容
  • 1.5 本文的组织结构
  • 1.6 本章小结
  • 第二章 程序分析相关技术介绍
  • 2.1 程序分析技术概述
  • 2.1.1 静态程序分析技术
  • 2.1.2 动态程序分析技术
  • 2.2 切片技术
  • 2.2.1 静态切片技术
  • 2.2.2 动态切片技术
  • 2.3 污染传播技术
  • 2.4 符号执行技术
  • 2.5 本章小结
  • 第三章 系统的设计与实现
  • 3.1 系统框架总述
  • 3.2 动态二进制代码插桩平台
  • 3.3 指令缓存器
  • 3.3.1 功能概述
  • 3.3.2 具体实现
  • 3.4 运行时分析引擎
  • 3.4.1 功能概述
  • 3.4.2 内存模型
  • 3.4.3 符号树
  • 3.4.4 指令分类
  • 3.4.5 API 过滤
  • 3.4.6 具体实现
  • 3.5 切片引擎
  • 3.5.1 功能概述
  • 3.5.2 设计理念
  • 3.5.3 具体实现
  • 3.6 约束求解器
  • 3.6.1 功能概述
  • 3.6.2 代搜索
  • 3.6.3 具体实现
  • 3.7 本章小结
  • 第四章 案例分析
  • 4.1 案例概述
  • 4.2 求解过程
  • 4.3 结果分析
  • 4.4 本章小结
  • 第五章 实验与分析
  • 5.1 实验环境设计与搭建
  • 5.2 实验方案与结果分析
  • 5.2.1 Benchmark 概述
  • 5.2.2 对含循环结构的目标程序的性能分析
  • 5.2.3 对含分支及分支嵌套的目标程序的性能分析
  • 5.2.4 对Windows XP CMD 应用程序的性能分析
  • 5.2.5 动态反向切片性能分析
  • 5.3 本章小结
  • 第六章 全文总结
  • 6.1 主要结论
  • 6.2 研究展望
  • 参考文献
  • 致谢
  • 攻读硕士期间已发表或录用的论文
  • 相关论文文献

    • [1].基于结构特征的二进制代码安全缺陷分析模型[J]. 网络与信息安全学报 2017(09)
    • [2].性别与科技的二进制代码[J]. 世界文化 2020(02)
    • [3].基于符号执行与实际执行的二进制代码执行路径分析[J]. 清华大学学报(自然科学版) 2009(S2)
    • [4].一种精简二进制代码的程序理解方法[J]. 计算机应用 2008(10)
    • [5].二进制代码分析实验平台搭建[J]. 实验室研究与探索 2015(05)
    • [6].基于变形的二进制代码混淆技术研究[J]. 四川大学学报(工程科学版) 2014(01)
    • [7].多种动态二进制代码插入框架的研究与分析[J]. 微计算机信息 2010(12)
    • [8].二进制代码分析实验平台设计[J]. 实验室科学 2011(06)
    • [9].二进制代码覆盖率评估系统的设计与实现[J]. 计算机工程与设计 2010(24)
    • [10].二进制代码分析与反分析技术开放实验的探索[J]. 实验室科学 2011(03)
    • [11].一种重构二进制代码中类型抽象的方法[J]. 计算机研究与发展 2013(11)
    • [12].基于空间约束的二进制代码重写技术研究[J]. 计算机应用与软件 2014(06)
    • [13].二进制代码内联库函数识别[J]. 智能计算机与应用 2015(05)
    • [14].基于FPGA的二进制代码转换电路的设计与实现[J]. 文理导航(下旬) 2016(04)
    • [15].软件二进制代码重用技术综述[J]. 软件学报 2017(08)
    • [16].未来存储新贵:DNA[J]. 初中生必读 2015(12)
    • [17].基于语义的二进制代码自动化反混淆方法[J]. 华中科技大学学报(自然科学版) 2016(03)
    • [18].一种基于全系统仿真和指令流分析的二进制代码分析方法[J]. 计算机应用研究 2011(04)
    • [19].高校图书馆数字化建设研究[J]. 天津教育 2013(08)
    • [20].基于二进制代码的动态污点分析[J]. 计算机应用研究 2014(08)
    • [21].利用LEMNA解释深度学习在网络安全的应用(下)[J]. 中国教育网络 2019(04)
    • [22].二进制代码级函数指针攻击机理与检测研究[J]. 小型微型计算机系统 2018(12)
    • [23].0说:不是我惹得祸[J]. 中小学数学(小学版) 2011(05)
    • [24].基于基本块指纹的二进制代码同源性分析[J]. 网络安全技术与应用 2017(03)
    • [25].认识机器人[J]. 少儿科学周刊(儿童版) 2015(04)
    • [26].王郁洋:划线者[J]. 艺术界 2013(03)
    • [27].手机软件二进制代码静态逆向安全测试例析[J]. 软件 2011(11)
    • [28].二进制代码级的密码算法循环特征识别[J]. 计算机工程与设计 2014(08)
    • [29].基于状态转换模型的二进制代码缓冲区溢出漏洞检测[J]. 现代计算机(专业版) 2010(15)
    • [30].数字化与数据化[J]. 住宅与房地产 2020(14)

    标签:;  ;  ;  

    基于二进制代码的动态符号执行工具
    下载Doc文档

    猜你喜欢