mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-08 08:11:34 +00:00
40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
|
|
#ifndef _PERSISTENT_H
|
|
#define _PERSISTENT_H
|
|
|
|
#include "frida-gumjs.h"
|
|
#include "config.h"
|
|
|
|
typedef struct arch_api_regs api_regs;
|
|
|
|
typedef void (*afl_persistent_hook_fn)(api_regs *regs, uint64_t guest_base,
|
|
uint8_t *input_buf,
|
|
uint32_t input_buf_len);
|
|
|
|
extern int __afl_persistent_loop(unsigned int max_cnt);
|
|
|
|
extern unsigned int *__afl_fuzz_len;
|
|
extern unsigned char *__afl_fuzz_ptr;
|
|
|
|
extern guint64 persistent_start;
|
|
extern guint64 persistent_count;
|
|
extern guint64 persistent_ret;
|
|
extern gboolean persistent_debug;
|
|
extern afl_persistent_hook_fn persistent_hook;
|
|
|
|
void persistent_config(void);
|
|
|
|
void persistent_init(void);
|
|
|
|
/* Functions to be implemented by the different architectures */
|
|
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
|
|
|