Multi-purpose extensible self-adaptive optimizer and fuzzer
Project description
Byron is a generic optimizer designed to support source code fuzzing, either in assembly or in higher-level languages. It begins by generating a set of random programs, which are then iteratively improved by an evolutionary algorithm. It can handle complex, realistic structures containing local and global variables, conditional and looping statements, and subroutines.
Candidate solutions do not need to be designed, but merely evaluated using an external tool, such as an interpreter or a simulator. Different types of parallelization are supported out of the box, from simple multithreading to the creation of temporary directories where multiple subprocesses are concurrently spawned.
⚠️ Byron is currently in alpha and under active development
Installation
As simple as
pip install --upgrade byron
A few dependencies can enhance Byron functionalities, but are not strictly required. You can get them all with
pip install --upgrade "byron[full]"
Documentation
None yet, but some HOWTO's and examples are available in the development repo.
Contacts
- Giovanni Squillero — giovanni.squillero@polito.it
- Alberto Tonda — alberto.tonda@inrae.fr
License
Copyright (c) 2023-24 Giovanni Squillero and Alberto Tonda
Byron is free and open-source software, and it is distributed under the permissive Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for byron-0.8a1.dev47-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e6691260773374f057e3ab38666e5b642bce35e00a73446c7437d6b320d252ca |
|
MD5 | 510ad8917d1349b1c5933c152562ed18 |
|
BLAKE2b-256 | df364b1233fe902517dc61deb38cf2c72ce4329fc90a0193db7e8e8ed4ac4ccf |