From a161aac7c1eb8b689f4afc818b25072796e62746 Mon Sep 17 00:00:00 2001 From: Giovanni Di Santi Date: Sat, 29 Jun 2024 22:05:22 +0200 Subject: ijon set: init --- instrumentation/afl-compiler-rt.o.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'instrumentation/afl-compiler-rt.o.c') diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c index c08e6380..bf498781 100644 --- a/instrumentation/afl-compiler-rt.o.c +++ b/instrumentation/afl-compiler-rt.o.c @@ -2761,5 +2761,11 @@ void __afl_injection_xss(u8 *buf) { } +void __afl_ijon_set(u32 edge) { + + __afl_area_ptr[edge % __afl_map_size] |= 1; + +} + #undef write_error -- cgit 1.4.1 From 8fbeeb143989f4ebbcc238a96305e4c534e074c7 Mon Sep 17 00:00:00 2001 From: Giovanni Di Santi Date: Sun, 30 Jun 2024 15:50:37 +0200 Subject: ijon set: discard source code instrumentation --- frida_mode/src/instrument/instrument.c | 2 +- instrumentation/afl-compiler-rt.o.c | 6 ------ src/afl-cc.c | 7 ++----- 3 files changed, 3 insertions(+), 12 deletions(-) (limited to 'instrumentation/afl-compiler-rt.o.c') diff --git a/frida_mode/src/instrument/instrument.c b/frida_mode/src/instrument/instrument.c index cbb8afd9..e0495cdf 100644 --- a/frida_mode/src/instrument/instrument.c +++ b/frida_mode/src/instrument/instrument.c @@ -451,7 +451,7 @@ void instrument_regs_format(int fd, char *format, ...) { void ijon_set(uint32_t edge) { - __afl_ijon_set(edge); + __afl_area_ptr[edge % __afl_map_size] |= 1; } diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c index bf498781..c08e6380 100644 --- a/instrumentation/afl-compiler-rt.o.c +++ b/instrumentation/afl-compiler-rt.o.c @@ -2761,11 +2761,5 @@ void __afl_injection_xss(u8 *buf) { } -void __afl_ijon_set(u32 edge) { - - __afl_area_ptr[edge % __afl_map_size] |= 1; - -} - #undef write_error diff --git a/src/afl-cc.c b/src/afl-cc.c index 2a027ce4..7afab850 100644 --- a/src/afl-cc.c +++ b/src/afl-cc.c @@ -1528,8 +1528,7 @@ void add_defs_selective_instr(aflcc_state_t *aflcc) { "extern \"C\" void __afl_coverage_discard();" "extern \"C\" void __afl_coverage_skip();" "extern \"C\" void __afl_coverage_on();" - "extern \"C\" void __afl_coverage_off();" - "extern \"C\" void __afl_ijon_set(unsigned int);"); + "extern \"C\" void __afl_coverage_off();"); } else { @@ -1538,8 +1537,7 @@ void add_defs_selective_instr(aflcc_state_t *aflcc) { "void __afl_coverage_discard();" "void __afl_coverage_skip();" "void __afl_coverage_on();" - "void __afl_coverage_off();" - "void __afl_ijon_set(unsigned int);"); + "void __afl_coverage_off();"); } @@ -1551,7 +1549,6 @@ void add_defs_selective_instr(aflcc_state_t *aflcc) { insert_param(aflcc, "-D__AFL_COVERAGE_OFF()=__afl_coverage_off()"); insert_param(aflcc, "-D__AFL_COVERAGE_DISCARD()=__afl_coverage_discard()"); insert_param(aflcc, "-D__AFL_COVERAGE_SKIP()=__afl_coverage_skip()"); - insert_param(aflcc, "-D__AFL_IJON_SET(_A)=__afl_ijon_set(_A)"); } -- cgit 1.4.1 From 77bad3ad239c557d17ab2788837d2a7aa854b235 Mon Sep 17 00:00:00 2001 From: Giovanni Di Santi Date: Wed, 10 Jul 2024 10:16:14 +0200 Subject: ijon set: use __afl_coverage_interesting --- dynamic_list.txt | 1 - frida_mode/include/instrument.h | 2 +- frida_mode/src/instrument/instrument.c | 2 +- instrumentation/afl-compiler-rt.o.c | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) (limited to 'instrumentation/afl-compiler-rt.o.c') diff --git a/dynamic_list.txt b/dynamic_list.txt index 1a5c514a..50c0c6b8 100644 --- a/dynamic_list.txt +++ b/dynamic_list.txt @@ -30,7 +30,6 @@ "__afl_selective_coverage_temp"; "__afl_sharedmem_fuzzing"; "__afl_trace"; - "__afl_ijon_set"; "__cmplog_ins_hook1"; "__cmplog_ins_hook16"; "__cmplog_ins_hook2"; diff --git a/frida_mode/include/instrument.h b/frida_mode/include/instrument.h index 7f4958a2..a1969e37 100644 --- a/frida_mode/include/instrument.h +++ b/frida_mode/include/instrument.h @@ -22,7 +22,7 @@ extern guint64 instrument_fixed_seed; extern uint8_t *__afl_area_ptr; extern uint32_t __afl_map_size; -extern void __afl_ijon_set(uint32_t); +extern void __afl_coverage_interesting(uint8_t, uint32_t); extern __thread guint64 *instrument_previous_pc_addr; diff --git a/frida_mode/src/instrument/instrument.c b/frida_mode/src/instrument/instrument.c index e0495cdf..d30e21ec 100644 --- a/frida_mode/src/instrument/instrument.c +++ b/frida_mode/src/instrument/instrument.c @@ -451,7 +451,7 @@ void instrument_regs_format(int fd, char *format, ...) { void ijon_set(uint32_t edge) { - __afl_area_ptr[edge % __afl_map_size] |= 1; + __afl_coverage_interesting(1, edge); } diff --git a/instrumentation/afl-compiler-rt.o.c b/instrumentation/afl-compiler-rt.o.c index c08e6380..f28f5ea4 100644 --- a/instrumentation/afl-compiler-rt.o.c +++ b/instrumentation/afl-compiler-rt.o.c @@ -2704,7 +2704,7 @@ void __afl_coverage_skip() { // mark this area as especially interesting void __afl_coverage_interesting(u8 val, u32 id) { - __afl_area_ptr[id] = val; + __afl_area_ptr[id % __afl_map_size] = val; } -- cgit 1.4.1