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,如此一來,系統在產生核心轉儲文件時就不會借助外部工具,從而避免了延遲問題。
不過,這種修改僅在當前會話中有效,系統重啟之后配置會恢復原狀。
再執行:
在這里插入圖片描述
就產生下面的運行結果圖:
在這里插入圖片描述
還有
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72889.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72889.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72889.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【STM32】ADC功能-單通道多通道(學習筆記)

本章結合上一節內容復習更好理解【江協科技STM32】ADC數模轉換器-學習筆記-CSDN博客 一、ADC單通道 接線圖 ADC初始化 ①RCC開啟時鐘&#xff0c;包括ADC和GPIO的時鐘&#xff0c;另外ADCCLK的分頻器也要配置 ②配置GPIO,&#xff0c;把需要用的GPIO配置成模擬輸入模式&am…

基于YOLO11深度學習的運動品牌LOGO檢測與識別系統【python源碼+Pyqt5界面+數據集+訓練代碼】

《------往期經典推薦------》 一、AI應用軟件開發實戰專欄【鏈接】 項目名稱項目名稱1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】7.【…

當前主流的大模型訓練與推理框架的全面匯總

以下是當前主流的大模型訓練與推理框架的全面匯總 以下是更新后包含 SGLang 的大模型訓練與推理框架列表&#xff0c;并對分類和示例進行了優化&#xff1a; 一、通用深度學習推理框架 TensorRT-LLM 特點&#xff1a;NVIDIA推出的針對Transformer類模型的優化框架&#xff0c;支…

Linux學習(八)(服務管理(檢查服務狀態,開始/停止服務,檢查服務日志,創建新服務))

服務管理 Linux 中的服務管理是指控制 Linux 在啟動和關閉計算機的過程中啟動和停止的服務&#xff08;或“守護程序”&#xff09;的系統。這些服務執行各種功能&#xff0c;并提供未附加到用戶界面的進程。 Linux 系統&#xff0c;尤其是系統管理員&#xff0c;通常需要管理…

ElasticSearch 分詞器介紹及測試:Standard(標準分詞器)、English(英文分詞器)、Chinese(中文分詞器)、IK(IK 分詞器)

ElasticSearch 分詞器介紹及測試&#xff1a;Standard&#xff08;標準分詞器&#xff09;、English&#xff08;英文分詞器&#xff09;、Chinese&#xff08;中文分詞器&#xff09;、IK&#xff08;IK 分詞器&#xff09; ElasticSearch 分詞器介紹及測試1. Standard Analyz…

【計算機網絡】確認家庭網絡是千兆/百兆帶寬并排查問題

要確認你的帶寬是千兆&#xff08;1000Mbps&#xff09;還是百兆&#xff08;100Mbps&#xff09;&#xff0c;可以通過以下方法逐步排查&#xff1a; 一、檢查物理設備 1. 查看路由器和光貓的網口 千兆網口&#xff1a;路由器或光貓的網口旁通常會標注 “10/100/1000M” 或 …

[數據分享第七彈]全球洪水相關數據集

洪水是一種常見的自然災害&#xff0c;在全球范圍內造成了極為嚴重的威脅。近年來&#xff0c;針對洪水事件的檢測分析&#xff0c;以及對于洪水災害和災后恢復能力的研究日漸增多&#xff0c;也產生了眾多洪水數據集。今天&#xff0c;我們一起來收集整理一下相關數據集。&…

深入探討AI-Ops架構 第一講 - 運維的進化歷程以及未來發展趨勢

首先&#xff0c;讓我們一起回顧運維的進化之路&#xff0c;然后再深入探討AI-Ops架構的細節。 運維的進化歷程 1. AI 大范圍普及前的運維狀態 (傳統運維) 在AI技術尚未廣泛滲透到運維領域之前&#xff0c;我們稱之為傳統運維&#xff0c;其主要特點是&#xff1a; 人工驅動…

Hive-數據傾斜優化

數據傾斜的原因 1&#xff09;key分布不均勻&#xff0c;本質上就是業務數據有可能會存在傾斜 2&#xff09;某些SQL語句本身就有數據傾斜 關鍵詞 情形 后果 Join A、其中一個表較小&#xff0c;但是key集中; B、兩張表都是大表&#xff0c;key不均 分發到…

番外篇 - Docker的使用

