From 5f20137e9dfdc1f77e6b579b8a614907b18fbf97 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 17 Aug 2021 18:30:30 +0100 Subject: Add support for generating coverage information --- frida_mode/src/js/api.js | 9 +++++++++ frida_mode/src/js/js_api.c | 7 +++++++ 2 files changed, 16 insertions(+) (limited to 'frida_mode/src/js') diff --git a/frida_mode/src/js/api.js b/frida_mode/src/js/api.js index b8f2d39a..f0cf7311 100644 --- a/frida_mode/src/js/api.js +++ b/frida_mode/src/js/api.js @@ -85,6 +85,14 @@ class Afl { static setInMemoryFuzzing() { Afl.jsApiAflSharedMemFuzzing.writeInt(1); } + /** + * See `AFL_FRIDA_INST_COVERAGE_FILE`. This function takes a single `string` + * as an argument. + */ + static setInstrumentCoverageFile(file) { + const buf = Memory.allocUtf8String(file); + Afl.jsApiSetInstrumentCoverageFile(buf); + } /** * See `AFL_FRIDA_INST_DEBUG_FILE`. This function takes a single `string` as * an argument. @@ -233,6 +241,7 @@ Afl.jsApiDone = Afl.jsApiGetFunction("js_api_done", "void", []); Afl.jsApiError = Afl.jsApiGetFunction("js_api_error", "void", ["pointer"]); Afl.jsApiSetDebugMaps = Afl.jsApiGetFunction("js_api_set_debug_maps", "void", []); Afl.jsApiSetEntryPoint = Afl.jsApiGetFunction("js_api_set_entrypoint", "void", ["pointer"]); +Afl.jsApiSetInstrumentCoverageFile = Afl.jsApiGetFunction("js_api_set_instrument_coverage_file", "void", ["pointer"]); Afl.jsApiSetInstrumentDebugFile = Afl.jsApiGetFunction("js_api_set_instrument_debug_file", "void", ["pointer"]); Afl.jsApiSetInstrumentJit = Afl.jsApiGetFunction("js_api_set_instrument_jit", "void", []); Afl.jsApiSetInstrumentLibraries = Afl.jsApiGetFunction("js_api_set_instrument_libraries", "void", []); diff --git a/frida_mode/src/js/js_api.c b/frida_mode/src/js/js_api.c index 930a6dc0..e51f852a 100644 --- a/frida_mode/src/js/js_api.c +++ b/frida_mode/src/js/js_api.c @@ -107,6 +107,13 @@ __attribute__((visibility("default"))) void js_api_set_instrument_libraries() { } +__attribute__((visibility("default"))) void js_api_set_instrument_coverage_file( + char *path) { + + instrument_coverage_filename = g_strdup(path); + +} + __attribute__((visibility("default"))) void js_api_set_instrument_debug_file( char *path) { -- cgit 1.4.1