IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> afl-cov实践 -> 正文阅读

[游戏开发]afl-cov实践

fuzz upx

首先拉取upx代码并切换到3.94版本

git clone https://github.com/upx/upx.git
cd upx
git checkout v3.94

请添加图片描述

拉取依赖(在当前目录下运行)

git submodule update --init --recursive

上面这一步是为了拉取src/lzma-sdk/目录下的代码

vim src/Makefile

    # toolchain
CC      = /home/yan/fuzz/ijon/afl-gcc -fprofile-arcs -ftest-coverage(添加)
CXX    ?= /home/yan/fuzz/ijon/afl-g++ -fprofile-arcs -ftest-coverage(修改)

安装 UCL
参考https://blog.csdn.net/qq_33728095/article/details/110174556?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-4-110174556.pc_agg_new_rank&utm_term=upx+%E6%80%8E%E4%B9%88%E5%AE%89%E8%A3%85&spm=1000.2123.3001.4430

链接:http://www.oberhumer.com/opensource/ucl/
 ./configure CPPFLAGS="$CPPFLAGS -std=c90 -fPIC"
    make
    sudo make install

进入upx目录

   export UPX_UCLDIR=/home/yan/fuzz/ucl-1.03
   make all

注意是在upx文件夹而不是src

错误提示:warnings being treated as errors

解决方法:打开Makefile,将-Werror选项去掉,编译通过

编译完成之后就可以进行fuzz了

afl-cov的使用

afl-cov主要是为了查看覆盖率,并且需要编译支持。
参考原文:fuzz upx

./afl-cov/afl-cov -d fuzz_upx/upx_out/ --live --coverage-cmd="./upx/upx_2/src/upx.out  AFL_FILE" --code-dir="./upx/upx_2/src/"
  -d afl-fuzz 的输出目录
  --live 实施获取
 --coverage-cmd  被fuzz文件与AFL_FILE 为生成的例子
 --code-dir= 代码目录

先执行afl-cov,再执行afl,afl-cov将读取afl output/queue中的所有文件

mkdir upx-in upx-out
在fuzz之前,为了实现更多的的代码覆盖率,我们需要收集一些不同的binary来放到afl的输入目录。AFL的样本选择对于Fuzz的效果至关重要,如果样本太大会导致AFLfuzz时速度很慢,最好小于1KB。


/home/yan/fuzz/afl-cov/afl-cov -d /home/yan/fuzz/upx/upx-out/ --live --coverage-cmd="/home/yan/fuzz/upx/src/upx.out AFL_FILE" --code-dir="/home/yan/fuzz/upx/src/"

afl-fuzz -i upx_in -o upx_out -m 300 -t 300000 – upx/src/upx.out @@
在upx_out 目录下存在cov目录,cov目录下存在web,打开index.html查看

请添加图片描述请添加图片描述请添加图片描述请添加图片描述请添加图片描述

参考afl-cov文章:afl覆盖率统计工具afl-cov常见问题总结
https://github.com/mrash/afl-cov
https://fgroove.github.io/2019/03/08/afl-cov/

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:10:32  更:2022-04-22 19:11:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 21:58:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码