基于逆向分析的软件漏洞挖掘与利用技术研究

基于逆向分析的软件漏洞挖掘与利用技术研究

论文摘要

本文首先探讨了软件漏洞挖掘与利用技术中的关键技术——Shellcode技术,掌握Shellcode的原理与编写方法对于我们利用软件漏洞有着非常重要的指导意义。软件漏洞的挖掘方法分为两种:正向分析法和逆向分析法。正向分析法在知道软件源代码的基础上,通过正则表达式的分析,找出源代码中未加边界检查的数组和存在问题的函数调用,从而发现软件漏洞。然而,在大多数情况下,我们是无法获得应用程序源代码的,这就需要逆向分析法来帮助我们。逆向分析在不知道源代码的情况下,通过反汇编技术、跟踪调试等相关手段,挖掘应用程序中存在的漏洞。本文主要探讨了逆向分析中的代码覆盖测试法,在此基础上,提出了基于代码覆盖技术的软件漏洞挖掘工具的设计原理与实现方法。针对不同的软件漏洞类型,可以采用不同的软件漏洞利用方法。本文主要针对常见的漏洞类型:缓冲区溢出漏洞、格式化字符串漏洞和基于堆/BSS段溢出漏洞,分析了三种不同的利用方法,这些方法在现实的软件漏洞攻击中都是常用技术。最后,本文给出了三个软件漏洞挖掘与利用的实例,其中第二个实例和第三个实例是2007年和2008年两个非常严重的Windows系统漏洞。通过对实例的分析,进一步阐述了基于逆向分析的软件漏洞挖掘与利用技术的原理与方法。

