Skip to content

Commit f10c034

Browse files
committed
new mopt
1 parent 7a4f1ac commit f10c034

File tree

3 files changed

+961
-436
lines changed

3 files changed

+961
-436
lines changed

include/afl-fuzz.h

Lines changed: 58 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -275,35 +275,62 @@ struct auto_extra_data {
275275
};
276276

277277
/* Fuzzing stages */
278-
279278
enum {
280279

281-
/* 00 */ STAGE_FLIP1,
282-
/* 01 */ STAGE_FLIP2,
283-
/* 02 */ STAGE_FLIP4,
284-
/* 03 */ STAGE_FLIP8,
285-
/* 04 */ STAGE_FLIP16,
286-
/* 05 */ STAGE_FLIP32,
287-
/* 06 */ STAGE_ARITH8,
288-
/* 07 */ STAGE_ARITH16,
289-
/* 08 */ STAGE_ARITH32,
290-
/* 09 */ STAGE_INTEREST8,
291-
/* 10 */ STAGE_INTEREST16,
292-
/* 11 */ STAGE_INTEREST32,
293-
/* 12 */ STAGE_EXTRAS_UO,
294-
/* 13 */ STAGE_EXTRAS_UI,
295-
/* 14 */ STAGE_EXTRAS_AO,
296-
/* 15 */ STAGE_EXTRAS_AI,
297-
/* 16 */ STAGE_HAVOC,
298-
/* 17 */ STAGE_SPLICE,
299-
/* 18 */ STAGE_PYTHON,
300-
/* 19 */ STAGE_CUSTOM_MUTATOR,
301-
/* 20 */ STAGE_COLORIZATION,
302-
/* 21 */ STAGE_ITS,
303-
/* 22 */ STAGE_INF,
304-
/* 23 */ STAGE_QUICK,
305-
306-
STAGE_NUM_MAX
280+
/* 00 */ STAGE_FLIPBIT,
281+
/* 01 */ STAGE_INTEREST8,
282+
/* 02 */ STAGE_INTEREST16,
283+
/* 03 */ STAGE_INTEREST16BE,
284+
/* 04 */ STAGE_INTEREST32,
285+
/* 05 */ STAGE_INTEREST32BE,
286+
/* 06 */ STAGE_ARITH8_,
287+
/* 07 */ STAGE_ARITH8,
288+
/* 08 */ STAGE_ARITH16_,
289+
/* 09 */ STAGE_ARITH16BE_,
290+
/* 10 */ STAGE_ARITH16,
291+
/* 11 */ STAGE_ARITH16BE,
292+
/* 12 */ STAGE_ARITH32_,
293+
/* 13 */ STAGE_ARITH32BE_,
294+
/* 14 */ STAGE_ARITH32,
295+
/* 15 */ STAGE_ARITH32BE,
296+
/* 16 */ STAGE_RAND8,
297+
/* 17 */ STAGE_CLONE_COPY,
298+
/* 18 */ STAGE_CLONE_FIXED,
299+
/* 19 */ STAGE_OVERWRITE_COPY,
300+
/* 20 */ STAGE_OVERWRITE_FIXED,
301+
/* 21 */ STAGE_BYTEADD,
302+
/* 22 */ STAGE_BYTESUB,
303+
/* 23 */ STAGE_FLIP8,
304+
/* 24 */ STAGE_SWITCH,
305+
/* 25 */ STAGE_DEL,
306+
/* 26 */ STAGE_SHUFFLE,
307+
/* 27 */ STAGE_DELONE,
308+
/* 28 */ STAGE_INSERTONE,
309+
/* 29 */ STAGE_ASCIINUM,
310+
/* 30 */ STAGE_INSERTASCIINUM,
311+
/* 31 */ STAGE_EXTRA_OVERWRITE,
312+
/* 32 */ STAGE_EXTRA_INSERT,
313+
/* 33 */ STAGE_AUTO_EXTRA_OVERWRITE,
314+
/* 34 */ STAGE_AUTO_EXTRA_INSERT,
315+
/* 35 */ STAGE_SPLICE_OVERWRITE,
316+
/* 36 */ STAGE_SPLICE_INSERT,
317+
// max havoc mutation types
318+
STAGE_HAVOC_MAX,
319+
// other stages
320+
STAGE_FLIP1,
321+
STAGE_FLIP2,
322+
STAGE_FLIP4,
323+
STAGE_FLIP16,
324+
STAGE_FLIP32,
325+
STAGE_HAVOC,
326+
STAGE_SPLICE,
327+
STAGE_CUSTOM_MUTATOR,
328+
STAGE_PYTHON,
329+
STAGE_COLORIZATION,
330+
STAGE_ITS,
331+
STAGE_INF,
332+
STAGE_QUICK,
333+
STAGE_MAX
307334

308335
};
309336

@@ -317,23 +344,15 @@ enum {
317344

318345
};
319346

320-
#define OPERATOR_NUM 19
347+
#define OPERATOR_NUM STAGE_HAVOC_MAX
321348
#define SWARM_NUM 5
322349
#define PERIOD_CORE 500000
323-
350+
#define PERIOD_PILOT 50000
324351
#define RAND_C (rand() % 1000 * 0.001)
325352
#define V_MAX 1
326353
#define V_MIN 0.05
327354
#define SPLICE_CYCLES_puppet_up 25
328355
#define SPLICE_CYCLES_puppet_low 5
329-
#define STAGE_RANDOMBYTE 12
330-
#define STAGE_DELETEBYTE 13
331-
#define STAGE_Clone75 14
332-
#define STAGE_OverWrite75 15
333-
#define STAGE_OverWriteExtra 16
334-
#define STAGE_InsertExtra 17
335-
#define STAGE_Splice 18
336-
#define PERIOD_PILOT 50000
337356

338357
enum {
339358

@@ -681,8 +700,8 @@ typedef struct afl_state {
681700

682701
u8 stage_val_type; /* Value type (STAGE_VAL_*) */
683702

684-
u64 stage_finds[32], /* Patterns found per fuzz stage */
685-
stage_cycles[32]; /* Execs per fuzz stage */
703+
u64 stage_finds[STAGE_MAX], /* Patterns found per fuzz stage */
704+
stage_cycles[STAGE_MAX]; /* Execs per fuzz stage */
686705

687706
u32 rand_cnt; /* Random number counter */
688707

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy