模糊测试中常见的10种变异mutation策略
1. 引入
基于变异策略的模糊测试,有两个重点:
(1)seed:种子,初始的合法输入序列。
(2)mutation:对已经存在的输入序列,进行微调。
所以,mutation的策略就比较重要,常用的mutation策略如下所示。
2. mutation策略(变异策略)
-
Flip one random bit(翻转一个随机位)
- 把某一bit从0变为1,或者从1变为0
-
Alternate one or multiple consecutive bytes(交换一个或多个连续字节)
- 比如将每个字节的值与其相邻字节的值进行交换或按某种规则改变
-
Erase one or multiple bytes from random offsets(从随机偏移量处删除一个或多个字节)
- 从某个随机的位置开始,随机删除一部分字节数据
-
Insert one or multiple bytes to random offsets(在随机偏移量处插入一个或多个字节)
- 从某个随机的位置开始,随机插入一部分字节数据
-
Repeat existing bytes multiple times(重复现有字节多次)
- 选择数据中的一段字节序列,并将这段序列重复多次插入到原位置或其他位置,可能导致数据膨胀或程序逻辑错误。
-
Add a word from a predefined dictionary(添加一个来自预定义字典的单词)
- 从字典中随机选择一个单词,并将其插入到数据的某个位置
-
Shuffle consecutive bytes (reorder multiple bytes randomly)(随机重排连续字节)
- 将一段连续字节的顺序随机打乱,而不改变这些字节的值。
-
Copy a substring and paste it randomly offsets(复制一个子字符串并随机粘贴到偏移量处)
- 从数据中复制一段子字符串,并将其粘贴到数据的另一个随机位置。
-
Crossover(交叉)
- 也称为杂交或基因重组,这个操作通常涉及两个或多个数据样本,通过交换它们的一部分来生成新的数据样本。这是遗传算法的手法。
-
Apply mutation one or more times on a single seed input(对单个种子输入应用一次或多次变异)
- 选择一个初始的“种子”输入,然后对其应用上述一个或多个变异策略一次或多次,以生成多个不同的测试样本。
3. 参考
http://sigsoft.or.kr/wp-content/uploads/2021/01/20210324_005245.pdf
相关文章:
模糊测试中常见的10种变异mutation策略
1. 引入 基于变异策略的模糊测试,有两个重点: (1)seed:种子,初始的合法输入序列。 (2)mutation:对已经存在的输入序列,进行微调。 所以,mutatio…...

opencv-android编译遇到的相关问题处理
1、opencv-android sdk下载 下载地址:https://opencv.org/releases/ 下载安卓SDK即可 2、解压下载好的SDK 3、导入opencv的SDK到安卓项目中 导入步骤在/OpenCV-android-sdk/sdk/build.gradle文件的注释中写的非常详细,大家可安装官方给出的步骤导入。…...
把 py脚本生成windows 可执行的文件
1 确保生成的exe文件,不会立即退出 input("Please input any key to exit!")2 安装 PyInstaller 确保已经安装了 PyInstaller。可以使用 pip 来安装它: pip install pyinstaller3 执行命令 这里的 --onefile 选项表示将所有依赖项打包到一…...
云计算的发展历史与未来展望
云计算的起源与发展 云计算的概念最早可以追溯到20世纪60年代,当时的计算机科学家约翰麦卡锡(John McCarthy)提出了“按需提供计算能力”的构想。尽管这一理念在当时的技术条件下无法实现,但为云计算的未来发展奠定了理论基础。 …...

基于飞腾S2500处理器的全国产加固服务器
近日,西安康德航测电子科技有限公司凭借其深厚的行业底蕴和创新精神,正式推出了基于飞腾S2500处理器的全国产加固服务器。这一产品的问世,不仅标志着我国在信息技术领域的自立自强迈出了坚实的一步,更以其卓越的性能、坚固的设计和…...

