当前位置:主页 > 科技论文 > 软件论文 >

软件FUZZ中代码分支检测算法研究与实现

发布时间:2024-04-08 02:37
  随着互联网技术的进一步发展,计算机系统上承载着越来越多的数据,因此其安全性日益重要。软件漏洞是危害计算机信息系统安全的重要原因之一,攻击者可以通过软件漏洞实现对未授权系统的访问及更改。尽管在软件开发的各个环节都有代码安全性测试,但多方面因素导致程序漏洞无法避免。二进制程序中常见的漏洞类型有缓冲区溢出、格式化字符串、整数溢出、越界读写、条件竞争和逻辑漏洞等,不同漏洞在原理上和利用方式上会有所区别,但最终的目标都是控制程序EIP寄存器。模糊测试是发现软件漏洞的重要方法之一。目前具有代表性的模糊测试工具是AFL,通过代码插桩反馈的程序分支信息筛选种子,有效提高了种子变异的效率。尽管AFL结合了业界广泛使用的种子变异算法和程序插桩技术,但AFL在处理程序中的数据校验代码时依然乏力。为了解决这类问题,研究人员尝试在模糊测试中引入动态符号执行技术,但在使用中同样受到了其他因素的限制,例如路径爆炸、运行环境依赖复杂、效率低下等。本文旨在解决符号执行在模糊测试中应用的难点问题,创新性地提出了基于符号执行的代码分支检测算法,并在此基础之上设计了一套模糊测试系统。本文针对符号执行引擎的特点提出了基于数据流...

【文章页数】:65 页

【学位级别】:硕士

【部分图文】:

图2-2上述代码中存在的所有分支情况??路径爆炸是使用动态符号执行进行二进制代码分析时不可避免的一个问题

图2-2上述代码中存在的所有分支情况??路径爆炸是使用动态符号执行进行二进制代码分析时不可避免的一个问题

??(24)种状态(如图2-2所示),cnt存在五个可能的值,但是只有一个值能够触??发漏洞。在执行过程中,符号执行引擎可以收集到程序关于输入的约束条件。对??于最左侧的叶子节点,给定随机输入,符号执行引擎执行结束后即可获得该路径??约束条件p=<il#a,i2冉),i3弁,i4....


图3-1栈结构与栈溢出效果图??如果存在栈溢出漏洞,可以看到,从存在栈溢出的变量开始,自上而下的数??,eb、地址

图3-1栈结构与栈溢出效果图??如果存在栈溢出漏洞,可以看到,从存在栈溢出的变量开始,自上而下的数??,eb、地址

到低地址的存储。x86架构使用call指令来完成一个函数的调用,该指令实际完??成两个操作:第一步,将EIP寄存器的值设置成目标代码的地址;第二步,将call??指令的下一条指令的地址压入栈顶。如图3-1所示,每一次的函数调用都会创建??一个函数独享的栈帧,栈的底部是函数返回地址....


图3-2格式化字符串攻击示意图??上述示例完成了两个功能,泄露内存数据和任意地址写入任意数据,这是一??

图3-2格式化字符串攻击示意图??上述示例完成了两个功能,泄露内存数据和任意地址写入任意数据,这是一??

等数据传输接口。现在我们假设userjnput可以包含任意内容的数据,那么现在??攻击者已经可以构造包含任意模式的输入了,包括。/on、这两个比较重要的模??式。图3-2给出了在x86架构下32位系统中一种可能的栈布局,format指针和??其对应的格式化字符串存储在栈上相邻的位....


图4-7输入流交叉示意图??图4-7给出了一种可能的情况:输入中的第一段数据只对状态S1有作用,??

图4-7输入流交叉示意图??图4-7给出了一种可能的情况:输入中的第一段数据只对状态S1有作用,??

分支图?状态树??图4-6分支图与状态树的关系??事实上在建立状态树的过程中还存在另外一个问题,考虑如图4-7所示的一??种情况。??种子A?种子B?种子C????????MMH?X?mm???MOW?S?<NMt???)MM*?X?3MHC?*???NMM?9t?*?mm???....



本文编号:3948356

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3948356.html


Copyright(c)文论论文网All Rights Reserved | 网站地图

版权申明:资料由用户39bef***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com