Skip to content

Commit

Permalink
Added HowFuzzilliWorks.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Samuel Groß committed Jun 11, 2021
1 parent 7382d5f commit 5e21667
Show file tree
Hide file tree
Showing 8 changed files with 840 additions and 2 deletions.
835 changes: 835 additions & 0 deletions Docs/HowFuzzilliWorks.md

Large diffs are not rendered by default.

Binary file added Docs/images/fuzzing_with_fuzzil.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/images/generative_engine.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/images/hybrid_engine.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/images/mutation_engine.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions README.md
Expand Up @@ -82,6 +82,8 @@ A number of mutations can then be performed on these programs:
* [OperationMutator](Sources/Fuzzilli/Mutators/OperationMutator.swift): mutates the parameters of operations, for example replacing an integer constant with a different one.
* and more...

A much more thorough discussion of how Fuzzilli works can be found [here](Docs/HowFuzzilliWorks.md).

## Implementation

The fuzzer is implemented in [Swift](https://swift.org/), with some parts (e.g. coverage measurements, socket interactions, etc.) implemented in C.
Expand Down
2 changes: 1 addition & 1 deletion Sources/Fuzzilli/FuzzIL/TypeSystem.swift
Expand Up @@ -134,7 +134,7 @@ public struct Type: Hashable {
public static let regexp = Type(definiteType: .regexp)

/// Type one can iterate over
public static let iterable = Type(definiteType: .iterable)
public static let iterable = Type(definiteType: .iterable) // TODO rename to .array?

/// A value for which the type is not known.
public static let unknown = Type(definiteType: .unknown)
Expand Down
3 changes: 2 additions & 1 deletion Sources/FuzzilliCli/main.swift
Expand Up @@ -29,7 +29,8 @@ Options:
--profile=name : Select one of several preconfigured profiles.
Available profiles: \(profiles.keys).
--jobs=n : Total number of fuzzing jobs. This will start one master thread and n-1 worker threads. Experimental!
--engine=name : The fuzzing engine to use. Available engines: "mutation" (default), "hybrid", "multi"
--engine=name : The fuzzing engine to use. Available engines: "mutation" (default), "hybrid", "multi".
Only the mutation engine should be regarded stable at this point.
--logLevel=level : The log level to use. Valid values: "verbose", info", "warning", "error", "fatal"
(default: "info").
--numIterations=n : Run for the specified number of iterations (default: unlimited).
Expand Down

0 comments on commit 5e21667

Please sign in to comment.