mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-17 12:18:08 +00:00
add current mutation strategy to include
This commit is contained in:
@ -77,6 +77,167 @@ enum {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define MUT_NORMAL_ARRAY_SIZE 77
|
||||||
|
u32 normal_splice[MUT_NORMAL_ARRAY_SIZE] = {MUT_FLIPBIT,
|
||||||
|
MUT_FLIPBIT,
|
||||||
|
MUT_FLIPBIT,
|
||||||
|
MUT_FLIPBIT,
|
||||||
|
MUT_INTERESTING8,
|
||||||
|
MUT_INTERESTING8,
|
||||||
|
MUT_INTERESTING8,
|
||||||
|
MUT_INTERESTING8,
|
||||||
|
MUT_INTERESTING16,
|
||||||
|
MUT_INTERESTING16,
|
||||||
|
MUT_INTERESTING16BE,
|
||||||
|
MUT_INTERESTING16BE,
|
||||||
|
MUT_INTERESTING32,
|
||||||
|
MUT_INTERESTING32,
|
||||||
|
MUT_INTERESTING32BE,
|
||||||
|
MUT_INTERESTING32BE,
|
||||||
|
MUT_ARITH8_,
|
||||||
|
MUT_ARITH8_,
|
||||||
|
MUT_ARITH8_,
|
||||||
|
MUT_ARITH8_,
|
||||||
|
MUT_ARITH8,
|
||||||
|
MUT_ARITH8,
|
||||||
|
MUT_ARITH8,
|
||||||
|
MUT_ARITH8,
|
||||||
|
MUT_ARITH16_,
|
||||||
|
MUT_ARITH16_,
|
||||||
|
MUT_ARITH16BE_,
|
||||||
|
MUT_ARITH16BE_,
|
||||||
|
MUT_ARITH16,
|
||||||
|
MUT_ARITH16,
|
||||||
|
MUT_ARITH16BE,
|
||||||
|
MUT_ARITH16BE,
|
||||||
|
MUT_ARITH32_,
|
||||||
|
MUT_ARITH32_,
|
||||||
|
MUT_ARITH32BE_,
|
||||||
|
MUT_ARITH32BE_,
|
||||||
|
MUT_ARITH32,
|
||||||
|
MUT_ARITH32,
|
||||||
|
MUT_ARITH32BE,
|
||||||
|
MUT_ARITH32BE,
|
||||||
|
MUT_RAND8,
|
||||||
|
MUT_RAND8,
|
||||||
|
MUT_RAND8,
|
||||||
|
MUT_RAND8,
|
||||||
|
MUT_CLONE_COPY,
|
||||||
|
MUT_CLONE_COPY,
|
||||||
|
MUT_CLONE_COPY,
|
||||||
|
MUT_CLONE_FIXED,
|
||||||
|
MUT_OVERWRITE_COPY,
|
||||||
|
MUT_OVERWRITE_COPY,
|
||||||
|
MUT_OVERWRITE_COPY,
|
||||||
|
MUT_OVERWRITE_FIXED,
|
||||||
|
MUT_BYTEADD,
|
||||||
|
MUT_BYTESUB,
|
||||||
|
MUT_FLIP8,
|
||||||
|
MUT_SWITCH,
|
||||||
|
MUT_SWITCH,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_EXTRA_OVERWRITE,
|
||||||
|
MUT_EXTRA_OVERWRITE,
|
||||||
|
MUT_EXTRA_INSERT,
|
||||||
|
MUT_EXTRA_INSERT,
|
||||||
|
MUT_AUTO_EXTRA_OVERWRITE,
|
||||||
|
MUT_AUTO_EXTRA_OVERWRITE,
|
||||||
|
MUT_AUTO_EXTRA_INSERT,
|
||||||
|
MUT_AUTO_EXTRA_INSERT,
|
||||||
|
MUT_SPLICE_OVERWRITE,
|
||||||
|
MUT_SPLICE_OVERWRITE,
|
||||||
|
MUT_SPLICE_INSERT,
|
||||||
|
MUT_SPLICE_INSERT};
|
||||||
|
#define MUT_SPLICE_ARRAY_SIZE 81
|
||||||
|
u32 full_splice_array[MUT_SPLICE_ARRAY_SIZE] = {MUT_FLIPBIT,
|
||||||
|
MUT_FLIPBIT,
|
||||||
|
MUT_FLIPBIT,
|
||||||
|
MUT_FLIPBIT,
|
||||||
|
MUT_INTERESTING8,
|
||||||
|
MUT_INTERESTING8,
|
||||||
|
MUT_INTERESTING8,
|
||||||
|
MUT_INTERESTING8,
|
||||||
|
MUT_INTERESTING16,
|
||||||
|
MUT_INTERESTING16,
|
||||||
|
MUT_INTERESTING16BE,
|
||||||
|
MUT_INTERESTING16BE,
|
||||||
|
MUT_INTERESTING32,
|
||||||
|
MUT_INTERESTING32,
|
||||||
|
MUT_INTERESTING32BE,
|
||||||
|
MUT_INTERESTING32BE,
|
||||||
|
MUT_ARITH8_,
|
||||||
|
MUT_ARITH8_,
|
||||||
|
MUT_ARITH8_,
|
||||||
|
MUT_ARITH8_,
|
||||||
|
MUT_ARITH8,
|
||||||
|
MUT_ARITH8,
|
||||||
|
MUT_ARITH8,
|
||||||
|
MUT_ARITH8,
|
||||||
|
MUT_ARITH16_,
|
||||||
|
MUT_ARITH16_,
|
||||||
|
MUT_ARITH16BE_,
|
||||||
|
MUT_ARITH16BE_,
|
||||||
|
MUT_ARITH16,
|
||||||
|
MUT_ARITH16,
|
||||||
|
MUT_ARITH16BE,
|
||||||
|
MUT_ARITH16BE,
|
||||||
|
MUT_ARITH32_,
|
||||||
|
MUT_ARITH32_,
|
||||||
|
MUT_ARITH32BE_,
|
||||||
|
MUT_ARITH32BE_,
|
||||||
|
MUT_ARITH32,
|
||||||
|
MUT_ARITH32,
|
||||||
|
MUT_ARITH32BE,
|
||||||
|
MUT_ARITH32BE,
|
||||||
|
MUT_RAND8,
|
||||||
|
MUT_RAND8,
|
||||||
|
MUT_RAND8,
|
||||||
|
MUT_RAND8,
|
||||||
|
MUT_CLONE_COPY,
|
||||||
|
MUT_CLONE_COPY,
|
||||||
|
MUT_CLONE_COPY,
|
||||||
|
MUT_CLONE_FIXED,
|
||||||
|
MUT_OVERWRITE_COPY,
|
||||||
|
MUT_OVERWRITE_COPY,
|
||||||
|
MUT_OVERWRITE_COPY,
|
||||||
|
MUT_OVERWRITE_FIXED,
|
||||||
|
MUT_BYTEADD,
|
||||||
|
MUT_BYTESUB,
|
||||||
|
MUT_FLIP8,
|
||||||
|
MUT_SWITCH,
|
||||||
|
MUT_SWITCH,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_DEL,
|
||||||
|
MUT_EXTRA_OVERWRITE,
|
||||||
|
MUT_EXTRA_OVERWRITE,
|
||||||
|
MUT_EXTRA_INSERT,
|
||||||
|
MUT_EXTRA_INSERT,
|
||||||
|
MUT_AUTO_EXTRA_OVERWRITE,
|
||||||
|
MUT_AUTO_EXTRA_OVERWRITE,
|
||||||
|
MUT_AUTO_EXTRA_INSERT,
|
||||||
|
MUT_AUTO_EXTRA_INSERT,
|
||||||
|
MUT_SPLICE_OVERWRITE,
|
||||||
|
MUT_SPLICE_OVERWRITE,
|
||||||
|
MUT_SPLICE_OVERWRITE,
|
||||||
|
MUT_SPLICE_OVERWRITE,
|
||||||
|
MUT_SPLICE_INSERT,
|
||||||
|
MUT_SPLICE_INSERT,
|
||||||
|
MUT_SPLICE_INSERT,
|
||||||
|
MUT_SPLICE_INSERT};
|
||||||
|
|
||||||
u32 mutation_strategy_exploration_text[MUT_STRATEGY_ARRAY_SIZE] = {
|
u32 mutation_strategy_exploration_text[MUT_STRATEGY_ARRAY_SIZE] = {
|
||||||
|
|
||||||
MUT_FLIPBIT,
|
MUT_FLIPBIT,
|
||||||
|
@ -2076,7 +2076,7 @@ havoc_stage:
|
|||||||
where we take the input file and make random stacked tweaks. */
|
where we take the input file and make random stacked tweaks. */
|
||||||
|
|
||||||
u32 *mutation_array;
|
u32 *mutation_array;
|
||||||
u32 stack_max, stack_max_pow = afl->havoc_stack_pow2;
|
u32 stack_max; // stack_max_pow = afl->havoc_stack_pow2;
|
||||||
|
|
||||||
if (unlikely(afl->text_input || afl->queue_cur->is_ascii)) { // is text?
|
if (unlikely(afl->text_input || afl->queue_cur->is_ascii)) { // is text?
|
||||||
|
|
||||||
@ -2104,6 +2104,7 @@ havoc_stage:
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
if (temp_len < 64) {
|
if (temp_len < 64) {
|
||||||
|
|
||||||
--stack_max_pow;
|
--stack_max_pow;
|
||||||
@ -2118,7 +2119,9 @@ havoc_stage:
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stack_max = 1 << stack_max_pow;
|
*/
|
||||||
|
|
||||||
|
stack_max = 1 << (1 + rand_below(afl, afl->havoc_stack_pow2));
|
||||||
|
|
||||||
// + (afl->extras_cnt ? 2 : 0) + (afl->a_extras_cnt ? 2 : 0);
|
// + (afl->extras_cnt ? 2 : 0) + (afl->a_extras_cnt ? 2 : 0);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user