OLD | NEW |
1 /* | 1 /* |
2 american fuzzy lop - vaguely configurable bits | 2 american fuzzy lop - vaguely configurable bits |
3 ---------------------------------------------- | 3 ---------------------------------------------- |
4 | 4 |
5 Written and maintained by Michal Zalewski <lcamtuf@google.com> | 5 Written and maintained by Michal Zalewski <lcamtuf@google.com> |
6 | 6 |
7 Copyright 2013, 2014, 2015, 2016 Google Inc. All rights reserved. | 7 Copyright 2013, 2014, 2015, 2016 Google Inc. All rights reserved. |
8 | 8 |
9 Licensed under the Apache License, Version 2.0 (the "License"); | 9 Licensed under the Apache License, Version 2.0 (the "License"); |
10 you may not use this file except in compliance with the License. | 10 you may not use this file except in compliance with the License. |
11 You may obtain a copy of the License at: | 11 You may obtain a copy of the License at: |
12 | 12 |
13 http://www.apache.org/licenses/LICENSE-2.0 | 13 http://www.apache.org/licenses/LICENSE-2.0 |
14 | 14 |
15 */ | 15 */ |
16 | 16 |
17 #ifndef _HAVE_CONFIG_H | 17 #ifndef _HAVE_CONFIG_H |
18 #define _HAVE_CONFIG_H | 18 #define _HAVE_CONFIG_H |
19 | 19 |
20 #include "types.h" | 20 #include "types.h" |
21 | 21 |
22 /* Version string: */ | 22 /* Version string: */ |
23 | 23 |
24 #define VERSION "2.30b" | 24 #define VERSION "2.31b" |
25 | 25 |
26 /****************************************************** | 26 /****************************************************** |
27 * * | 27 * * |
28 * Settings that may be of interest to power users: * | 28 * Settings that may be of interest to power users: * |
29 * * | 29 * * |
30 ******************************************************/ | 30 ******************************************************/ |
31 | 31 |
32 /* Comment out to disable terminal colors (note that this makes afl-analyze | 32 /* Comment out to disable terminal colors (note that this makes afl-analyze |
33 a lot less nice): */ | 33 a lot less nice): */ |
34 | 34 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 | 68 |
69 #define HANG_LIMIT 250 | 69 #define HANG_LIMIT 250 |
70 | 70 |
71 /* Maximum number of unique hangs or crashes to record: */ | 71 /* Maximum number of unique hangs or crashes to record: */ |
72 | 72 |
73 #define KEEP_UNIQUE_HANG 500 | 73 #define KEEP_UNIQUE_HANG 500 |
74 #define KEEP_UNIQUE_CRASH 5000 | 74 #define KEEP_UNIQUE_CRASH 5000 |
75 | 75 |
76 /* Baseline number of random tweaks during a single 'havoc' stage: */ | 76 /* Baseline number of random tweaks during a single 'havoc' stage: */ |
77 | 77 |
78 #define HAVOC_CYCLES 5000 | 78 #define HAVOC_CYCLES 256 |
| 79 #define HAVOC_CYCLES_INIT 1024 |
79 | 80 |
80 /* Maximum multiplier for the above (should be a power of two, beware | 81 /* Maximum multiplier for the above (should be a power of two, beware |
81 of 32-bit int overflows): */ | 82 of 32-bit int overflows): */ |
82 | 83 |
83 #define HAVOC_MAX_MULT 16 | 84 #define HAVOC_MAX_MULT 16 |
84 | 85 |
85 /* Absolute minimum number of havoc cycles (after all adjustments): */ | 86 /* Absolute minimum number of havoc cycles (after all adjustments): */ |
86 | 87 |
87 #define HAVOC_MIN 10 | 88 #define HAVOC_MIN 16 |
88 | 89 |
89 /* Maximum stacking for havoc-stage tweaks. The actual value is calculated | 90 /* Maximum stacking for havoc-stage tweaks. The actual value is calculated |
90 like this: | 91 like this: |
91 | 92 |
92 n = random between 1 and HAVOC_STACK_POW2 | 93 n = random between 1 and HAVOC_STACK_POW2 |
93 stacking = 2^n | 94 stacking = 2^n |
94 | 95 |
95 In other words, the default (n = 7) produces 2, 4, 8, 16, 32, 64, or | 96 In other words, the default (n = 7) produces 2, 4, 8, 16, 32, 64, or |
96 128 stacked tweaks: */ | 97 128 stacked tweaks: */ |
97 | 98 |
98 #define HAVOC_STACK_POW2 7 | 99 #define HAVOC_STACK_POW2 7 |
99 | 100 |
100 /* Caps on block sizes for cloning and deletion operations. Each of these | 101 /* Caps on block sizes for cloning and deletion operations. Each of these |
101 ranges has a 33% probability of getting picked, except for the first | 102 ranges has a 33% probability of getting picked, except for the first |
102 two cycles where smaller blocks are favored: */ | 103 two cycles where smaller blocks are favored: */ |
103 | 104 |
104 #define HAVOC_BLK_SMALL 32 | 105 #define HAVOC_BLK_SMALL 32 |
105 #define HAVOC_BLK_MEDIUM 128 | 106 #define HAVOC_BLK_MEDIUM 128 |
106 #define HAVOC_BLK_LARGE 1500 | 107 #define HAVOC_BLK_LARGE 1500 |
107 | 108 |
108 /* Probabilities of skipping non-favored entries in the queue, expressed as | 109 /* Probabilities of skipping non-favored entries in the queue, expressed as |
109 percentages: */ | 110 percentages: */ |
110 | 111 |
111 #define SKIP_TO_NEW_PROB 99 /* ...when there are new, pending favorites */ | 112 #define SKIP_TO_NEW_PROB 99 /* ...when there are new, pending favorites */ |
112 #define SKIP_NFAV_OLD_PROB 95 /* ...no new favs, cur entry already fuzzed */ | 113 #define SKIP_NFAV_OLD_PROB 95 /* ...no new favs, cur entry already fuzzed */ |
113 #define SKIP_NFAV_NEW_PROB 75 /* ...no new favs, cur entry not fuzzed yet */ | 114 #define SKIP_NFAV_NEW_PROB 75 /* ...no new favs, cur entry not fuzzed yet */ |
114 | 115 |
115 /* Splicing cycle count: */ | 116 /* Splicing cycle count: */ |
116 | 117 |
117 #define SPLICE_CYCLES 20 | 118 #define SPLICE_CYCLES 16 |
118 | 119 |
119 /* Nominal per-splice havoc cycle length: */ | 120 /* Nominal per-splice havoc cycle length: */ |
120 | 121 |
121 #define SPLICE_HAVOC 500 | 122 #define SPLICE_HAVOC 32 |
122 | 123 |
123 /* Maximum offset for integer addition / subtraction stages: */ | 124 /* Maximum offset for integer addition / subtraction stages: */ |
124 | 125 |
125 #define ARITH_MAX 35 | 126 #define ARITH_MAX 35 |
126 | 127 |
127 /* Limits for the test case trimmer. The absolute minimum chunk size; and | 128 /* Limits for the test case trimmer. The absolute minimum chunk size; and |
128 the starting and ending divisors for chopping up the input file: */ | 129 the starting and ending divisors for chopping up the input file: */ |
129 | 130 |
130 #define TRIM_MIN_BYTES 4 | 131 #define TRIM_MIN_BYTES 4 |
131 #define TRIM_START_STEPS 16 | 132 #define TRIM_START_STEPS 16 |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
335 | 336 |
336 // #define SKIP_COUNTS | 337 // #define SKIP_COUNTS |
337 | 338 |
338 /* Uncomment this to use instrumentation data to record newly discovered paths, | 339 /* Uncomment this to use instrumentation data to record newly discovered paths, |
339 but do not use them as seeds for fuzzing. This is useful for conveniently | 340 but do not use them as seeds for fuzzing. This is useful for conveniently |
340 measuring coverage that could be attained by a "dumb" fuzzing algorithm: */ | 341 measuring coverage that could be attained by a "dumb" fuzzing algorithm: */ |
341 | 342 |
342 // #define IGNORE_FINDS | 343 // #define IGNORE_FINDS |
343 | 344 |
344 #endif /* ! _HAVE_CONFIG_H */ | 345 #endif /* ! _HAVE_CONFIG_H */ |
OLD | NEW |