| 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 |