WinAFL 源码分析:运行与挂起调试
需积分: 0 43 浏览量
更新于2024-06-30
收藏 798KB DOCX 举报
"这篇资源是关于AFL (American Fuzzy Lop) 源码阅读的初步介绍,特别是如何运行Winafl,并且提到了如何修改`runtarget`函数来处理超时问题。作者通过一个简单的C语言程序示例展示了AFL的基本用法,并解释了`run_target`函数在AFL中的作用。"
在源码阅读中,"afl源码阅读1"主要涉及到AFL模糊测试工具的使用,尤其是针对Windows环境的Winafl。Winafl是AFL的一个移植版本,用于在Windows平台上进行模糊测试。模糊测试是一种黑盒测试技术,通过生成大量随机输入来发现软件中的漏洞和不稳定行为。
描述中的命令行`winaflcd C:\winafl-master\build32\Debugafl-fuzz.exe -i C:\Fuzzing\mywps\in`是启动Winafl并指定输入文件目录的过程。`-i`参数后面跟随的是输入文件所在的目录,Winafl将从这个目录中选取文件作为测试用例。
在源码修改部分,`runtarget`函数原本会因为子进程超时而返回`FAULT_TMOUT`,但通过将`if(child_timed_out) return FAULT_TMOUT;`改为`if(child_timed_out) return FAULT_NONE;`,可以避免因超时而导致的挂起。这意味着如果目标程序运行时间过长,AFL不会立即终止它,而是允许其继续执行,这可能有助于发现更深层次的问题。
示例代码是一个简单的C语言程序,用于读取命令行参数指定的文件内容并进行检查。程序会验证读取到的数据的第一个字符是否分别为'a'、'b'、'c'、'd'和'e',若不匹配则打印错误消息。这可以作为一个基础的模糊测试目标,当使用AFL进行模糊测试时,它能帮助理解如何处理不同类型的输入。
Winafl的`run_target`函数是核心部分,它负责执行目标应用程序并监控超时情况。函数内部通常会设置一个看门狗定时器来检测目标程序是否挂起,如果超时,看门狗会触发并返回相应的状态信息。`run_target`会更新`trace_bits[]`数组,这个数组在AFL中用于记录程序执行的不同路径,这对于模糊测试中找到不同分支至关重要。
这个资源提供了AFL模糊测试框架的初步了解,特别是如何在Windows环境下使用Winafl,并通过实例展示了如何对目标程序进行基本的设置和交互。对于想要学习AFL或模糊测试的人来说,这是一个很好的起点。
2021-06-06 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
论文
2023-12-19 上传
销号le
- 粉丝: 32
- 资源: 289
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景