当前位置: 首页 > news >正文

aflplusplus:开源的模糊测试工具!全参数详细教程!Kali Linux教程!(四)

使用

afl-lto

clang LLVM 编译器

1. -help

显示可用选项

afl-lto --help

其他选项同上,这里不再展开叙述。

afl-lto++

1. -help

显示可用选项

afl-lto++ --help

其他选项同上,这里不再展开叙述。

afl-network-client

1. 帮助文档

afl-network-client

 2. 常规使用

afl-network-client 127.0.0.1 8888 4096

afl-network-server

1. 帮助文档

afl-network-server

所需参数

2. -i port

客户端连接的监听端口

afl-network-server -i 8000 -- ./target

 

执行控制设置

3. -f file

被测程序读取的输入文件(stdin)

afl-network-server -i 8000 -f input/sample.txt -- ./target

 

4. -t msec

每次运行的超时时间(1000 毫秒)

afl-network-server -i 8000 -t 1000 -- ./target

5. -m megs

子进程的内存限制(0 MB)

afl-network-server -i 8000 -m 50 -- ./target

6. -Q

使用仅二进制的插桩(QEMU 模式)

afl-network-server -i 8000 -Q -- ./target

7. -U

使用基于 Unicorn 的插桩(Unicorn 模式)

afl-network-server -i 8000 -U -- ./target

8. -W

使用基于 qemu 的 Wine 插桩(Wine 模式)

afl-network-server -i 8000 -W -- ./target

afl-persistent-config

注意:需要使用 root 权限去运行。

sudo afl-persistent-config

afl-plot

1. 帮助文档

afl-plot

2. afl_state_dir

应指向任何 afl-fuzz 活动或停止实例的现有状态目录

3. graph_output_dir

应指向一个空目录,此工具可将生成的图表写入该目录

4. -g, --graphical

(可选)在图形窗口中显示图表(您需要已构建 afl-plot-ui 才能使用此选项)

afl-plot -g findings/default output-graphs

afl-showmap

1. 帮助文档

afl-showmap

必需参数

2. -o file

写入跟踪数据的文件

afl-showmap -o output/map.txt -- ./target input/sample.txt

 

执行控制设置

3. -t msec

每次运行的超时时间(默认值:1000ms)

afl-showmap -o output/map.txt -t 1000 -- ./target input/sample.txt

4. -m megs

子进程的内存限制(默认值:无)

afl-showmap -o output/map.txt -m 20 -- ./target input/sample.txt

5. -O

使用纯二进制插桩(FRIDA 模式)

afl-showmap -o output/map.txt -O -- ./target input/sample.txt 

6. -Q

使用纯二进制插桩(QEMU 模式)

afl-showmap -o output/map.txt -Q -- ./target input/sample.txt 

7. -U

使用基于 Unicorn 的插桩(Unicorn 模式)

afl-showmap -o output/map.txt -U -- ./target input/sample.txt

8. -W

使用基于 qemu 的 Wine 插桩(Wine 模式)(非必需,此处为了与其他 afl-* 工具保持一致)

afl-showmap -o output/map.txt -W -- ./target input/sample.txt

9. -X

使用 Nyx 模式

afl-showmap -o output/map.txt -X -- ./target input/sample.txt

其他设置

10. -i dir

处理此目录下的所有文件,必须与 -o 选项结合使用。使用 -C 时,-o 表示文件;不使用 -C 时,-o 表示目录。每个位图将单独写入文件。

afl-showmap -o output/map.txt -i input  -- ./target input/sample.txt

11. -I filelist

与 -i 选项类似,-I 表示文件列表。

afl-showmap -o output/map.txt -I files.txt -- ./target input/sample.txt

12. -C

收集覆盖率,将所有边写入 -o 并给出摘要。必须与 -i 选项结合使用。

afl-showmap -o output/map.txt -i input -C -- ./target input/sample.txt

13. -q

接收程序的输出,不显示消息。

afl-showmap -o output/map.txt -q -- ./target input/sample.txt

14. -e

仅显示边覆盖率,忽略命中计数。

afl-showmap -o output/map.txt -e -- ./target input/sample.txt 

15. -r

显示实际元组值,而不是 AFL 过滤器值。

afl-showmap -o output/map.txt -r -- ./target input/sample.txt 

16. -s

不对映射进行分类。

afl-showmap -o output/map.txt -s -- ./target input/sample.txt

17. -c

允许核心转储。

afl-showmap -o output/map.txt -c -- ./target input/sample.txt

afl-system-config

afl-system-config 将系统重新配置为高性能模糊测试状态。警告:这会降低系统的安全性!请注意,还有一个 afl-persistent-config,用于设置额外的永久配置选项。

注意:需要使用 root 权限去运行。

sudo afl-system-config 

afl-tmin

1. 帮助文档

afl-tmin

 

必需参数

2. -i file

工具需要压缩的输入测试用例

3. -o file

