aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/forkserver.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/include/forkserver.h b/include/forkserver.h
index 464f208d..227f75c1 100644
--- a/include/forkserver.h
+++ b/include/forkserver.h
@@ -33,6 +33,40 @@
#include "types.h"
+#ifdef __linux__
+/**
+ * Nyx related typedefs taken from libnyx.h
+ */
+
+typedef enum NyxReturnValue {
+ Normal,
+ Crash,
+ Asan,
+ Timout,
+ InvalidWriteToPayload,
+ Error,
+ IoError,
+ Abort,
+} NyxReturnValue;
+
+typedef struct{
+ void* (*nyx_new)(const char *sharedir,
+ const char *workdir,
+ uint32_t worker_id,
+ uint32_t cpu_id,
+ bool create_snapshot);
+ void (*nyx_shutdown)(void *qemu_process);
+ void (*nyx_option_set_reload_mode)(void *qemu_process, bool enable);
+ void (*nyx_option_set_timeout)(void *qemu_process, uint8_t timeout_sec, uint32_t timeout_usec);
+ void (*nyx_option_apply)(void *qemu_process);
+ void (*nyx_set_afl_input)(void *qemu_process, uint8_t *buffer, uint32_t size);
+ enum NyxReturnValue (*nyx_exec)(void *qemu_process);
+ uint8_t* (*nyx_get_bitmap_buffer)(void *qemu_process);
+ size_t (*nyx_get_bitmap_buffer_size)(void *qemu_process);
+} nyx_plugin_handler_t;
+
+#endif
+
typedef struct afl_forkserver {
/* a program that includes afl-forkserver needs to define these */
@@ -121,6 +155,17 @@ typedef struct afl_forkserver {
u8 kill_signal;
+#ifdef __linux__
+ nyx_plugin_handler_t* nyx_handlers;
+ char *out_dir_path; /* path to the output directory */
+ u8 nyx_mode; /* if running in nyx mode or not */
+ bool nyx_parent; /* create initial snapshot */
+ bool nyx_standalone; /* don't serialize the snapshot */
+ void* nyx_runner; /* nyx runner object */
+ u32 nyx_id; /* nyx runner id (0 -> master) */
+ u32 nyx_bind_cpu_id; /* nyx runner cpu id */
+#endif
+
} afl_forkserver_t;
typedef enum fsrv_run_result {