forked from JoDehli/PyLoxone
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fuzzing/mutational grey box #23
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Added DataTypeCreator: Necessary for creating certain data types - Extended SeedManager: Population can be created
- Extended methods for creating random int, uint, string so that random values can be created
It is now possible to track the branch coverage of a test function.
Seeds will now be selected by the energy of the seed.
It is now possible to mutate the seed values. UML is updated.
Fixed the bug, that the amount of branches that was covert was smaller than the amount of hashes were stored in the hash_dict.
- Added DataTypeCreator: Necessary for creating certain data types - Extended SeedManager: Population can be created
- Extended methods for creating random int, uint, string so that random values can be created
It is now possible to track the branch coverage of a test function.
Seeds will now be selected by the energy of the seed.
Fixed the bug, that the amount of branches that was covert was smaller than the amount of hashes were stored in the hash_dict.
- Mutate before running tests - If new path was discovered -> insert seed to seed pool -> point of interest
- Added test cases of helpers.py for greybox fuzzing - Mutation of str, int, float is now made with mutational blackbox fuzzer
- Deleted mutator and shiftet mutation method to GreyBoxRunner -> Mutator class unnecessary with one method in it - Adjusted uml diagram
Added Grey box fuzzer / runner + test functions to project. |
- Deleted unnecessary functionality
JKortmann
approved these changes
Jul 3, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added to project:
You can create a seed pool with the Greyboxfuzzer. The seed pool can be generated randomly or predefined.
The greyboxfuzzer takes the seed pool and selects one of the seeds (seeds that discover new paths have a higher probability of being selected).
Before executing the function with the seed values, one of the seed values is randomly mutated. If a new path is discovered with a mutated seed, this seed is added to the seed pool.
The energy of the seed is then adjusted depending on how often the execution path has already been seen. If the path has already been seen several times, the energy is reduced and if a new path is discovered, the energy is increased.