一、Docker的介紹 Docker 是一個開源的應用容器引擎&#xff0c;基于 Go 語言 并遵從Apache2.0協議開源。 Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中&#xff0c;然后發布到任何流行的 Linux 機器上&#xff0c;也可以實現虛擬化。 容器是完…

深度學習與普通神經網絡有何區別?

深度學習與普通神經網絡的主要區別體現在以下幾個方面&#xff1a; 一、結構復雜度 普通神經網絡&#xff1a;通常指淺層結構&#xff0c;層數較少&#xff0c;一般為2-3層&#xff0c;包括輸入層、一個或多個隱藏層、輸出層。深度學習&#xff1a;強調通過5層以上的深度架構…

RuleOS:區塊鏈開發的“新引擎”,點燃Web3創新之火

RuleOS&#xff1a;區塊鏈開發的“新引擎”&#xff0c;點燃Web3創新之火 在區塊鏈技術的浪潮中&#xff0c;RuleOS宛如一臺強勁的“新引擎”&#xff0c;為個人和企業開發去中心化應用&#xff08;DApp&#xff09;注入了前所未有的動力。它以獨特的設計理念和強大的功能特性&…

c# MimeEntity修改郵件附件名稱

在C#中&#xff0c;當你使用如MimeKit庫來處理電子郵件時&#xff0c;你可以通過修改MimeEntity的ContentDisposition屬性來更改郵件附件的名稱。以下是如何做到這一點的步驟&#xff1a; 1. 添加MimeKit引用 首先&#xff0c;確保你的項目中已經添加了MimeKit庫。如果你使用…

Windows編譯環境搭建(MSYS2\MinGW\cmake)

我的音視頻/流媒體開源項目(github) 一、基礎環境搭建 1.1 MSYS2\MinGW 參考&#xff1a;1. 基于MSYS2的Mingw-w64 GCC搭建Windows下C開發環境_msys2使用mingw64編譯 在Widndows系統上&#xff0c;使用gcc工具鏈&#xff08;g&#xff09;進行C程序開發&#xff1f;可以的&a…

TikTok美國戰略升級:聚焦美食旅行,本地化服務如何重塑市場格局

平臺深耕本土內容生態&#xff0c;餐飲旅游創作者迎流量紅利&#xff0c;算法推薦機制激發地域經濟新活力 過去一年&#xff0c;TikTok在美國市場的動作頻頻引發行業關注。從早期以娛樂、舞蹈為主的全球化內容&#xff0c;到如今將資源向美食、旅行兩大垂類傾斜&#xff0c;這…

Unity Dots環境配置

文章目錄 前言環境配置1.新建Unity 工程2.安裝Entities包2.安裝EntitiesGraphics包3.安裝URP渲染管線 Dots窗口 前言 DOTS&#xff08;Data-Oriented Technology Stack&#xff09;是Unity推出的一種用于開發高性能游戲和應用的數據導向技術棧&#xff0c;包含三大核心組件&am…

manus對比ChatGPT-Deep reaserch進行研究類學術相關數據分析!誰更勝一籌?

沒有賬號&#xff0c;只能挑選一個案例 一夜之間被這個用全英文介紹全華班出品的新爆款國產AI產品的小胖刷頻。白天還沒有切換語言的選項&#xff0c;晚上就加上了。簡單看了看團隊夠成&#xff0c;使用很長實踐的Monica創始人也在其中。逐漸可以理解&#xff0c;重心放在海外產…

Python項目-基于Django的在線教育平臺開發

1. 項目概述 在線教育平臺已成為現代教育的重要組成部分&#xff0c;特別是在后疫情時代&#xff0c;遠程學習的需求顯著增加。本文將詳細介紹如何使用Python的Django框架開發一個功能完善的在線教育平臺&#xff0c;包括系統設計、核心功能實現以及部署上線等關鍵環節。 本項…

【自學筆記】Numpy基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 Numpy基礎知識點總覽目錄1. 簡介Numpy是什么為什么使用Numpy 2. 數組對象&#xff08;ndarray&#xff09;創建數組數組的屬性數組的形狀操作 3. 數組的基本操作數組…

Kubernetes中的 iptables 規則介紹

#作者&#xff1a;鄧偉 文章目錄 一、Kubernetes 網絡模型概述二、iptables 基礎知識三、Kubernetes 中的 iptables 應用四、查看和調試 iptables 規則五、總結 在 Kubernetes 集群中&#xff0c;iptables 是一個核心組件&#xff0c; 用于實現服務發現和網絡策略。iptables 通…