fuzzuf上でのAFLFastは、AFLの実装を再利用しつつ、AFLFastに必要な以下の部分のみをテンプレート化またはオーバーライドすることによって実現しています。
ApplyDetMutsTemplate<AFLFastState>::operator()
AbandonEntryTemplate<AFLFastState>::operator()
AFLFastState::AddToQueue
AFLFastState::UpdateBitmapScoreWithRawTrace
AFLFastState::SaveIfInteresting
AFLFastState::DoCalcScore
AFLFastState::ShowStats
AFLFastではドキュメントにあるパワースケジューラを指定することが可能であり、特に指定がない場合はFAST
が使用されます。
AFLFastSetting::AFLFastSetting
インスタンスを生成する際に、schedule
引数に指定してください。enum Schedule
の定義はinclude/fuzzuf/algorithms/aflfast/aflfast_option.hppにあります。
enum Schedule {
/* 00 */ FAST, /* Exponential schedule */
/* 01 */ COE, /* Cut-Off Exponential schedule */
/* 02 */ EXPLORE, /* Exploration-based constant sch. */
/* 03 */ LIN, /* Linear schedule */
/* 04 */ QUAD, /* Quadratic schedule */
/* 05 */ EXPLOIT /* AFL's exploitation-based const. */
};