5

我想在我没有 root 访问权限的 Linux 系统上运行 American Fuzzy Lop (AFL) fuzzer。当我这样做时,发生的第一件事是它给了我一条错误消息,要求我修改/proc/sys/kernel/core_pattern

[-] 嗯,您的系统配置为将核心转储通知发送到外部实用程序。由于模糊二进制故障与最终通过标准 waitpid() API 将信息中继到模糊器之间的延迟延长,这将导致问题。

为避免将崩溃误解为挂起,请以 root 身份登录并临时修改 /proc/sys/kernel/core_pattern,如下所示:

echo core >/proc/sys/kernel/core_pattern

[-] PROGRAM ABORT : Pipe at the beginning of 'core_pattern'
     Location : check_crash_handling(), afl-fuzz.c:6959

我确实理解此错误消息以及解释为何有意义。

不幸的是,修改/proc/sys/kernel/core_pattern需要系统上的 root 访问权限。我从经验中知道,AFL 的其余部分不需要 root 访问权限即可工作。

有没有办法在没有 root 的情况下使用 AFL?(也许是一些替代的用户级方法来禁用自动核心转储处理程序,这样它就不会弄乱 AFL?)我在这里阅读了一堆关于 Linux 上的核心转储的问题,但没有一个确定任何配置方式用户级每个进程粒度上的 coredump 处理程序。

4

1 回答 1

8

实际上已经有人在这里请求该功能:

来源:https ://groups.google.com/forum/m/#!msg/afl-users/7arn66RyNfg/BsnOPViuCAAJ

所以你只需要设置这个环境变量 AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES - 顾名思义你可能会错过一些东西:)

另请参阅 /docs/env_variables.txt 中的 3) 以供参考 https://github.com/mirrorer/afl/blob/master/docs/env_variables.txt

于 2016-02-17T23:43:05.087 回答