about summary refs log tree commit diff
path: root/custom_mutators/grammatron/gramfuzz.h
diff options
context:
space:
mode:
Diffstat (limited to 'custom_mutators/grammatron/gramfuzz.h')
-rw-r--r--custom_mutators/grammatron/gramfuzz.h253
1 files changed, 0 insertions, 253 deletions
diff --git a/custom_mutators/grammatron/gramfuzz.h b/custom_mutators/grammatron/gramfuzz.h
deleted file mode 100644
index 811e0af7..00000000
--- a/custom_mutators/grammatron/gramfuzz.h
+++ /dev/null
@@ -1,253 +0,0 @@
-#ifndef _GRAMFUZZ_H
-
-  #define _GRAMFUZZ_H
-
-  #include <json-c/json.h>
-  #include <unistd.h>
-  #include "hashmap.h"
-  #include "uthash.h"
-  #include "utarray.h"
-
-  #define INIT_INPUTS 100  // No. of initial inputs to be generated
-
-// Set this as `numstates` + 1 where `numstates` is retrieved from gen automata
-// json #define STATES 63
-
-  #define INIT_SIZE 100  // Initial size of the dynamic array holding the input
-
-  #define SPLICE_CORPUS 10000
-  #define RECUR_THRESHOLD 6
-  #define SIZE_THRESHOLD 2048
-
-  #define FLUSH_INTERVAL \
-    3600  // Inputs that gave new coverage will be dumped every FLUSH_INTERVAL
-          // seconds
-
-typedef struct trigger {
-
-  char * id;
-  int    dest;
-  char * term;
-  size_t term_len;
-
-} trigger;
-
-typedef struct state {
-
-  int      state_name;   // Integer State name
-  int      trigger_len;  // Number of triggers associated with this state
-  trigger *ptr;          // Pointer to beginning of the list of triggers
-
-} state;
-
-typedef struct terminal {
-
-  int    state;
-  int    trigger_idx;
-  size_t symbol_len;
-  char * symbol;
-
-} terminal;
-
-typedef struct buckethash {
-
-  int freq;
-
-} buckethash;
-
-int init_state;
-int curr_state;
-int final_state;
-int numstates;
-
-/*****************
-/ DYNAMIC ARRAY FOR WALKS
-*****************/
-
-typedef struct {
-
-  size_t    used;
-  size_t    size;
-  size_t    inputlen;
-  terminal *start;
-
-} Array;
-
-/*****************
-/ DYNAMIC ARRAY FOR STATEMAPS/RECURSION MAPS
-*****************/
-
-typedef struct {
-
-  int *  array;
-  size_t used;
-  size_t size;
-
-} IdxMap;
-
-typedef struct {
-
-  UT_array *nums;
-
-} IdxMap_new;
-
-typedef struct {
-
-  IdxMap_new *idxmap;
-  UT_array ** recurIdx;
-
-} Get_Dupes_Ret;
-
-/* Candidate Struct */
-typedef struct {
-
-  Array *     walk;
-  IdxMap_new *statemap;
-
-} Candidate;
-
-/* Splice Mutation helpers*/
-typedef struct {
-
-  Candidate *splice_cand;
-  int        idx;
-
-} SpliceCand;
-
-typedef struct {
-
-  SpliceCand *start;
-  size_t      used;
-  size_t      size;
-
-} SpliceCandArray;
-
-// Initialize dynamic array for potential splice points
-SpliceCand potential[SPLICE_CORPUS];
-
-typedef struct {
-
-  int orig_idx;
-  int splice_idx;
-
-} intpair_t;
-
-// Initialize dynamic array for potential splice points
-// SpliceCand potential[SPLICE_CORPUS];
-// IdxMap_new* rcuridx[STATES];
-
-/* Prototypes*/
-Array *    slice(Array *, int);
-state *    create_pda(u8 *);
-Array *    gen_input(state *, Array *);
-Array *    gen_input_count(state *, Array *, int *);
-int        updatebucket(map_t, int);
-void       itoa(int, char *, int);
-void       strrreverse(char *, char *);
-void       dbg_hashmap(map_t);
-void       print_repr(Array *, char *);
-int        isSatisfied(map_t);
-char *     get_state(char *);
-Candidate *gen_candidate(Array *);
-
-Array *spliceGF(Array *, Array *, int);
-Array *performSpliceOne(Array *, IdxMap_new *, Array *);
-/* Mutation Methods*/
-Array *    performRandomMutation(state *, Array *);
-Array *    performRandomMutationCount(state *, Array *, int *);
-Array *    performSpliceMutationBench(state *, Array *, Candidate **);
-UT_array **get_dupes(Array *, int *);
-Array *    doMult(Array *, UT_array **, int);
-Array *    doMultBench(Array *, UT_array **, int);
-
-/* Benchmarks*/
-void SpaceBenchmark(char *);
-void GenInputBenchmark(char *, char *);
-void RandomMutationBenchmark(char *, char *);
-void MutationAggrBenchmark(char *, char *);
-void SpliceMutationBenchmark(char *, char *);
-void SpliceMutationBenchmarkOne(char *, char *);
-void RandomRecursiveBenchmark(char *, char *);
-
-/* Testers */
-void SanityCheck(char *);
-
-/*Helpers*/
-void   initArray(Array *, size_t);
-void   insertArray(Array *, int, char *, size_t, int);
-void   freeArray(Array *);
-void   initArrayIdx(IdxMap *, size_t);
-void   insertArrayIdx(IdxMap *, int);
-void   freeArrayIdx(IdxMap *);
-void   initArraySplice(SpliceCandArray *, size_t);
-void   insertArraySplice(SpliceCandArray *, Candidate *, int);
-void   freeArraySplice(IdxMap *);
-void   getTwoIndices(UT_array *, int, int *, int *);
-void   swap(int *, int *);
-Array *slice_inverse(Array *, int);
-void   concatPrefixFeature(Array *, Array *);
-void   concatPrefixFeatureBench(Array *, Array *);
-Array *carve(Array *, int, int);
-int    fact(int);
-
-void                add_to_corpus(struct json_object *, Array *);
-struct json_object *term_to_json(terminal *);
-
-/* Gramatron specific prototypes */
-u8 *   unparse_walk(Array *);
-Array *performSpliceGF(state *, Array *, afl_state_t *);
-void   dump_input(u8 *, char *, int *);
-void   write_input(Array *, u8 *);
-Array *read_input(state *, u8 *);
-state *pda;
-
-// // AFL-specific struct
-// typedef uint8_t  u8;
-// typedef uint16_t u16;
-// typedef uint32_t u32;
-// #ifdef __x86_64__
-// typedef unsigned long long u64;
-// #else
-// typedef uint64_t u64;
-// #endif                                                    /* ^__x86_64__ */
-//
-// struct queue_entry {
-
-//   Array* walk;                           /* Pointer to the automaton walk*/
-//   u32 walk_len;                          /* Number of tokens in the input*/
-//   Candidate* cand;                     /* Preprocessed info about the
-//   candidate to allow for faster mutations*/
-//
-//   u8* fname;                          /* File name for the test case      */
-//   u32 len;                            /* Input length                     */
-//   UT_array** recur_idx;               /* Keeps track of recursive feature
-//   indices*/
-//
-//   u32 recur_len;                      /* The number of recursive features*/
-//
-//   u8  cal_failed,                     /* Calibration failed?              */
-//       trim_done,                      /* Trimmed?                         */
-//       was_fuzzed,                     /* Had any fuzzing done yet?        */
-//       passed_det,                     /* Deterministic stages passed?     */
-//       has_new_cov,                    /* Triggers new coverage?           */
-//       var_behavior,                   /* Variable behavior?               */
-//       favored,                        /* Currently favored?               */
-//       fs_redundant;                   /* Marked as redundant in the fs?   */
-//
-//   u32 bitmap_size,                    /* Number of bits set in bitmap     */
-//       exec_cksum;                     /* Checksum of the execution trace  */
-//
-//   u64 exec_us,                        /* Execution time (us)              */
-//       handicap,                       /* Number of queue cycles behind    */
-//       depth;                          /* Path depth                       */
-//
-//   u8* trace_mini;                     /* Trace bytes, if kept             */
-//   u32 tc_ref;                         /* Trace bytes ref count            */
-//
-//   struct queue_entry *next,           /* Next element, if any             */
-//                      *next_100;       /* 100 elements ahead               */
-//
-// };
-
-#endif
-