diff options
author | van Hauser <vh@thc.org> | 2019-12-24 20:56:10 +0100 |
---|---|---|
committer | van Hauser <vh@thc.org> | 2019-12-24 20:56:10 +0100 |
commit | 67b6298895e8db0cc91c3bbd0bc29c48f8572c2e (patch) | |
tree | d3a398366b212ddfdac35b332c844c14dd3ba57a /src | |
parent | 3122790295489dee77ffc9993561807fe09be3b8 (diff) | |
download | afl++-67b6298895e8db0cc91c3bbd0bc29c48f8572c2e.tar.gz |
qemu ld_preload support and added socket_fuzzing ld_preload library
Diffstat (limited to 'src')
-rw-r--r-- | src/afl-fuzz-stats.c | 25 | ||||
-rw-r--r-- | src/afl-fuzz.c | 31 |
2 files changed, 40 insertions, 16 deletions
diff --git a/src/afl-fuzz-stats.c b/src/afl-fuzz-stats.c index 485e2aaa..fa4be50f 100644 --- a/src/afl-fuzz-stats.c +++ b/src/afl-fuzz-stats.c @@ -576,10 +576,10 @@ void show_stats(void) { " imported : " cRST "%-10s" bSTG bV "\n", tmp, sync_id ? DI(queued_imported) : (u8*)"n/a"); - sprintf(tmp, "%s/%s, %s/%s, %s/%s", - DI(stage_finds[STAGE_HAVOC]), DI(stage_cycles[STAGE_HAVOC]), - DI(stage_finds[STAGE_SPLICE]), DI(stage_cycles[STAGE_SPLICE]), - DI(stage_finds[STAGE_RADAMSA]), DI(stage_cycles[STAGE_RADAMSA])); + sprintf(tmp, "%s/%s, %s/%s, %s/%s", DI(stage_finds[STAGE_HAVOC]), + DI(stage_cycles[STAGE_HAVOC]), DI(stage_finds[STAGE_SPLICE]), + DI(stage_cycles[STAGE_SPLICE]), DI(stage_finds[STAGE_RADAMSA]), + DI(stage_cycles[STAGE_RADAMSA])); SAYF(bV bSTOP " havoc/rad : " cRST "%-36s " bSTG bV bSTOP, tmp); @@ -596,13 +596,12 @@ void show_stats(void) { : cRST), tmp); - sprintf(tmp, "%s/%s, %s/%s", - DI(stage_finds[STAGE_PYTHON]), DI(stage_cycles[STAGE_PYTHON]), - DI(stage_finds[STAGE_CUSTOM_MUTATOR]), + sprintf(tmp, "%s/%s, %s/%s", DI(stage_finds[STAGE_PYTHON]), + DI(stage_cycles[STAGE_PYTHON]), DI(stage_finds[STAGE_CUSTOM_MUTATOR]), DI(stage_cycles[STAGE_CUSTOM_MUTATOR])); - SAYF(bV bSTOP " py/custom : " cRST "%-36s " bSTG bVR bH20 bH2 bH bRB - "\n", tmp); + SAYF(bV bSTOP " py/custom : " cRST "%-36s " bSTG bVR bH20 bH2 bH bRB "\n", + tmp); if (!bytes_trim_out) { @@ -639,13 +638,11 @@ void show_stats(void) { sprintf(tmp, "%s/%s", DI(stage_finds[STAGE_CUSTOM_MUTATOR]), DI(stage_cycles[STAGE_CUSTOM_MUTATOR])); - SAYF(bV bSTOP " custom mut. : " cRST "%-36s " bSTG bV RESET_G1, - tmp); + SAYF(bV bSTOP " custom mut. : " cRST "%-36s " bSTG bV RESET_G1, tmp); } else { - SAYF(bV bSTOP " trim : " cRST "%-36s " bSTG bV RESET_G1, - tmp); + SAYF(bV bSTOP " trim : " cRST "%-36s " bSTG bV RESET_G1, tmp); } @@ -691,7 +688,7 @@ void show_stats(void) { } else SAYF("\r"); - + /* Last line */ SAYF(SET_G1 "\n" bSTG bLB bH30 bH20 bH2 bRB bSTOP cRST RESET_G1); 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); + + } } |