问题标签 [american-fuzzy-lop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
209 浏览

ubuntu-14.04 - Binaries are not executing after AFL installation in qemu mode

I have recently installed AFL and then its qemu mode, for which I required following packages.

'sudo apt-get install libtool automake bison libglib2.0-dev zlib1g-dev'

With these packages installed qemu installation worked fine. But after its installation whenever I tried to run binary with it, it generated AFL FORK SERVER HANDSHAKE FAILED error. I run my binary independently and it generated this error cannot execute binary file: Exec format error. I searched and found out this error is because of conflicting architectures which isn't in my case as I have build and run on same machine. Compiling with libtool also hasnot been a success libtool --mode=compile gcc -c one.c -o testlib.o.

I am also unable to execute any binary I create as default permissions are -rw-rw-r--, so I have to change their mods after creating them. This was not happening before above packages and installations. I even un-installed libtool but no success.

Any suggestions?

0 投票
1 回答
1168 浏览

compilation - 如何使用 afl-gcc 编译 openssl

我需要用 afl-fuzz 编译 openssl 1.0.1f 版本,然后在应用程序中使用它来查找 heartbleed bug。到目前为止我已经做到了;转到 openssl1.0.1f 目录并运行以下命令

一切正常,但是在编译过程中,我看到的gcc -I是编译文件的命令,而不是afl-gcc最后看到的 Instrumentation 详细信息,因为我在使用 afl-fuzz 编译的简单程序中看到了它。我不确定 openssl 是用 gcc 还是 afl-gcc 编译的。我也gccafl-gccMakefile 替换了,但没有结果。

有人可以解释一下所有关于 openssl 和 afl-fuzz 的博客吗,我只找到了这些命令。

谢谢。

0 投票
2 回答
265 浏览

python - 如何创建跳过某些种子的增强型 AFL 模糊器?

我是一名正在复制论文结果的硕士生:https ://www.microsoft.com/en-us/research/publication/not-all-bytes-are-equal-neural-byte-sieve-for-模糊测试/

我想创建一个增强的模糊器,它拒绝对它认为无用的种子的修改。实现这一目标的任何帮助都将非常有帮助。

我为增强的模糊器创建了一个简单的 python 函数。为了测试实现,我使用了一个简单的“deadbeef”程序并编写了 python 函数,这样每当种子被修改为“deadbeef”时,该函数都会向 AFL 的“common_fuzz_stuff()”函数发送“无用”返回-模糊代码。这应该意味着模糊器不应该能够找到崩溃。但它仍然能够找到崩溃,我无法确定我哪里出错了。

这是 AFL 的 python 函数:

这是 afl-fuzz.c 代码片段:

即使种子“deadbeef”的 common_fuzz_stuff() 函数的返回值为 1,我的程序如何仍然能够找到崩溃?

0 投票
1 回答
49 浏览

networking - 为什么不模糊客户端

我目前正在研究各种 AFL,我注意到几乎所有关于网络模糊或协议模糊的教程主要是测试服务器而不是客户端(我知道使用 -f 参数 afl 可以测试客户端)。我想知道人们喜欢测试服务器而不测试客户端是否有一些原因,这会导致测试覆盖率不足吗?

0 投票
1 回答
61 浏览

testing - Should I avoid fuzzing the error handling code

Error handling code plays an important role in programming, hence, when I test the program with afl, should I pay attention to the error handling code part, or should I avoid this part from fuzzing.

0 投票
2 回答
1176 浏览

fuzzing - AFL hello world 示例

我试图弄清楚如何使用AFL,但我似乎无法运行一个简单的示例。这是我的 C 程序:

我的输入种子是一个单行文本文件abhgsd。这是我所做的:

我收到了这条红色的 CAPITAL CRASH 消息:

除非我确定自己在做什么,否则我有点不愿意改变一些东西。这里发生了什么?我应该听听 AFL 在说什么吗?

0 投票
1 回答
154 浏览

c - 使用 AFL 的持久化模式对大量重复数据进行模糊测试

我有一个程序可以处理一定大小的数据包,但需要大量数据包才能进行任何有意义的输出。

我目前通过从 AFL 接收数据包并在系统中运行它必要的次数来使用 AFL 模糊我的程序。

这并不理想,因为我多次重复使用相同的变形数据包,所以我切换到使用 AFL 的持久模式,它通过管道连续向我发送数据。

问题是,AFAICT,这种模式假设每个输入都是独立运行的,我想创建一个依赖于一系列输入的崩溃。

模糊我的程序的正确方法是什么?

0 投票
1 回答
694 浏览

reverse-engineering - 运行 AFL-Fuzzer 缓冲区溢出

我正在尝试了解 AFL-fuzzer,但我有一些问题:

  1. 我看到一个视频显示,例如,如果代码中有两个输入,那么在测试用例中,每一行都对应每个输入。那是对的吗?由于我想将完整的消息(例如 HTTP 请求)放入一个变量中,那么我该怎么做呢?
  2. 我不明白什么时候放@@。

例如,我正在尝试模糊此代码:

我已经创建了 in 和 out 文件夹。在 in 文件夹中,我创建了一个包含以下内容的 txt 文件:“AAA”。

我执行的命令行是:afl-clang -fno-stack-protector -z execstack 4.c -o vul4

然后我运行:afl-fuzz -m none -i in/ -o out/ ./vul4 @@

我收到以下错误:perform_dry_run(), afl-fuzz.c:2852

如果我像这样运行命令:afl-fuzz -m none -i in/ -o out/ ./vul4 AA 它运行良好,但没有找到任何新路径,也没有发现崩溃。

此外,我正在尝试理解这个概念。如果我想在特定位置注入代码,我该怎么做?

0 投票
1 回答
348 浏览

c - 我使用 afl fuzzer 时出现分段错误

我在弄清楚下面的代码有什么问题时遇到了问题。我运行完整的代码,并进行了大量的输入测试,并且正在按照我的意愿处理错误。我还使用 valgrind、cppchecker 之类的东西来检查我修复的错误。然后我决定使用 afl-fuzzer 对我的代码进行高级错误检测,然后由于下面的代码行,我遇到了很多崩溃。但是,大多数崩溃是由于分段错误造成的。但我似乎看不出代码有什么问题。任何帮助将不胜感激。下面是不断给出错误的函数。我认为这与sscanf

tree_create 函数

树插入

0 投票
1 回答
225 浏览

c - 为什么 afl fuzzer 会出现分段错误?

我在c中做了一个程序来做一些avl排序。当我测试它没有崩溃时,程序运行良好。但是,我使用 afl fuzzer 运行程序以查找可能存在的错误,但我似乎不知道为什么我不断收到分段错误。下面是tree.c。当我没有将 main.c 连接到 tree.c 的情况下进行模糊测试时,我不会遇到错误。只有当我将输入发送到树分类器时才会出现。某些特定的输入会导致此错误。我对内存分配进行了更改,但仍然无法弄清楚原因。我使用了 valgrind、cppcheck 并且没有得到任何错误。请问为什么会发生这个错误,我该如何解决?

来自模糊器的示例输入,将代码带入分段错误

树.c

主程序

树.h