aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2019-12-24 20:56:10 +0100
committervan Hauser <vh@thc.org>2019-12-24 20:56:10 +0100
commit67b6298895e8db0cc91c3bbd0bc29c48f8572c2e (patch)
treed3a398366b212ddfdac35b332c844c14dd3ba57a /src
parent3122790295489dee77ffc9993561807fe09be3b8 (diff)
downloadafl++-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.c25
-rw-r--r--src/afl-fuzz.c31
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);
+
+ }
}