Skip to main content

Parameters

Parameters is an object type to specify detailed checker behavior. It has many parameters. But, few parameters are useful to users, and the others are not needed to be set manually.

You can look at the whole type definition here (TypeScript) or here (Scala).

accelerationMode

  • Type: 'auto' | 'on' | 'off' (TypeScript), AccelerationMode (Scala)
  • Default: 'auto' (TypeScript), AccelerationMode.Auto (Scala)

The type of acceleration mode strategy on fuzzing.

There are three acceleration mode strategies.

  • auto uses acceleration mode as default. However, if the regular expression has backreferences, it turns off the acceleration mode.
  • on turns on the acceleration mode.
  • off turns off the acceleration mode.

attackLimit

  • Type: number (TypeScript), Int (Scala)
  • Default: 1500000000

The upper limit on the number of characters read by VM on the attack.

attackTimeout

  • Type: number | null (TypeScript), Duration (Scala)
  • Default: 1000 (TypeScript), Duration(1, SECONDS) (Scala)

The upper limit of matching time on the attack.

checker

  • Type: 'auto' | 'fuzz' | 'automaton' (TypeScript), Checker (Scala)
  • Default: 'auto' (TypeScript), Checker.Auto (Scala)

The type of checker to be used.

There are three checker types.

  • auto checker uses the criteria to decide which algorithm is better to use against a regular expression, the algorithm based on automata theory or the fuzzing algorithm.
  • fuzz checker uses the fuzzing algorithm with static analysis.
  • automaton checker uses the algorithm based on automata theory.

crossoverSize

  • Type: number (TypeScript), Int (Scala)
  • Default: 25

The number of crossover on each generation.

heatRatio

  • Type: number (TypeScript), Double (Scala)
  • Default: 0.001

The ratio of the number of characters read to the maximum number to be considered as a hot spot.

incubationLimit

  • Type: number (TypeScript), Int (Scala)
  • Default: 25000

The upper limit on the number of characters read by VM on incubation.

incubationTimeout

  • Type: number | null (TypeScript), Duration (Scala)
  • Default: 250 (TypeScript), Duration(250, MILLISECONDS) (Scala)

The upper limit of matching time on incubation.

logger

  • Type: (message: string) => void (TypeScript), Option[Context.Logger] (Scala)
  • Default: null (TypeScript), None (Scala)

The logger function to record execution traces.

To disable the logging, null in TypeScript or None in Scala should be passed.

maxAttackStringSize

  • Type: number (TypeScript), Int (Scala)
  • Default: 300000

The maximum length of the attack string on fuzzing.

maxDegree

  • Type: number (TypeScript), Int (Scala)
  • Default: 4

The maximum degree to be considered in fuzzing.

maxGeneStringSize

  • Type: number (TypeScript), Int (Scala)
  • Default: 2400

The maximum length of the gene string on fuzzing.

maxGenerationSize

  • Type: number (TypeScript), Int (Scala)
  • Default: 100

The maximum size of each generation on fuzzing.

maxInitialGenerationSize

  • Type: number (TypeScript), Int (Scala)
  • Default: 500

The maximum size of the initial generation on fuzzing.

maxIteration

  • Type: number (TypeScript), Int (Scala)
  • Default: 10

The maximum number of fuzzing iteration.

maxNFASize

  • Type: number (TypeScript), Int (Scala)
  • Default: 35000

The maximum size of NFA to determine which algorithm is used.

maxPatternSize

  • Type: number (TypeScript), Int (Scala)
  • Default: 1500

The maximum size of the regular expression pattern to determine which algorithm is used.

maxRecallStringSize

  • Type: number (TypeScript), Int (Scala)
  • Default: 300000

The maximum length of the attack string on recall validation.

maxRepeatCount

  • Type: number (TypeScript), Int (Scala)
  • Default: 30

The maximum number of sum of repetition quantifier’s repeat counts to determine which algorithm is used.

maxSimpleRepeatCount

  • Type: number (TypeScript), Int (Scala)
  • Default: 30

The maximum number of each repetition quantifier’s repeat count on static seeding.

mutationSize

  • Type: number (TypeScript), Int (Scala)
  • Default: 50

The number of mutation on each generation.

randomSeed

  • Type: number (TypeScript), Long (Scala)
  • Default: 0

The PRNG seed number.

recallLimit

  • Type: number (TypeScript), Int (Scala)
  • Default: 1500000000

The upper limit on the number of characters read by VM on the recall validation.

recallTimeout

  • Type: number | null (TypeScript), Duration (Scala)
  • Default: -1000 (TypeScript), Duration(-1, SECONDS) (Scala)

The upper limit of matching time on the recall validation.

If this value is negative, then the recall validation is skipped.

seeder

  • Type: 'static' | 'dynamic' (TypeScript), Seeder (Scala)
  • Default: 'static' (TypeScript), Seeder.Static (Scala)

The type of seeder to be used in fuzzing.

There are two seeders.

  • static seeder uses the seeding algorithm based on the automata theory.
  • dynamic seeder uses the seeding algorithm with dynamic analysis.

seedingLimit

  • Type: number (TypeScript), Int (Scala)
  • Default: 1000

The upper limit on the number of characters read by VM on dynamic seeding.

seedingTimeout

  • Type: number | null (TypeScript), Duration (Scala)
  • Default: 100 (TypeScript), Duration(100, MILLISECONDS) (Scala)

The upper limit of matching time on dynamic seeding.

timeout

  • Type: number | null (TypeScript), Duration (Scala)
  • Default: 10000 (TypeScript), Duration(10, SECONDS) (Scala)

The upper limit of checking time.

If the checking time exceeds this limit, the result will be reported as timeout. If the value is positive infinite in Scala or null in TypeScript, the result never becomes timeout.

The timeout time begins to be measured as soon as the check starts. Note that the timeout does not occur while the input is in the queue waiting to be checked.

In TypeScript, a number value is treated as in milliseconds.