gitlab-cicd部署安装与具体操作
一、安装 本例中是用安装包直接在ubuntu下安装的,也可以用docker镜像。 curl -LJO https://gitlab-runner-downloads.s3.amazonaws.com/latest/rpm/gitlab-runner_amd64.rpmrpm -i gitlab-runner_amd64.rpm 安装runner后,需要跟在runner所在服务器安装…...
2022高等代数上【南昌大学】
2022 高等代数 证明: p ( x ) p(x) p(x) 是不可约多项式的充要条件是对任意的多项式 f ( x ) , g ( x ) f(x), g(x) f(x),g(x),若 p ( x ) ∣ f ( x ) g ( x ) p(x) \mid f(x)g(x) p(x)∣f(x)g(x),则有 p ( x ) ∣ f ( x ) p(x) \mid f(x) p(x)∣f(x) 或 p ( x ) ∣ g (…...

文本生成类(机器翻译)系统评估
在机器翻译任务中常用评价指标:BLEU、ROGUE、METEOR、PPL。 这些指标的缺点:只能反应模型输出是否类似于测试文本。 BLUE(Bilingual Evaluation Understudy):是用于评估模型生成的句子(candidate)和实际句子(referen…...

11.7【miniob】【debug】
这里的vector是实际值,而relation是指针,所以要解引用,*$1,并在最后调用其析构函数 emplace_back 和 push_back 都是用于在容器(如 std::vector)的末尾添加元素的方法,但它们的工作方式有所不同…...
OSHI 介绍与使用
OSHI 介绍 OSHI(Operating System and Hardware Information)是一个开源的Java库,用于从操作系统和硬件层面获取系统资源的详细信息。它提供了对操作系统、硬件、CPU、内存、磁盘、网络接口等多种信息的访问,且不依赖于平台特定的…...

Hadoop生态圈框架部署(八)- Hadoop高可用(HA)集群部署
文章目录 前言一、部署规划二、Hadoop HA集群部署(手动部署)1. 下载hadoop2. 上传安装包2. 解压hadoop安装包3. 配置hadoop配置文件3.1 虚拟机hadoop1修改hadoop配置文件3.1.1 修改 hadoop-env.sh 配置文件3.3.2 修改 core-site.xml 配置文件3.3.3 修改 …...

【RocketMQ】Name Server 无状态特点及如何让 Broker Consumer Producer 感知新节点
文章目录 前言1. Name Server 无状态特点2. Name Server 地址服务3. Name Server 手动配置后记 前言 看了 《RocketMQ 消息中间件实战派(上册)》前面一点,书中代码太多容易陷入细节。 这里简单描述下 RocketMQ Name Server 无状态表现在什么…...

蓝牙定位的MATLAB程序,四个锚点、三维空间
这段代码通过RSSI信号强度实现了在三维空间中的蓝牙定位,展示了如何使用锚点位置和测量的信号强度来估计未知点的位置。代码涉及信号衰减模型、距离计算和最小二乘法估计等基本概念,并通过三维可视化展示了真实位置与估计位置的关系。 目录 程序描述 运…...

机器学习--绪论
开启这一系列文章的初衷,是希望搭建一座通向机器学习世界的桥梁,为有志于探索这一领域的读者提供系统性指引和实践经验分享。随着人工智能和大数据技术的迅猛发展,机器学习已成为推动技术创新和社会变革的重要驱动力。从智能推荐系统到自然语…...
Unity 设计模式-命令模式(Command Pattern)详解
命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成对象,从而使得可以使用不同的请求、队列或日志请求,以及支持可撤销的操作。命令模式通常包含四个主要角色:命令(Command…...

线程信号量 Linux环境 C语言实现
既可以解决多个同类共享资源的互斥问题,也可以解决简易的同步问题 头文件:#include <semaphore.h> 类型:sem_t 初始化:int sem_init(sem_t *sem, int pshared, unsigned int value); //程序中第一次对指定信号量调用p、v操…...

karmada-descheduler
descheduler规则 karmada-descheduler 定期检测所有部署,通常是每2分钟一次,并确定目标调度集群中无法调度的副本数量。它通过调用 karmada-scheduler-estimator 来完成这个过程。如果发现无法调度的副本,它将通过减少 spec.clusters 的配…...

【热门主题】000075 探索嵌入式硬件设计的奥秘
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…...
Android okhttp请求
下面是一个用 OkHttp 封装的 GET 请求方法,适用于 Android 项目。该方法包括基本的网络请求、错误处理,并支持通过回调返回结果。 封装 GET 请求的工具类 添加依赖 在你的 build.gradle 文件中,确保添加了 OkHttp 的依赖: imple…...

嵌入式蓝桥杯学习4 lcd移植
cubemx配置 复制前面配置过的文件 打开cubemx,将PB8,PB9配置为GPIO-Output。 点击GENERATE CODE. 文件移植 1.打开比赛提供的文件包,点击Inc文件夹 2.点击Inc文件夹。复制fonts.h和lcd.h,粘贴到我们自己的工程文件夹的bsp中(…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...