AFL++安装
学习fuzzing也几天了,今天记录AFL++的安装及使用
一、实验环境
虚拟机:ubuntu20.04

当然也可以uname -a去看自己的版本号
二、AFL++安装
1.先更新一下工具
sudo apt update
2.安装AFL++必要的一些依赖,例如编译工具(如 build-essential)、Python 开发环境、自动化构建工具(如 automake)。
sudo apt install -y build-essential python3-dev automake cmake git flex bison libglib2.0-dev libpixman-1-dev python3-setuptools cargo libgtk-3-dev
在过程中我开始遇到被2954进程占用,如下图

这个进程是管包更新的。我本来准备kill这个进程,但过了一会他便好了

3.克隆AFL++仓库
git clone https://github.com/AFLplusplus/AFLplusplus.git
克隆好后去下方的文件夹
cd AFLplusplus

4.编译安装AFL++
我开始make all指令后,出现下面问题

遇到的错误是因为缺少 GCC 插件开发头文件,于是我开始安装。先下面看gcc的版本号
gcc -v | head -n1

然后安装gcc插件包
sudo apt install gcc-9-plugin-dev
# 若版本是 12.x,改为:
# sudo apt install gcc-12-plugin-dev

安装完事后,再重新编译AFL++
make clean # 清理旧编译文件(可选)
make # 重新执行编译

同时,我也将其安装到系统,使其可以全局使用
sudo make install

5.检测AFL++是否安装成功
afl-fuzz --help

到这AFL++安就安好了
三、安装VScode
这不是重点,我们快速带过
安装命令如下
sudo apt update
sudo apt install software-properties-common apt-transport-https wget
# 添加微软签名密钥
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/microsoft.gpg
# 添加 VS Code 软件源
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
# 安装 VS Code
sudo apt install code
启动命令如下:
code

四、使用AFL++
4.1 实验准备
我们先编写一个test.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main(int argc, char *argv[]) {char buffer[100];if (argc > 1) {strcpy(buffer, argv[1]);printf("You entered: %s\n", buffer);}return 0;
}
这里很明显可以看出缓冲器漏洞
回顾一下平常我们怎么启用
gcc test.c -o test
#其中,test.c是源文件名,-o test指定生成的可执行文件名为test
./test xxx
#./test就可以启动test.exe,后面xxx可以输进去东西

4.2 工具测试
**1.编译目标程序。**使用 AFL++ 提供的编译器包装器 afl-clang-fast 或 afl-gcc 来编译目标程序,以便在运行时收集模糊测试所需的信息。这里以 afl-clang-fast 为例:
afl-clang-fast -g -o test test.c

遇到一个问题,安一下afl-clang-fast
sudo apt install afl++-clang

再执行就OK了

2.创建基础文件
模糊测试需要一些初始的输入数据作为测试的起点。创建一个包含简单输入的文件
mkdir in
echo "Hello" > in/test_input
mkdir out

3.启动模糊测试
使用 afl-fuzz 命令启动模糊测试,指定输入目录、输出目录和要测试的目标程序:
afl-fuzz -i in -o out ./test @@
-i in:指定包含初始输入文件的目录。
-o out:指定用于存储模糊测试结果的输出目录。
./test @@:指定要测试的目标程序,@@ 是 AFL++ 的占位符,表示在运行目标程序时将自动替换为生成的输入文件。
执行遇到一个小问题

从你给出的错误信息可知,系统当前的 core_pattern 配置会致使在捕获程序崩溃时出现延迟,从而影响 AFL++ 的正常运行。AFL++ 建议你修改 /proc/sys/kernel/core_pattern 的配置
我们在这个框临时解决一下
echo core | sudo tee /proc/sys/kernel/core_pattern
该命令的作用是把 /proc/sys/kernel/core_pattern 的值设定为 core,如此一来,系统在产生核心转储文件时就不会借助外部工具,从而避免了延迟问题。
不过,这种修改仅在当前会话中有效,系统重启之后配置会恢复原状。
再执行:

就产生下面的运行结果图:

还有

