Skip to content
This repository was archived by the owner on Mar 15, 2022. It is now read-only.

Latest commit

 

History

History
28 lines (23 loc) · 1.58 KB

implementation_ja.md

File metadata and controls

28 lines (23 loc) · 1.58 KB

fuzzufにおけるAFLFastの実装

fuzzuf上でのAFLFastは、AFLの実装を再利用しつつ、AFLFastに必要な以下の部分のみをテンプレート化またはオーバーライドすることによって実現しています。

  • ApplyDetMutsTemplate<AFLFastState>::operator()
  • AbandonEntryTemplate<AFLFastState>::operator()
  • AFLFastState::AddToQueue
  • AFLFastState::UpdateBitmapScoreWithRawTrace
  • AFLFastState::SaveIfInteresting
  • AFLFastState::DoCalcScore
  • AFLFastState::ShowStats

オプションについて

AFLFastではドキュメントにあるパワースケジューラを指定することが可能であり、特に指定がない場合はFASTが使用されます。

C++から呼び出す場合

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.  */
};