加入收藏 | 设为首页 | 会员中心 | 我要投稿 江门站长网 (https://www.0750zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

利用动态符号执行进行代码覆盖测验

发布时间:2022-05-18 09:47:23 所属栏目:安全 来源:互联网
导读:利用动态符号执行进行代码覆盖测试: 一、前言 代码覆盖测试主要用于漏洞研究领域。主要目的是使用不同输入覆盖程序代码的不同部分。如果某个输入导致程序崩溃,我们将检测崩溃是否能被利用。有很多代码覆盖测试的方法,比如随机测试等。但是本文重点关注使
        利用动态符号执行进行代码覆盖测试:

一、前言
 
        代码覆盖测试主要用于漏洞研究领域。主要目的是使用不同输入覆盖程序代码的不同部分。如果某个输入导致程序崩溃,我们将检测崩溃是否能被利用。有很多代码覆盖测试的方法,比如随机测试等。但是本文重点关注使用动态符号执行进行代码覆盖测试。覆盖代码不意味着能找到所有的可能的缺陷。一些缺陷不会引起程序崩溃。然而2017年刚到,勒索软件以惊人的速度爆发。这周我们发现了大量的新变种,尤其是以很有名的名次命名的FSociety。我们也发现了一些解密工具,圣诞节有关的勒索软件,CryptoMix/CryptFile2的分析,大量的小的勒索软件。
 
二、代码覆盖和动态符号执行(DSE)
 
        不像SSE(静态符号执行),DSE应用于跟踪,并且只有在执行期间达到这些分支时才能发现新的分支。要想到达另一个路径,我们必须搞清楚从上个跟踪发现的分支约束条件。然后我们重复操作,直到到达所有分支。
 
        符号执行的代码覆盖测试既有优点又有缺点。它对于在混淆的二进制文件中很有帮助。确实利用符号覆盖能检测到隐藏的、不可达到的代码但会是个平面的图表。最糟糕的是当你的表达式太复杂,可能会超时或巨大的内存消耗(在过去,我们符号表达式在超时前消耗了差不多450 G的 RAM)。这种场景主要发生在分析超大二进制文件或者包含复杂功能的混淆的二进制文件。
 
三、使用Triton进行代码覆盖测试
 
从版本v0.1 build 633开始,Triton整合了我们代码覆盖测试需要的一切。它可以让我们更好的处理及计算SMT2-lib表达的AST。下面我们将关注代码覆盖的设计和使用的算法。

(编辑:江门站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!