相关文章:
AFL++安装
学习fuzzing也几天了,今天记录AFL的安装及使用 一、实验环境 虚拟机:ubuntu20.04 当然也可以uname -a去看自己的版本号 二、AFL安装 1.先更新一下工具 sudo apt update2.安装AFL必要的一些依赖,例如编译工具(如 build-essen…...
开发者社区测试报告(功能测试+性能测试)
功能测试 测试相关用例 开发者社区功能背景 在当今数字化时代,编程已经成为一项核心技能,越来越多的人开始学习编程,以适应快速变化的科技 环境。基于这一需求,我设计开发了一个类似博客的论坛系统,专注于方便程序员…...
如何优化 VS Code 远程开发环境?高效配置与性能提升策略
相关系列文章 《新手教学系列——善用 VSCode 工作区,让开发更高效》 《新手教学系列——用 VSCode 实现高效远程开发》 《Webpack 优化全攻略:彻底解决 Vue 项目 npm run dev 的内存泄露问题》 引言 随着开发环境不断进化,VS Code 作为一款轻量级的代码编辑器,已经成为…...
【二】JavaScript能力提升---this对象
目录 this的理解 this的原理 事件绑定中的this 行内绑定 动态绑定 window定时器中的this 相信小伙伴们看完这篇文章,对于this的对象可以有一个很大的提升! this的理解 对于this指针,可以先记住以下两点: this永远指向一个…...
YC 孵化项目 Pinch:实时语音翻译视频会议平台;Mistral OCR:能处理多语言多模态复杂文档丨日报
开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 …...
OSPF报文分析
OSPF报文分析 组播地址 224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用; 224.0.1.0~238.255.255.255为用户可用的组播地址(…...
蓝桥杯刷题周计划(第二周)
目录 前言题目一题目代码题解分析 题目二题目代码题解分析 题目三题目代码题解分析 题目四题目代码题解分析 题目五题目代码题解分析 题目六题目代码题解分析 题目七题目代码题解分析 题目八题目题解分析 题目九题目代码题解分析 题目十题目代码题解分析 题目十一题目代码题解分…...
PH热榜 | 2025-03-09
1. ResumeUp 2.0 标语:聊聊,几分钟内就能帮助你打造完美的ATS简历。 介绍:告别为写完美简历而烦恼的日子吧!只需与人工智能聊天,回答几个简单的问题,就能在几分钟内生成强有力的简历,不仅能通…...
《gradio :AI demos》
《gradio :AI demos》 Folders and files Name Last commit message Last commit date parent directory .. agent_chatbot Declare exports in __all__ for type checking (#10238) 3 months ago all_demos Fix deployed Spaces (#10271) 2 months ago …...
Interop_UdsProtocolStack之数据解析器使用方法
一、背景与需求 在汽车电子领域,UDS(Unified Diagnostic Services)协议栈的响应报文解析是实现ECU诊断功能的核心环节。本文提出一种基于配置驱动的通用解析器开发方案,满足以下行业需求: 多协议兼容性:支…...
从0开始完成基于异步服务器的boost搜索引擎
文章目录 前言一、本项目涉及的技术栈和环境二、boost是什么?三、项目的相关背景四、项目的相关原理五、正排索引 vs 倒排索引 - 搜索引擎具体原理六、 编写数据去标签与数据清洗的模块 Parser6.1 下载boost的文档库6.2 去标签6.3 代码编写 七、索引模块7.1. 整体框…...
炒菜本质是 “能量(火候)与食材特性”的动态平衡
炒菜看似简单,但想要做到色香味俱全,需遵循一套清晰的逻辑链条。以下从底层逻辑到实操步骤拆解: 一、核心逻辑:控制变量,精准匹配 炒菜本质是 “能量(火候)与食材特性”的动态平衡,…...
AI Copilot——维新派的贾维斯,守旧派的墓志铭(程序员视角)
6500万年前的那颗陨石好像要落下来了 这一段时间,伴随着claude sonnet 3.7的发布 以及cursor,windsurf 等一众AI智能编辑器的涌现,社区的programming自媒体坐不住了,有一个观点已经快要溢出屏幕:程序员这个岗位要黄&a…...
Java Spring MVC (2)
常见的Request Controller 和 Response Controller 的区别 用餐厅点餐来理解 想象你去一家餐厅吃饭: Request Controller(接单员):负责处理你的点餐请求,记录你的口味、桌号等信息。Response Controller(…...
对开源VLA sota π0的微调——如何基于各种开源数据集、以及你自己的私有数据集微调π0(含我司的微调实践)
前言 25年2.4日,几个月前推出π0的公司Physical Intelligence (π)宣布正式开源π0及π0-FAST,如之前所介绍的,他们对用超过 10,000 小时的机器人数据进行了预训练 该GitHub代码仓库「 π0及π0-FAST的GitHub地址:github.com/Ph…...
[排序算法]直接插入排序
1.基本思想 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。 实际中我们玩扑克牌时,就用…...
四、云原生应用监控-Etcd
Etcd 是 Kubernetes 内部核心组件之一,作为分布式键值存储,天然支持 Prometheus 监控,自带 /metrics 端点,可直接被 Prometheus 抓取。 Etcd监控需要使用到证书。 一、检查云原生Etcd 检查节点上的Etcd [root@k8s-master01 manifests]#netstat -lnpt |grep etcd tcp …...
STM32-I2C通信外设
目录 一:I2C外设简介 二:I2C外设数据收发 三:I2C的复用端口 四:主机发送和接收 五:硬件I2C读写MPU6050 相关函数: 1.I2C_ GenerateSTART 2.I2C_ GenerateSTOP 3.I2C_ AcknowledgeConfig 4.I2C…...
CTA策略【量化理论】
CTA策略演变史 全称:Commodity Trading Advisor (商品交易顾问) CTA最开始是指通过为客户提供期权、期货方面的交易建议,或者直接通过受管理的期货账户参与实际交易,来获得收益的机构或个人。 随着市场的发展&#…...
基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案分享
作者:Hello,Panda 各位FPGAer周末愉快,今天熊猫君分享一个基于AMD AU15P FPGA的SLVS-EC桥PCIe设计方案。 一、方案背景 先说方案的应用背景:众所周知,较为上层的如基于AI的机器视觉应用,大多基于高端的专用SoC、AI专…...
遇到“用户对AIAgent进行提示词注入”怎么办?
文章目录先理解什么是“提示词注入”图片里的防护方法(两层)第一层:System Prompt 先贴“封条”第二层:输出端再加“安检门”总结先理解什么是“提示词注入” 你可以把 Agent(智能助手) 想象成一个 严格遵…...
SystemVerilog内存操作实战:手把手教你实现AXI VIP中的backdoor读写
SystemVerilog内存操作实战:AXI VIP中的backdoor读写技术解析 在硬件验证领域,AXI总线协议因其高性能和灵活性已成为行业标准。验证工程师经常需要与AXI VIP(Verification IP)交互,其中内存操作是最基础也最关键的环节…...
终极LxgwWenKai字体配置指南:如何为VSCode和IDEA打造完美中文编程体验
终极LxgwWenKai字体配置指南:如何为VSCode和IDEA打造完美中文编程体验 【免费下载链接】LxgwWenKai LxgwWenKai: 这是一个开源的中文字体项目,提供了多种版本的字体文件,适用于不同的使用场景,包括屏幕阅读、轻便版、GB规范字形和…...
PyFluent:重构CFD仿真流程的技术赋能与效能跃迁
PyFluent:重构CFD仿真流程的技术赋能与效能跃迁 【免费下载链接】pyfluent 项目地址: https://gitcode.com/gh_mirrors/pyf/pyfluent 在现代工程仿真领域,计算流体动力学(CFD)技术正经历着从手动操作向自动化流程的深刻转…...
手把手教你用丹青识画:智能影像雅鉴系统保姆级入门教程
手把手教你用丹青识画:智能影像雅鉴系统保姆级入门教程 1. 认识丹青识画系统 "以科技之眼,点画意之睛。"这句话完美诠释了丹青识画系统的核心理念。这是一款将人工智能技术与东方美学相结合的创新工具,能够自动分析图像内容并生成…...
从零到一:STM32手动移植FreeRTOS的工程化实践与源码解析
1. 为什么需要手动移植FreeRTOS? 第一次接触FreeRTOS时,很多人会选择用STM32CubeMX自动生成工程。这确实方便,就像用预制菜做饭,但真正想掌握RTOS内核,手动移植才是"从买菜到炒菜"的完整过程。我遇到过不少项…...
Beekeeper Studio:现代跨平台数据库管理工具的技术架构与实战应用
Beekeeper Studio:现代跨平台数据库管理工具的技术架构与实战应用 【免费下载链接】beekeeper-studio beekeeper-studio/beekeeper-studio: Beekeeper Studio 是一款开源的跨平台数据库客户端工具,支持多种数据库(如MySQL, PostgreSQL, SQLit…...
Xenium空间原位转录组:从数据到生物学发现的实战解析
1. Xenium平台与空间原位转录组技术初探 第一次接触Xenium平台的数据时,我被它呈现的空间基因表达图谱震撼到了。想象一下,这就像给组织切片拍了一张"基因表达照片",每个像素点都记录着成百上千个基因的活动状态。10x Genomics推出…...
当地的美国展会搭建制作公司口碑排行
随着中国企业出海参展日益频繁,选择一家可靠的美国本土搭建商成为关键决策。许多企业主发现,直接对接海外供应商时,常面临沟通不畅、报价模糊、落地效果与设计图相差甚远等问题。这背后,是原有依赖单一信息渠道或熟人推荐的模式正…...
CodeSys WebVisu避坑指南:用three.js给机械臂做3D可视化,我踩过的8个坑
CodeSys WebVisu与three.js深度整合实战:机械臂3D可视化开发避坑手册 在工业自动化领域,机械臂的实时状态可视化一直是HMI开发中的难点与痛点。传统解决方案往往受限于渲染效果和交互灵活性,而基于WebGL的three.js技术栈恰好能弥补这些不足。…...
