当前位置: 首页 > 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++,将大大提升安全研究人员在协议测试、二进制分析与软件审计中的效率和深度。

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

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

http://www.xdnf.cn/news/1035991.html

相关文章:

  • 22 - PSA模块
  • 解惑1、为何大容量电容滤低频,小容量电容滤高频
  • 数据库资源帖
  • 同旺科技 USB TO SPI / I2C适配器(专业版)--EEPROM读写——A
  • 代码随想录算法训练营day4
  • (15)python+ selenium自动化测试 - 回顾2
  • 采用微服务的预期收益是什么?我们如何衡量成功?
  • 大IPD之——学习华为市场洞察,为战略找到方向(四)
  • FastGPT实战:从0搭建AI知识库与MCP AI Agent系统
  • Java求职者面试题解析:Spring、Spring Boot、MyBatis框架与源码原理
  • SpringBoot自动化部署实战指南
  • 【Photoshop】使用内容识别去除水印文字
  • Vue3 + TypeScript + Element Plus 表格实例null检查方法
  • Java设计题:如何设计一个线程池
  • 浅拷贝 与 深拷贝
  • HTTP1.1
  • JUC核心解析系列(四)——同步工具类 (Synchronizers)深度解析
  • 芯片测试之trim详解
  • Linux02
  • apt-get等操作依赖关系总报错?试一试aptitude
  • 高压接地电阻柜组装前的准备工作
  • nacos-作为注册中心与springcloud整合(三)
  • 【Elasticsearch】数据预处理(含实战案例)
  • Spring MVC扩展消息转换器-->格式化时间信息
  • 有些植物果实结在土里,但是花开在枝叶上,果不结在花上,花需要授粉才能结果吗?不用授粉的话,开花的意义在哪里?
  • 【MATLAB例程】追踪法制导的程序,适用于三维平面,目标是运动的,带绘图和捕获时间|附下载链接
  • 【CSS-14】深入解析CSS定位:从基础到高级应用
  • 【硬件】相机的硬件测试
  • IDEA高效快捷键指南
  • 51单片机-IO扩展模块 pcf8575