From 67b6298895e8db0cc91c3bbd0bc29c48f8572c2e Mon Sep 17 00:00:00 2001 From: van Hauser Date: Tue, 24 Dec 2019 20:56:10 +0100 Subject: qemu ld_preload support and added socket_fuzzing ld_preload library --- src/afl-fuzz.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'src/afl-fuzz.c') diff --git a/src/afl-fuzz.c b/src/afl-fuzz.c index 3a5b0b4e..54fdcc25 100644 --- a/src/afl-fuzz.c +++ b/src/afl-fuzz.c @@ -705,10 +705,37 @@ int main(int argc, char** argv) { if (dumb_mode == 2 && no_forkserver) FATAL("AFL_DUMB_FORKSRV and AFL_NO_FORKSRV are mutually exclusive"); + if (getenv("LD_PRELOAD")) + WARNF( + "LD_PRELOAD is set, are you sure that is want to you want to do " + "instead of using AFL_PRELOAD?"); + if (getenv("AFL_PRELOAD")) { - setenv("LD_PRELOAD", getenv("AFL_PRELOAD"), 1); - setenv("DYLD_INSERT_LIBRARIES", getenv("AFL_PRELOAD"), 1); + if (qemu_mode) { + + char* qemu_preload = getenv("QEMU_SET_ENV"); + char buf[4096]; + + if (qemu_preload) { + + snprintf(buf, sizeof(buf), "%s,LD_PRELOAD=%s", qemu_preload, + getenv("AFL_PRELOAD")); + + } else { + + snprintf(buf, sizeof(buf), "LD_PRELOAD=%s", getenv("AFL_PRELOAD")); + + } + + setenv("QEMU_SET_ENV", buf, 1); + + } else { + + setenv("LD_PRELOAD", getenv("AFL_PRELOAD"), 1); + setenv("DYLD_INSERT_LIBRARIES", getenv("AFL_PRELOAD"), 1); + + } } -- cgit 1.4.1