论文阅读:Directed Greybox Fuzzing

news2024/11/28 4:16:00

一、论文相关信息

 

 

二、现有研究的不足

        现有的Greybox模糊器(GF)无法有效地定向到有问题的更改或补丁、关键系统调用或危险位置、或定向到我们希望重现的已报告漏洞的堆栈跟踪中的函数。

三、知识点

(1)introduction

        定向模糊测试系统通常包含以下几个部分:补丁测试、崩溃重现、静态分析报告验证、信息流检测。

        大多数定向(白盒)模糊测试系统均基于符号执行,符号执行及那个静态分析中的图可达性问题转换成一个可迭代的约束求解问题。但是基于符号执行的白盒fuzzer只是定向fuzzing的一个trivial handle,因为其需要花费大量的时间进行程序分析和约束求解。

        符号执行的流程例子:

图1 一段示例代码

         本文提出的定向灰盒模糊测试(Directed greybox fuzzing,DGF)将可达性问题看成优化问题,使用模拟退火算法进行优化。

        路径测试工具(path testing tool):KATCH(符号执行引擎KLEE)、PRV、MATPIX、CIE、DiSE;

        崩溃重现工具(crash reproduction tool):BugRedux

(2)motivation 

图2 心脏滴血实例代码 

        心脏滴血漏洞原理:回复包的内容是请求包中的载荷复制而来,但具体复制多少数据不是由载荷的实际大小决定,而是由发送方声称的大小决定。因此,如果声称载荷的长度比实际载荷还要大,memcpy()函数处理会复制请求包中的数据,还会复制更多数据到回复包。

        种子通过变异生成新的输入的个数,也被称为能量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二章(一):Django框架的模型(Model)

系列文章目录 备注:这里是Django系列文章的所有文章的目录 第一章(一) : Django框架如何创建项目、创建应用、创建templates;如何启动django项目; 第一章(二):Django框架的模式、路由、视图; 第一章(三):Dj…

learn C++ NO.7——C/C++内存管理

引言 现在是5月30日的正午,图书馆里空空的,也许是大家都在午休,也许是现在37摄氏度的气温。穿着球衣的我已经汗流浃背,今天热火战胜了凯尔特人,闯入决赛。以下克上的勇气也激励着我,在省内垫底的大学中&am…

JS的异或运算XOR

概念 异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。 两个值相同时,返回false,否则返回true。也就是说,XOR可以用来判断两个值是否不同。 JavaScript 语言…

企业级信息系统开发——Spring Boot加载自定义配置文件