论文目录

  • 摘要
  • Abstract
  • 第一章 绪论
  • 1.1 软件漏洞挖掘
  • 1.2 软件漏洞利用
  • 1.3 本文结构
  • 第二章 Shellcode 技术
  • 2.1 什么是Shellcode
  • 2.2 编写Shellcode
  • 2.2.1 寄存器
  • 2.2.2 获取EIP
  • 2.2.3 编码与解码
  • 2.2.4 获得函数地址
  • 2.2.5 建立Socket
  • 2.2.6 启动Shell
  • 2.3 本章小结
  • 第三章 漏洞挖掘与检测
  • 3.1 软件漏洞分类
  • 3.1.1 缓冲区溢出漏洞
  • 3.1.2 格式串漏洞
  • 3.1.3 堆/BSS 段溢出漏洞
  • 3.2 基于源代码的挖掘与检测
  • 3.2.1 静态挖掘与检测
  • 3.2.2 动态挖掘与检测
  • 3.3 基于二进制代码逆向分析的挖掘和检测技术
  • 3.3.1 PE 文件与虚拟内存
  • 3.3.2 反汇编技术
  • 3.3.3 软件版本差异比较
  • 3.3.4 输入追踪测试
  • 3.3.5 利用静态分析工具自动分析
  • 3.3.6 代码覆盖测试
  • 3.4 软件漏洞挖掘工具的设计与实现
  • 3.4.1 函数调用关系识别模块
  • 3.4.2 函数基本块分析模块
  • 3.4.3 数据流控制和分析模块
  • 3.4.4 错误注入模块
  • 3.5 本章小结
  • 第四章 漏洞利用技术
  • 4.1 缓冲区溢出漏洞攻击
  • 4.1.1 缓冲区溢出漏洞危害
  • 4.1.2 引起缓冲区溢出的库函数
  • 4.1.3 缓冲区溢出攻击
  • 4.2 格式化字符串漏洞的攻击
  • 4.2.1 格式化字符串漏洞的危害
  • 4.2.2 引起格式化字符串漏洞的库函数
  • 4.2.3 格式化字符串攻击
  • 4.3 基于堆/BSS 段溢出漏洞的攻击
  • 4.3.1 基本概念
  • 4.3.2 堆/BSS 段溢出漏洞攻击
  • 4.4 本章小结
  • 第五章 漏洞挖掘与利用实例
  • 5.1 实例一
  • 5.1.1 漏洞代码
  • 5.1.2 漏洞挖掘与应用
  • 5.2 实例二
  • 5.2.1 漏洞概述
  • 5.2.2 漏洞攻击原理
  • 5.2.3 漏洞攻击过程
  • 5.2.4 漏洞防御
  • 5.3 实例三
  • 5.3.1 漏洞概述
  • 5.3.2 漏洞攻击原理
  • 5.3.3 漏洞攻击过程
  • 5.3.4 漏洞防御
  • 5.4 本章小结
  • 第六章 总结与展望
  • 6.1 论文总结
  • 6.2 前景展望
  • 参考文献
  • 致谢
  • 攻读学位期间发表的学术论文目录
  • 相关论文文献

    • [1].我国软件漏洞交易之立法建议[J]. 中国信息安全 2015(04)
    • [2].软件漏洞产业:现状与发展[J]. 中国信息安全 2010(01)
    • [3].软件漏洞的特征、分类与评估方法研究[J]. 计算机产品与流通 2018(08)
    • [4].软件漏洞市场研究[J]. 商场现代化 2010(09)
    • [5].软件漏洞自动利用研究进展[J]. 中国教育网络 2016(Z1)
    • [6].纵论基础科研在软件漏洞发现中的作用[J]. 中国信息安全 2010(11)
    • [7].软件漏洞自动利用研究综述[J]. 广州大学学报(自然科学版) 2019(03)
    • [8].基于混合深度学习模型的网络服务软件漏洞挖掘方法[J]. 宁夏师范学院学报 2020(07)
    • [9].知识、探索与状态平面组织的软件漏洞分析架构研究[J]. 信息安全学报 2019(06)
    • [10].0day安全:软件漏洞分析技术(第2版)[J]. 信息安全与通信保密 2013(11)
    • [11].试谈软件漏洞的分类[J]. 电脑编程技巧与维护 2011(12)
    • [12].基于机器学习的软件漏洞挖掘方法综述[J]. 软件学报 2020(07)
    • [13].基于AFL的软件漏洞模糊测试[J]. 科学技术创新 2018(36)
    • [14].金融行业开源软件漏洞风险评估框架研究[J]. 计算机应用与软件 2018(09)
    • [15].取巧点餐软件漏洞成盗窃[J]. 检察风云 2019(18)
    • [16].开源软件漏洞安全风险分析[J]. 保密科学技术 2020(02)
    • [17].上下文相关的软件漏洞模式自动提取方法[J]. 计算机工程 2010(17)
    • [18].软件漏洞产业:现状与发展[J]. 清华大学学报(自然科学版) 2009(S2)
    • [19].基于Sigmoid函数的软件漏洞风险评价算法[J]. 信息安全研究 2018(11)
    • [20].基于双向切片的软件漏洞分析技术研究[J]. 微电子学与计算机 2011(08)
    • [21].软件漏洞的分类研究[J]. 计算机系统应用 2008(11)
    • [22].基于CVE-2012-0158的软件漏洞分析与利用[J]. 计算机系统应用 2014(11)
    • [23].软件漏洞静态检测模型及检测框架[J]. 计算机科学 2016(05)
    • [24].基于关联分析的软件漏洞评估方法[J]. 信息安全与通信保密 2014(11)
    • [25].计算机软件漏洞与防范措施的研究[J]. 吉林农业科技学院学报 2010(02)
    • [26].WebFuzz的Web软件漏洞测试[J]. 软件导刊(教育技术) 2012(08)
    • [27].“软件漏洞分析与防范”课程建设[J]. 软件导刊 2018(03)
    • [28].开源软件漏洞补丁的采集与整理[J]. 河北省科学院学报 2016(03)
    • [29].基于软件漏洞的克隆代码稳定性评估方法[J]. 中国新通信 2018(06)
    • [30].软件漏洞分析中的脆弱点定位方法[J]. 国防科技大学学报 2015(05)

    标签:;  ;  ;  

    基于逆向分析的软件漏洞挖掘与利用技术研究
    下载Doc文档

    猜你喜欢