aboutsummaryrefslogtreecommitdiff
path: root/frida_mode/src/js
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2021-08-20 23:54:59 +0200
committerGitHub <noreply@github.com>2021-08-20 23:54:59 +0200
commit2e15661f184c77ac1fbb6f868c894e946cbb7f17 (patch)
tree665b9368d2c1908cf71dbc4a76517f88c5317d9a /frida_mode/src/js
parent32a0d6ac31554a47dca591f8978982758fb87677 (diff)
parentca9c87dd45d8b9a746a212cbc6ce85b78b637d8c (diff)
downloadafl++-2e15661f184c77ac1fbb6f868c894e946cbb7f17.tar.gz
Merge pull request #1074 from AFLplusplus/dev
push to stable
Diffstat (limited to 'frida_mode/src/js')
-rw-r--r--frida_mode/src/js/api.js30
-rw-r--r--frida_mode/src/js/js_api.c29
2 files changed, 46 insertions, 13 deletions
diff --git a/frida_mode/src/js/api.js b/frida_mode/src/js/api.js
index b8f2d39a..71b5e4a4 100644
--- a/frida_mode/src/js/api.js
+++ b/frida_mode/src/js/api.js
@@ -86,6 +86,14 @@ class Afl {
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.
*/
@@ -164,6 +172,12 @@ class Afl {
Afl.jsApiSetPersistentReturn(address);
}
/**
+ * See `AFL_FRIDA_INST_NO_PREFETCH_BACKPATCH`.
+ */
+ static setPrefetchBackpatchDisable() {
+ Afl.jsApiSetPrefetchBackpatchDisable();
+ }
+ /**
* See `AFL_FRIDA_INST_NO_PREFETCH`.
*/
static setPrefetchDisable() {
@@ -177,6 +191,12 @@ class Afl {
Afl.jsApiSetStalkerCallback(callback);
}
/**
+ * See `AFL_FRIDA_STALKER_IC_ENTRIES`.
+ */
+ static setStalkerIcEntries(val) {
+ Afl.jsApiSetStalkerIcEntries(val);
+ }
+ /**
* See `AFL_FRIDA_STATS_FILE`. This function takes a single `string` as
* an argument.
*/
@@ -192,12 +212,6 @@ class Afl {
Afl.jsApiSetStatsInterval(interval);
}
/**
- * See `AFL_FRIDA_STATS_TRANSITIONS`
- */
- static setStatsTransitions() {
- Afl.jsApiSetStatsTransitions();
- }
- /**
* See `AFL_FRIDA_OUTPUT_STDERR`. This function takes a single `string` as
* an argument.
*/
@@ -233,6 +247,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", []);
@@ -245,11 +260,12 @@ Afl.jsApiSetPersistentCount = Afl.jsApiGetFunction("js_api_set_persistent_count"
Afl.jsApiSetPersistentDebug = Afl.jsApiGetFunction("js_api_set_persistent_debug", "void", []);
Afl.jsApiSetPersistentHook = Afl.jsApiGetFunction("js_api_set_persistent_hook", "void", ["pointer"]);
Afl.jsApiSetPersistentReturn = Afl.jsApiGetFunction("js_api_set_persistent_return", "void", ["pointer"]);
+Afl.jsApiSetPrefetchBackpatchDisable = Afl.jsApiGetFunction("js_api_set_prefetch_backpatch_disable", "void", []);
Afl.jsApiSetPrefetchDisable = Afl.jsApiGetFunction("js_api_set_prefetch_disable", "void", []);
Afl.jsApiSetStalkerCallback = Afl.jsApiGetFunction("js_api_set_stalker_callback", "void", ["pointer"]);
+Afl.jsApiSetStalkerIcEntries = Afl.jsApiGetFunction("js_api_set_stalker_ic_entries", "void", ["uint32"]);
Afl.jsApiSetStatsFile = Afl.jsApiGetFunction("js_api_set_stats_file", "void", ["pointer"]);
Afl.jsApiSetStatsInterval = Afl.jsApiGetFunction("js_api_set_stats_interval", "void", ["uint64"]);
-Afl.jsApiSetStatsTransitions = Afl.jsApiGetFunction("js_api_set_stats_transitions", "void", []);
Afl.jsApiSetStdErr = Afl.jsApiGetFunction("js_api_set_stderr", "void", ["pointer"]);
Afl.jsApiSetStdOut = Afl.jsApiGetFunction("js_api_set_stdout", "void", ["pointer"]);
Afl.jsApiWrite = new NativeFunction(
diff --git a/frida_mode/src/js/js_api.c b/frida_mode/src/js/js_api.c
index 930a6dc0..c2746d13 100644
--- a/frida_mode/src/js/js_api.c
+++ b/frida_mode/src/js/js_api.c
@@ -7,8 +7,10 @@
#include "persistent.h"
#include "prefetch.h"
#include "ranges.h"
+#include "stalker.h"
#include "stats.h"
#include "util.h"
+
__attribute__((visibility("default"))) void js_api_done() {
js_done = TRUE;
@@ -107,6 +109,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) {
@@ -120,6 +129,13 @@ __attribute__((visibility("default"))) void js_api_set_prefetch_disable(void) {
}
+__attribute__((visibility("default"))) void
+js_api_set_prefetch_backpatch_disable(void) {
+
+ prefetch_backpatch = FALSE;
+
+}
+
__attribute__((visibility("default"))) void js_api_set_instrument_no_optimize(
void) {
@@ -173,12 +189,6 @@ __attribute__((visibility("default"))) void js_api_set_stats_interval(
}
-__attribute__((visibility("default"))) void js_api_set_stats_transitions() {
-
- stats_transitions = TRUE;
-
-}
-
__attribute__((visibility("default"))) void js_api_set_persistent_hook(
void *address) {
@@ -199,3 +209,10 @@ __attribute__((visibility("default"))) void js_api_set_stalker_callback(
}
+__attribute__((visibility("default"))) void js_api_set_stalker_ic_entries(
+ guint val) {
+
+ stalker_ic_entries = val;
+
+}
+