文章目录 一、使用PropertySource加载自定义配置文件(一)创建Spring Boot Web项目ConfigDemo01(二)创建自定义配置文件(三)创建自定义配置类(四)编写测试方法(五&#xf…

一键部署属于自己的ChatGPT-Next-Web

完整功能刚需: OpenAI 注册登录之后给的 api Key GitHub账号 Netlify账号 Tip: 注册 OepenAI账号 需要用国外手机号 这里建议去一些渠道购买账号 十块钱不到如果访问 OpenAI 的话 一定要挂欧美节点 否则禁止IP访问 概率会被封号为什么用 Netlify 托…

测试替身Test Doubles的5类型(Mockito)

测试替身Test Doubles的5类型(Mockito) 我们有一个名为 BankAccount 的类。 数据库用于存储和检索银行帐户信息。 我们想测试 BankAccount 中的逻辑,而不必担心它使用的底层数据库.由此类实现——它将 SQL 查询发送到数据库并返回其中包含的值。 测试替身Test Dou…

SuperMap iDesktopX扩展开发之GPA算子扩展

作者:dongyx SuperMap iDesktopX是超图研究院推出的一款跨平台的桌面GIS软件,兼容Windows和Linux,同时iDesktopX也采用的是插件式扩展开发框架,支持定制开发。 使用iDesktopX定制开发有以下优势: ⚫ 采用 Swing 图形界…

VM虚拟机仿真网络问题

在电子数据取证中,拿到一个镜像需要仿真的时候,经常会遇到网络问题。尤其是Linux服务器镜像,例如centos操作系统的镜像,一般镜像会有固定IP设置,仿真起来后,系统与本机不能建立连接,不能连接互联…

VSCode远程连接Ubuntu使用LLDB调试程序

VSCode已经具有远程开发的能力,可以使用SSH连接到Linux/MacOS进行远程开发,包括编译与调试,只需要安装Remote Development插件即可,如果想使用CMake管理项目,则需要将VSCode的CMake以及CMake Tools插件安装在远程机器上…

SpringBoot自定义打印横幅

众所周知,springboot项目启动的时候会打印横幅,横幅内容就是spring; 而spring boot提供了一个Banner接口用于处理启动横幅,默认情况下启动会打印如下信息 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( (…

分布式系统

一.分布式理论基础 1.CAP理论 CAP定理是分布式系统中的重要理论,在一个分布式系统中最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的…

以太网驱动的流程浅析(五)-mii_bus初始化以及phy id的获取

【硬件环境】 Imx6ul 【Linux kernel版本】 Linux4.1.15 【以太网phy】 Realtek8201f 1.1. 以太网驱动probe流程 1.1 mii_bus初始化以及phy id的获取 然后进行mii的一些初始化fec_enet_mii_init(pdev); 主要是对struct mii_bus这里的成员进行初始化 并且会做注册mdiobus的…

小笔记-简单但够用系列_jupyter notebook 的重新安装问题

文章目录 目的目标步骤 目的 做程序开发时,想到 jupyter notebook 的浏览器交互式执行,决定再次启用放置许久的 jupyter notebook。 但太久没有执行的 jupyter notebook 在打开页面有一旦打开或创建新的 python,就自动报错退出。 使用过往经…

Blender UV展开流程

目录 1. UV1.1 blender默认物体1.2 创建物体1.3 UV参考图1.4 标记缝合边1.5 UV拉伸1.6 孤岛模式 1. UV 1.1 blender默认物体 默认物体已经自动生成UV 在UV编辑工作区,编辑模式,全选物体在左边自动展开UV 在物体数据属性-UV贴图-存在默认的UV贴图&#…

华为OD机试真题B卷 Java 实现【输入整型数组和排序标识,对其元素按照升序或降序进行排序】,附详细解题思路

一、题目描述 输入整型数组和排序标识,对其元素按照升序或降序进行排序 数据范围: 1≤n≤1000 ,元素大小满足 0≤val≤100000 。 二、输入描述 第一行输入数组元素个数;第二行输入待排序的数组,每个数用空格隔开;第三行输入一个整数0或1。0代表升序排序,1代表降序排序…

UOS桌面系统使用RLinux恢复数据

UOS桌面系统使用RLinux恢复数据 一、工具介绍二、注意事项三、准备四、制作live系统启动盘五、拷贝文件六、进入live系统一、工具介绍 R-Linux 是一款用于 Linux 和某些 Unixes 操作系统 Ext2/Ext3/Ext4 FS 文件系统的免费文件恢复实用工具。R-Linux 与 R-Studio 使用相同的 I…

如何使用ArcGIS进行选房分析

无论是城市规划布局研究,还是为自己找一个心仪的住房,都需要综合考虑购物、医疗、教育和休闲等诸多因素,若单纯依靠人力去寻找,十分的麻烦和耗时。 此时ArcGIS强大的分析功能就凸显了出来,我们可以通过空间上的距离关…

chatgpt赋能python:Python中同一键可以对应多个值吗?

Python中同一键可以对应多个值吗? Python是一门简单、易学且功能强大的编程语言,它广泛应用于Web开发、机器学习、数据科学等领域。Python的数据结构中的字典(dictionary)是其中一个非常有用的数据结构,它可以存储键值…

解锁高并发世界:深入探索并发编程和线程池技术的实用指南

《深入理解高并发编程:JDK核心技术》这本书是一本非常实用的编程指南,旨在帮助读者深入理解并发编程和线程池技术。笔者将目录分为两大部分:基础篇、工具篇和线程池技术篇。 这本书提供了广泛的内容覆盖和深入的讲解,适合读者在高并发编程领…

MT8183核心板 MTK8183处理器规格参数

MT8183核心板集成了多项高性能硬件,是一款功耗低、高效能的芯片,可以支持高质量的平板电脑平台设计。该芯片结合了一个八核CPU,其中包括四个Arm Cortex-A73的“大核心”和四个Cortex-A53核心,全部运行速度高达2GHz,还有…