{"id":23067528,"url":"https://github.com/r3bb1t/winafl_py_dll","last_synced_at":"2025-07-24T08:08:35.882Z","repository":{"id":163105622,"uuid":"613273751","full_name":"r3bb1t/winafl_py_dll","owner":"r3bb1t","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-14T13:21:16.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-08T22:41:18.312Z","etag":null,"topics":["afl","fuzzing","security"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r3bb1t.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-13T08:54:00.000Z","updated_at":"2023-03-13T11:26:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"f2fb6e76-e505-47f4-beeb-39b4a7bfaf53","html_url":"https://github.com/r3bb1t/winafl_py_dll","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r3bb1t%2Fwinafl_py_dll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r3bb1t%2Fwinafl_py_dll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r3bb1t%2Fwinafl_py_dll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r3bb1t%2Fwinafl_py_dll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r3bb1t","download_url":"https://codeload.github.com/r3bb1t/winafl_py_dll/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246970322,"owners_count":20862509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["afl","fuzzing","security"],"created_at":"2024-12-16T05:17:23.274Z","updated_at":"2025-04-03T09:15:04.152Z","avatar_url":"https://github.com/r3bb1t.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# winafl_py_dll\nThis code provides simple integration with your python code for generating fuzzing inputs for fuzzing with WinAFL.\nIt was intended to be as simple as it can be, so the people who are not familiar with Rust could still use and adjust it to \ntheir own needs by only editing the python code.\n\n# Dependencies\n[Rust](https://www.rust-lang.org/tools/install)\n\n[Python 3.7+](https://www.python.org/downloads/)\n\n## Short introduction\nThis project, itself, is a simple [custom mutator for WinAFL](https://github.com/googleprojectzero/winafl#custom-mutators) written in Rust.\nGenerating dll is as simple as follows: \u003cpre\u003ecargo build --release\u003c/pre\u003e\n\n\n## How it works\nThe generated dll expects a python script which **must** meet two conditions: *having a function named main* and *returning the bytes (or bytearray) object*. Dll will read your python script and will feed its input right into the fuzzer.\n\n\n## Customization\nBy default, dll searches for the file named \"fuzz.py\" in the curren't user's directory and uses it to get fuzzing results from.\nYou can provide your own custom path by setting up the enviroment varible \"winafl_py_script\" and providing it the path of the python script which you would like to use.\n\nAlso, by default, function dll_mutate_testcase always returns 1 to skip the rest of mutations.\nIf you don't want this behaviour, you need to set the \"winafl_py_dont_skip_mutations\" enviroment variable with 1.\n\n**Note:** for sake of speed, customization can be performed only once, during startup.\n\n## Examples\nIn the \"examples\" directory there are some scripts, that can be used for better understanding what kind of files does this mutator expect.\n\n## Ps\nDespite this project's flexibility, it's better to write your code as shown [here](https://pyo3.rs/main/python_from_rust.html?highlight=path#include-multiple-python-files).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr3bb1t%2Fwinafl_py_dll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr3bb1t%2Fwinafl_py_dll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr3bb1t%2Fwinafl_py_dll/lists"}