You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Frelatage is a coverage-based Python fuzzing library which can be used to fuzz python code. The development of Frelatage was inspired by various other fuzzers, including [AFL](https://github.com/google/AFL)/[AFL++](https://github.com/AFLplusplus/AFLplusplus), [Atheris](https://github.com/google/atheris) and [PyFuzzer](https://github.com/eerimoq/pyfuzzer).The main purpose of the project is to take advantage of the best features of these fuzzers and gather them together into a new tool in order to efficiently fuzz python applications.
31
32
@@ -100,6 +101,10 @@ graph TB
100
101
#### File fuzzing
101
102
Frelatage allows to fuzz a function by passing a file as input.
102
103
104
+
#### Fuzzer efficiency
105
+
- Corpus
106
+
- Dictionnary
107
+
103
108
## Use Frelatage
104
109
105
110
#### Fuzz a classical parameter
@@ -112,18 +117,17 @@ def MyFunctionFuzz(data):
112
117
my_vulnerable_library.parse(data)
113
118
114
119
input= frelatage.Input(value="initial_value")
115
-
f = frelatage.Fuzzer(MyFunctionFuzz, [input])
120
+
f = frelatage.Fuzzer(MyFunctionFuzz, [[input]])
116
121
f.fuzz()
117
122
```
118
123
119
124
#### Fuzz a file parameter
120
125
121
-
Frelatage gives you the possibility to fuzz file type input parameters. To initialize the value of these files, you must create as many files in the input folder as there are arguments of type file. These files must be named as follows: the first file argument must be named ```0```, the second ```1```, and so on.
122
-
126
+
Frelatage gives you the possibility to fuzz file type input parameters. To initialize the value of these files, you must create files in the input folder (```./in``` by default).
123
127
124
-
In case we have only one input file, we can initialize it like this:
128
+
If we want to initialize the value of a file used to fuzz, we can do it like this:
You can copy one or more dictionaries located [here](https://github.com/Rog3rSm1th/Frelatage/tree/main/dictionaries) in the directory dedicated to dictionaries (`./dict` by default).
146
150
151
+
#### Examples
152
+
153
+
You can find more examples of fuzzers and corpus in the [examples directory](https://github.com/Rog3rSm1th/Frelatage/tree/main/examples).
147
154
148
155
## Reports
149
156
@@ -181,6 +188,7 @@ There are two ways to set up Frelatage:
181
188
| FRELATAGE_INPUT_MAX_LEN | Maximum size of an input variable in bytes |```4``` - ```1000000```|```4094```|
182
189
| FRELATAGE_MAX_THREADS | Maximum number of simultaneous threads |```8``` - ```50```|```8```|
183
190
| FRELATAGE_DICTIONARY_DIR | Default directory for dictionaries. It needs to be a relative path (to the path of the fuzzing file) | relative path to a folder, e.g. ```./dict```|```./dict```|
191
+
| FRELATAGE_MAX_CYCLES_WITHOUT_NEW_PATHS | Number of cycles without new paths found after which we go to the next stage |```10``` - ```50000```|```5000```|
0 commit comments