我想在我没有 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 处理程序。