最小化数据的最终输出位置

afl-tmin -i input/sample.txt  -o output/map.txt -- ./target

 

执行控制设置

4. -f file

测试程序读取的输入文件(标准输入)

afl-tmin -i input/sample.txt  -o output/map.txt -f test -- ./target 

5. -t msec

每次运行的超时时间(1000 毫秒)

afl-tmin -i input/sample.txt -o output/map.txt -t 1000 -- ./target

6. -m megs

子进程的内存限制(0 MB)

afl-tmin -i input/sample.txt -o output/map.txt -m 20 -- ./target

7. -O

使用纯二进制插桩(FRIDA 模式)

afl-tmin -i input/sample.txt -o output/map.txt -O -- ./target

8. -Q

使用纯二进制插桩(QEMU 模式)

afl-tmin -i input/sample.txt -o output/map.txt -Q -- ./target

9. -U

使用基于 Unicorn 的插桩(Unicorn 模式)

afl-tmin -i input/sample.txt -o output/map.txt -U -- ./target

10. -W

使用基于 QEMU 的 Wine 插桩(Wine 模式)(此处并非必需,为了与其他 afl-* 工具保持一致)

afl-tmin -i input/sample.txt -o output/map.txt -W -- ./target

11. -X

使用 Nyx 模式

afl-tmin -i input/sample.txt -o output/map.txt -X -- ./target

最小化设置

12. -e

求解边仅覆盖,忽略命中计数

afl-tmin -i input/sample.txt -o output/map.txt -e -- ./target

13. -l bytes

设置最小块删除长度以加快最小化速度

afl-tmin -i input/sample.txt -o output/map.txt -l 24 -- ./target

14. -x

将非零退出代码视为崩溃

afl-tmin -i input/sample.txt -o output/map.txt -x -- ./target

15. -H

最小化挂起(挂起模式)

afl-tmin -i input/sample.txt -o output/map.txt -H -- ./target

afl-whatsup

afl-fuzz 状态检查工具

1. 帮助文档

afl-whatsup

2. -d

包含失效模糊器的状态

afl-whatsup -d output

 

3. -m

仅显示最少量的状态

afl-whatsup -m output

 

4. -n

无彩色输出

afl-whatsup -n output

 

5. -s

跳过详细信息,仅输出摘要结果

afl-whatsup -s output

总结

AFL++ 作为经典模糊测试工具 AFL 的增强版,不仅继承了高效的变异引擎和语义感知能力,还引入了多种现代化特性,如持久化模式、QEMU 模拟、协作模糊和自定义调度器等,极大地扩展了其在不同测试场景中的适用性。实际应用表明,AFL++ 在发现内存安全漏洞、未处理的异常逻辑及边界条件问题方面表现出色,尤其适合构建自动化、安全性强的漏洞挖掘体系。掌握并灵活运用 AFL++,将大大提升安全研究人员在协议测试、二进制分析与软件审计中的效率和深度。

在此特别强调,本教程仅在合法授权的情况下进行测试和研究,请勿用于其他用途。未经授权使用此类工具可能会侵犯他人隐私,触犯相关法律,任何因此引发的法律或利益纠纷与本人无关。

欢迎各位大佬,小白来找我交流。

相关文章:

  • 【办公类-25-05】20250514 Python模拟UIBOT上传园园通截图(自动最小化界面,时间部分的删除和黏贴)
  • SCADA|KingSCADA对比显示任意几条实时曲线的方法
  • 理论物理学中的规范场论与全息原理
  • Go语言底层(五): 深入浅出Go语言的ants协程池
  • C#最佳实践:推荐使用泛型而非装箱、拆箱
  • 华为云Flexus+DeepSeek征文 | 基于Dify构建股票分析助手
  • 语音交互革命:基于 Amazon Nova Sonic + MCP 构建下一代沉浸式 Agent
  • LLMs 系列实操科普(6)
  • 嵌入式学习
  • 德国马克斯·普朗克数学研究所:几何朗兰兹猜想
  • JS进阶 Day03
  • 深度理解 CLIP:连接图像与语言的桥梁
  • 人工智能学习26-BP梯度下降
  • 【C语言】计算机组成、计算机语言介绍
  • 华为云Flexus+DeepSeek征文|基于华为云Flexus云服务的Dify一键部署
  • 遥控电风扇
  • OAC: Output-adaptive Calibration for Accurate Post-training Quantization
  • Python爬虫实战:研究simpleq相关技术
  • HTML+CSS 动态背景框动态登录注册框
  • C语言环形数组(循环队列)详解:原理、实现与应用
  • 广告联盟网站怎么做/头条权重查询
  • 中石化网站是哪个公司做的/搜索引擎广告
  • 用家里的电脑做网站服务器/软文客
  • 网站手机版怎么做/端口扫描站长工具
  • 医药网站文案编辑是怎么做的/百度移动点击排名软件
  • 网站建设合同 费用/域名收录查询工具