This project is a fuzzing framework that interacts with a target device via serial communication and GDB for debugging. It generates inputs, sends them to the target, monitors responses, and sets breakpoints based on definitions and uses parsed from a file.
main.py: Entry point of the application.fuzzing/: Core fuzzing logic.communication/: Handles serial and GDB communications.utils/: Utility functions.config/: Configuration settings.logs/: Directory to store log files.
-
Clone the Repository
git clone https://github.com/yourusername/your_project.git cd your_project -
Create a Virtual Environment
python3 -m venv venv source venv/bin/activate -
Install Dependencies
pip install -r requirements.txt
-
Configuration
Modify the settings in
config/settings.pyas per your environment and requirements. -
Prepare Directories
Ensure that the
output/andseeds/directories exist. Place your seed files in theseeds/directory. -
Run the Application
python main.py
The application will:
- Initialize the fuzzing corpus from seed files.
- Connect to GDB and set breakpoints based on definitions and uses.
- Generate and send test cases to the target device via serial communication.
- Monitor responses and adjust fuzzing strategies accordingly.
Logs are stored in the logs/ directory. You can adjust the logging level in config/settings.py.
Contributions are welcome! Please open an issue or submit a pull request.