
模糊测试
文章平均质量分 70
模糊测试
席八
欢迎光临
展开
-
NSFuzz: Towards Eficient and State-Aware Network Service Fuzzing
然而,传统的灰箱模糊化方法不能直接很好地应用于网络服务,这是由于两个主要挑战(1)服务状态表示。大多数现有的灰盒模糊器主要是为无状态的本地应用程序设计的。对于基于协议的网络服务,一方面,当接收到相同的输入消息时,网络服务根据当前的会话状态做出不同的响应;另一方面,大多数bug是有状态的,只能由一系列特定的消息触发。因此,不知道服务状态的灰箱模糊解不能获得完整的反馈,这将误导遗传算法的进化方向。(2)测试效率。原创 2023-05-19 19:12:16 · 835 阅读 · 1 评论 -
Fuzzing Configurations of Program Options
大多数模糊器(及其科学评估)集中在给定单个固定程序配置(例如,引用[16,19]),因此可能无法正确测试程序功能的重要部分。因此,潜在的罕见缺陷可能会逃过检测,对模糊化性能的科学评估可能无法说明全貌。原创 2023-05-19 18:48:23 · 814 阅读 · 0 评论 -
黑盒模糊测试之AFL_qemu
版本是6.1.1(原本是2.10.0,-_-||)更新qemu版本参考。原创 2022-10-20 11:25:47 · 489 阅读 · 0 评论 -
黑盒模糊测试之weizz
【代码】黑盒模糊测试之weizz。原创 2022-09-08 13:29:14 · 1021 阅读 · 0 评论 -
黑盒模糊测试之honggfuzz
【代码】黑盒模糊测试之honggfuzz。原创 2022-09-08 12:46:24 · 655 阅读 · 0 评论 -
黑盒模糊测试之AFL++
运行 1 个带有 LAF ( + ) 的 afl-fuzz -Q 实例,或者您可以使用 FRIDA 模式,只需切换并删除 LAF 实例AFL_PRELOAD=libcmpcov.soAFL_COMPCOV_LEVEL=2-Q-O。然后运行尽可能多的实例,只要你有-Q模式的内核,或者 - 甚至更好 - 使用二进制重写器,如Dyninst,RetroWrite,ZAFL等。如果二进制重写器适用于您的目标,那么您可以正常使用afl-fuzz,并且它的速度将是QEMU模式的两倍(但比QEMU持久模式慢)。原创 2022-09-08 11:26:25 · 1551 阅读 · 0 评论 -
通过 bncov 和覆盖率分析了解测试结果
https://dzone.com/articles/how-much-testing-is-enoughbncov的核心是一个代码覆盖率分析工具。虽然有几个众所周知的工具可以提供对代码覆盖率的可见性,但我们希望构建一个解决方案,以增强和/或扩展以下领域的功能:易于编写脚本。可编写脚本性是与大型分析工作保持一致并与其他工具结合使用的关键功能。强大的数据呈现。良好的可视化可以加快并增强理解。兼容模糊测试/测试工作流程。完全符合您需求的工具可提高生产率和速度。支持二进制目标。有时你没有原始源代码。虽翻译 2022-04-22 16:39:30 · 248 阅读 · 0 评论 -
afl-cov实践
fuzz upx首先拉取upx代码并切换到3.94版本git clone https://github.com/upx/upx.gitcd upxgit checkout v3.94拉取依赖(在当前目录下运行)git submodule update --init --recursive上面这一步是为了拉取src/lzma-sdk/目录下的代码vim src/Makefile # toolchainCC = /home/yan/fuzz/ijon/afl-gcc原创 2022-04-21 15:28:51 · 3733 阅读 · 3 评论 -
ijon辅助函数解读
1) IJON-ENABLE:为了实现IJON-ENABLE,我们引入了一个应用于所有位图索引计算的掩码。如果掩码设置为零,则只能寻址和更新第一个位图条目。如果设置为0xFFFF,则使用原始行为。这样,我们可以有效地随意禁用和启用覆盖率跟踪。afl-llvm-rt.o.cvoid ijon_enable_feedback(){ __afl_mask = 0xffffffff;}void ijon_disable_feedback(){ __afl_mask = 0x0;}2) IJON-I原创 2022-04-07 17:27:17 · 861 阅读 · 0 评论 -
fuzzwatch复现
https://github.com/mechanicalnull/fuzzwatchgit clone https://github.com/mechanicalnull/fuzzwatchcd fuzzwatchpip install -r requirements.txt# This script builds an example target. It assumes you have afl-clang-fast,# you can do `apt install -y afl++-cl原创 2022-04-07 16:15:46 · 326 阅读 · 0 评论 -
fuzzfactory源码阅读(三)特定领域的实现
4.1 slow:最大执行路径长度我们的第一个特定于域的模糊测试应用程序是将 SlowFuzz 移植到我们的框架。此应用程序的目标是生成输入,以最大化被测程序中的执行路径长度。我们想要定义 is_waypoint(i,S,d) 谓词如下:如果输入 i 的执行导致路径长度高于 S 中的任何其他输入,则应保存该输入。特定于域的反馈映射 dsf 将单键 0 (K = {0}) 映射到自然数 (V = N)。在映射中,dsf (0) 表示测试输入 i 的执行路径长度。这些值聚合为一个数字(A =N),表示在一组原创 2022-04-01 18:58:57 · 485 阅读 · 0 评论 -
fuzzfactory源码阅读(二)afl-fuzz.c
afl-fuzz.c/* Compute size of DSF map based on DSF_MAX items of MAP_SIZE 4-byte records */根据MAP_SIZE 4字节记录的DSF_MAX项计算DSF地图的大小#define DSF_LEN (DSF_MAX * MAP_SIZE)EXP_ST u32* dsf_map; /* DSF - SHM与附加地图 */EXP_ST u32 dsf_cumulated[DSF_L原创 2022-04-01 16:56:09 · 412 阅读 · 0 评论 -
fuzzfactory源码阅读(一)代码总览
FuzzFactory 中,特定于域的模糊测试应用程序是通过检测测试程序来实现的。表 1 描述了实现本文中描述的六个域中的每个域所需的代码行。在我们的应用程序中,我们使用 LLVM 执行检测。伪代码中用于特定领域模糊化的API。 类型dsf_t; /* 特定于域的反馈图 */ /* 注册一个新域。在初始化期间调用一次。*/ dsf_t new_域(int key_size, function reduce, int a_0);/* 对 DSF 映射的更新。在测试执行期间调用。*/ int dsf_原创 2022-03-31 19:41:56 · 281 阅读 · 0 评论 -
ijon源码阅读
ijon对afl的修改主要在llvm-mode文件夹和afl-ijon-min.h,afl-ijon-min.cafl-ijon-min.h定义了ijon_input_info和ijon_min_state这两个struct和四个函数ijon_min_state* new_ijon_min_state();u8 ijon_should_schedule(ijon_min_state* self);ijon_input_info* ijon_get_input(ijon_min_state* sel原创 2022-03-30 19:11:05 · 377 阅读 · 0 评论 -
fuzzfactory复现记录
git clone https://github.com/rohanpadhye/FuzzFactory选项1:通过基于LLVM的工具进行特定领域的反馈在根目录makemake llvm-domains然后cd demoWAYPOINTS=mem ../afl-clang-fast demo.c -o demo../afl-fuzz -p -i seeds -o results ./demo其余的模糊测试环节与平时运行AFL类似。按CTRL+C来停止模糊测试。在摸索过程中,会创建以下原创 2022-03-29 18:15:24 · 3518 阅读 · 0 评论 -
用 AFL和ijon工具进行 Fuzz
参考【AFL(八)】用 AFL 对 LAVA-M 进行 Fuzz(LAVA上)下载 && 前期准备wget http://panda.moyix.net/~moyix/lava_corpus.tar.xzsudo apt-get install libacl1-dev设置环境export CC=afl-gccexport CXX=afl-g++运行脚本 ./validate.sh 这里没成功下载 iJon 和 iJon-data 数据集git clone h原创 2022-03-24 20:10:17 · 2979 阅读 · 0 评论 -
AFLsmart实践记录
下载安装 automake 及一些其他的包sudo apt-get install build-essential automake libtool libc6-dev-i386 python-pip g++-multilib报错:E: Package ‘python-pip’ has no installation candidatesudo apt-get install build-essential automake libtool libc6-dev-i386 python3-pip原创 2021-12-15 19:07:12 · 1897 阅读 · 0 评论 -
INVSCOV实践记录2.0
Usage实验环境:Ubuntu20.04实验对象:Xpdf4.03先构造初始语料库:使用从24小时覆盖率引导模糊会话生成的种子sudo apt-get install afl++export CC=afl-clangexport CXX=afl-clang++mkdir buildcd buildcmake ../makeafl-fuzz -i /home/yan/fuzzing_xpdf/in -o /home/yan/fuzzing_xpdf/out -d -- ./pdfin原创 2021-12-13 18:57:00 · 223 阅读 · 0 评论 -
INVSCOV实践记录1.0
https://github.com/eurecom-s3/invscovgit clone https://github.com/eurecom-s3/invscovBuildUbuntu20.06下载llvm10之前用的Ubuntu18.06下载llvm10预编译包装好了之后运行有问题,但是apt-get下载的时llvm6,于是换成Ubuntu20.06,能够直接下载llvm10sudo apt-get install llvmsudo apt-get install clang查看原创 2021-11-12 14:45:06 · 3782 阅读 · 0 评论 -
AFL实践记录——无源码fuzz
AFL实践记录虚拟机:Ubuntu 18.04参考https://xz.aliyun.com/t/4314afl使用了qemu模式进行测试,只要在之前的命令的基础上加上-Q的参数即可先进行安装,在afl的根目录打开终端执行以下命令sudo su提升权限之后cd qemu_mode./build_qemu_support.shcd ..make install报错Error: ‘libtool’ not found, please install first.解决apt-get原创 2021-10-27 17:25:56 · 1548 阅读 · 0 评论 -
AFL实践记录——简单有源码fuzz
AFL实践记录虚拟机:Ubuntu 18.04参考fuzzing工具之AFL的安装与使用AFL安装与使用 git clone https://github.com/mirrorer/afl问题fatal: unable to access ‘https://github.com/mirrorer/afl/’: Could not resolve host: github.com解决git config --global --unset http.proxy git config --gl原创 2021-10-26 11:12:30 · 750 阅读 · 0 评论