aboutsummaryrefslogtreecommitdiff
path: root/frida_mode/include
diff options
context:
space:
mode:
authorvanhauser-thc <vh@thc.org>2021-07-19 10:58:19 +0200
committervanhauser-thc <vh@thc.org>2021-07-19 10:58:19 +0200
commit32a0d6ac31554a47dca591f8978982758fb87677 (patch)
treebe2ffd03f136dbecd408c73e4bc250ae249a4180 /frida_mode/include
parent815161827689c339d335233b7b232ac9b120b79b (diff)
downloadafl++-32a0d6ac31554a47dca591f8978982758fb87677.tar.gz
Revert "Merge branch 'release' into stable"
This reverts commit 815161827689c339d335233b7b232ac9b120b79b, reversing changes made to 9321a24e682b5c8bf6278961bd014cb883b87295.
Diffstat (limited to 'frida_mode/include')
-rw-r--r--frida_mode/include/asan.h3
-rw-r--r--frida_mode/include/ctx.h13
-rw-r--r--frida_mode/include/entry.h9
-rw-r--r--frida_mode/include/frida_cmplog.h1
-rw-r--r--frida_mode/include/instrument.h35
-rw-r--r--frida_mode/include/interceptor.h11
-rw-r--r--frida_mode/include/lib.h4
-rw-r--r--frida_mode/include/output.h6
-rw-r--r--frida_mode/include/persistent.h10
-rw-r--r--frida_mode/include/prefetch.h5
-rw-r--r--frida_mode/include/ranges.h10
-rw-r--r--frida_mode/include/stalker.h4
-rw-r--r--frida_mode/include/stats.h8
-rw-r--r--frida_mode/include/util.h2
14 files changed, 85 insertions, 36 deletions
diff --git a/frida_mode/include/asan.h b/frida_mode/include/asan.h
index 7a8726e0..67d33591 100644
--- a/frida_mode/include/asan.h
+++ b/frida_mode/include/asan.h
@@ -1,10 +1,11 @@
#ifndef _ASAN_H
#define _ASAN_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
extern gboolean asan_initialized;
+void asan_config(void);
void asan_init(void);
void asan_arch_init(void);
void asan_instrument(const cs_insn *instr, GumStalkerIterator *iterator);
diff --git a/frida_mode/include/ctx.h b/frida_mode/include/ctx.h
index cbcc892a..c669478e 100644
--- a/frida_mode/include/ctx.h
+++ b/frida_mode/include/ctx.h
@@ -1,10 +1,17 @@
#ifndef _CTX_H
#define _CTX_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
-#if defined(__x86_64__) || defined(__i386__)
-gsize ctx_read_reg(GumCpuContext *ctx, x86_reg reg);
+#if defined(__x86_64__)
+gsize ctx_read_reg(GumX64CpuContext *ctx, x86_reg reg);
+#elif defined(__i386__)
+gsize ctx_read_reg(GumIA32CpuContext *ctx, x86_reg reg);
+#elif defined(__aarch64__)
+gsize ctx_read_reg(GumArm64CpuContext *ctx, arm64_reg reg);
+size_t ctx_get_size(const cs_insn *instr, cs_arm64_op *operand);
+#elif defined(__arm__)
+gsize ctx_read_reg(GumArmCpuContext *ctx, arm_reg reg);
#endif
#endif
diff --git a/frida_mode/include/entry.h b/frida_mode/include/entry.h
index 967831af..cbc5c8c7 100644
--- a/frida_mode/include/entry.h
+++ b/frida_mode/include/entry.h
@@ -1,13 +1,16 @@
#ifndef _ENTRY_H
#define _ENTRY_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
-extern guint64 entry_start;
+extern guint64 entry_point;
+extern gboolean entry_reached;
+
+void entry_config(void);
void entry_init(void);
-void entry_run(void);
+void entry_start(void);
void entry_prologue(GumStalkerIterator *iterator, GumStalkerOutput *output);
diff --git a/frida_mode/include/frida_cmplog.h b/frida_mode/include/frida_cmplog.h
index b620a472..a665e970 100644
--- a/frida_mode/include/frida_cmplog.h
+++ b/frida_mode/include/frida_cmplog.h
@@ -3,6 +3,7 @@
extern struct cmp_map *__afl_cmp_map;
+void cmplog_config(void);
void cmplog_init(void);
/* Functions to be implemented by the different architectures */
diff --git a/frida_mode/include/instrument.h b/frida_mode/include/instrument.h
index ed92c25a..29f14da9 100644
--- a/frida_mode/include/instrument.h
+++ b/frida_mode/include/instrument.h
@@ -1,13 +1,24 @@
#ifndef _INSTRUMENT_H
#define _INSTRUMENT_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
#include "config.h"
-extern __thread uint64_t previous_pc;
-extern uint8_t * __afl_area_ptr;
-extern uint32_t __afl_map_size;
+extern char * instrument_debug_filename;
+extern gboolean instrument_tracing;
+extern gboolean instrument_optimize;
+extern gboolean instrument_unique;
+extern __thread guint64 instrument_previous_pc;
+extern guint64 instrument_hash_zero;
+
+extern gboolean instrument_use_fixed_seed;
+extern guint64 instrument_fixed_seed;
+
+extern uint8_t *__afl_area_ptr;
+extern uint32_t __afl_map_size;
+
+void instrument_config(void);
void instrument_init(void);
@@ -19,9 +30,17 @@ gboolean instrument_is_coverage_optimize_supported(void);
void instrument_coverage_optimize(const cs_insn * instr,
GumStalkerOutput *output);
-void instrument_debug_init(void);
-void instrument_debug_start(uint64_t address, GumStalkerOutput *output);
-void instrument_debug_instruction(uint64_t address, uint16_t size);
-void instrument_debug_end(GumStalkerOutput *output);
+void instrument_debug_config(void);
+void instrument_debug_init(void);
+void instrument_debug_start(uint64_t address, GumStalkerOutput *output);
+void instrument_debug_instruction(uint64_t address, uint16_t size);
+void instrument_debug_end(GumStalkerOutput *output);
+void instrument_flush(GumStalkerOutput *output);
+gpointer instrument_cur(GumStalkerOutput *output);
+
+void instrument_on_fork();
+
+guint64 instrument_get_offset_hash(GumAddress current_rip);
+
#endif
diff --git a/frida_mode/include/interceptor.h b/frida_mode/include/interceptor.h
deleted file mode 100644
index 0ff754a4..00000000
--- a/frida_mode/include/interceptor.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef _INTERCEPTOR_H
-#define _INTERCEPTOR_H
-
-#include "frida-gum.h"
-
-void intercept(void *address, gpointer replacement, gpointer user_data);
-void unintercept(void *address);
-void unintercept_self(void);
-
-#endif
-
diff --git a/frida_mode/include/lib.h b/frida_mode/include/lib.h
index 237aecb0..a9d56e4e 100644
--- a/frida_mode/include/lib.h
+++ b/frida_mode/include/lib.h
@@ -1,7 +1,9 @@
#ifndef _LIB_H
#define _LIB_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
+
+void lib_config(void);
void lib_init(void);
diff --git a/frida_mode/include/output.h b/frida_mode/include/output.h
index 53a9fdd3..743b2fe6 100644
--- a/frida_mode/include/output.h
+++ b/frida_mode/include/output.h
@@ -1,8 +1,12 @@
#ifndef _OUTPUT_H
#define _OUTPUT_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
+extern char *output_stdout;
+extern char *output_stderr;
+
+void output_config(void);
void output_init(void);
#endif
diff --git a/frida_mode/include/persistent.h b/frida_mode/include/persistent.h
index 25b44ab0..c79f0143 100644
--- a/frida_mode/include/persistent.h
+++ b/frida_mode/include/persistent.h
@@ -2,7 +2,7 @@
#ifndef _PERSISTENT_H
#define _PERSISTENT_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
#include "config.h"
typedef struct arch_api_regs api_regs;
@@ -19,9 +19,10 @@ extern unsigned char *__afl_fuzz_ptr;
extern guint64 persistent_start;
extern guint64 persistent_count;
extern guint64 persistent_ret;
-extern guint64 persistent_ret_offset;
extern gboolean persistent_debug;
-extern afl_persistent_hook_fn hook;
+extern afl_persistent_hook_fn persistent_hook;
+
+void persistent_config(void);
void persistent_init(void);
@@ -29,7 +30,10 @@ void persistent_init(void);
gboolean persistent_is_supported(void);
void persistent_prologue(GumStalkerOutput *output);
+void persistent_prologue_arch(GumStalkerOutput *output);
+
void persistent_epilogue(GumStalkerOutput *output);
+void persistent_epilogue_arch(GumStalkerOutput *output);
#endif
diff --git a/frida_mode/include/prefetch.h b/frida_mode/include/prefetch.h
index 8f0cee68..835d5e8a 100644
--- a/frida_mode/include/prefetch.h
+++ b/frida_mode/include/prefetch.h
@@ -1,8 +1,11 @@
#ifndef _PREFETCH_H
#define _PREFETCH_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
+extern gboolean prefetch_enable;
+
+void prefetch_config(void);
void prefetch_init(void);
void prefetch_write(void *addr);
void prefetch_read(void);
diff --git a/frida_mode/include/ranges.h b/frida_mode/include/ranges.h
index c623f473..2eb9b355 100644
--- a/frida_mode/include/ranges.h
+++ b/frida_mode/include/ranges.h
@@ -1,13 +1,21 @@
#ifndef _RANGES_H
#define _RANGES_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
+extern gboolean ranges_debug_maps;
+extern gboolean ranges_inst_libs;
+extern gboolean ranges_inst_jit;
+
+void ranges_config(void);
void ranges_init(void);
gboolean range_is_excluded(gpointer address);
void ranges_exclude();
+void ranges_add_include(GumMemoryRange *range);
+void ranges_add_exclude(GumMemoryRange *range);
+
#endif
diff --git a/frida_mode/include/stalker.h b/frida_mode/include/stalker.h
index 186ead11..b5e05d5a 100644
--- a/frida_mode/include/stalker.h
+++ b/frida_mode/include/stalker.h
@@ -1,11 +1,13 @@
#ifndef _STALKER_H
#define _STALKER_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
+void stalker_config(void);
void stalker_init(void);
GumStalker *stalker_get(void);
void stalker_start(void);
+void stalker_trust(void);
#endif
diff --git a/frida_mode/include/stats.h b/frida_mode/include/stats.h
index 4271132a..cd2350ea 100644
--- a/frida_mode/include/stats.h
+++ b/frida_mode/include/stats.h
@@ -1,7 +1,7 @@
#ifndef _STATS_H
#define _STATS_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
typedef struct {
@@ -15,6 +15,11 @@ typedef struct {
extern stats_data_header_t *stats_data;
+extern char * stats_filename;
+extern guint64 stats_interval;
+extern gboolean stats_transitions;
+
+void stats_config(void);
void stats_init(void);
void stats_collect(const cs_insn *instr, gboolean begin);
void stats_print(char *format, ...);
@@ -23,6 +28,7 @@ gboolean stats_is_supported_arch(void);
size_t stats_data_size_arch(void);
void stats_collect_arch(const cs_insn *instr);
void stats_write_arch(void);
+void stats_on_fork(void);
#endif
diff --git a/frida_mode/include/util.h b/frida_mode/include/util.h
index 7b443b5e..525e9d40 100644
--- a/frida_mode/include/util.h
+++ b/frida_mode/include/util.h
@@ -1,7 +1,7 @@
#ifndef _UTIL_H
#define _UTIL_H
-#include "frida-gum.h"
+#include "frida-gumjs.h"
#define UNUSED_PARAMETER(x) (void)(x)
#define IGNORED_RETURN(x) (void)!(x)