{"id":29035941,"url":"https://github.com/david-cermak/0xffffe","last_synced_at":"2025-06-26T12:36:28.939Z","repository":{"id":298575417,"uuid":"1000430395","full_name":"david-cermak/0xFFFFE","owner":"david-cermak","description":"Fuzzing Fundamentals For Firmware Engineers","archived":false,"fork":false,"pushed_at":"2025-06-19T19:25:05.000Z","size":1400,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-19T19:49:03.265Z","etag":null,"topics":["firmware","fuzzing","getting-started"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/david-cermak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-06-11T19:13:13.000Z","updated_at":"2025-06-19T19:25:08.000Z","dependencies_parsed_at":"2025-06-11T21:15:31.462Z","dependency_job_id":"4d74a4a0-9b94-473b-81f7-1f9d2d9e21be","html_url":"https://github.com/david-cermak/0xFFFFE","commit_stats":null,"previous_names":["david-cermak/0xffffe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/david-cermak/0xFFFFE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-cermak%2F0xFFFFE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-cermak%2F0xFFFFE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-cermak%2F0xFFFFE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-cermak%2F0xFFFFE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/david-cermak","download_url":"https://codeload.github.com/david-cermak/0xFFFFE/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/david-cermak%2F0xFFFFE/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262068854,"owners_count":23253879,"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":["firmware","fuzzing","getting-started"],"created_at":"2025-06-26T12:36:28.724Z","updated_at":"2025-06-26T12:36:28.922Z","avatar_url":"https://github.com/david-cermak.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 0xFFFFE -- Fuzzing Fundamentals For Firmware Engineers\n\nWelcome to **0xFFFFE**, a practical guide and starter toolkit to help embedded developers get started with **fuzzing** -- the art and science of automatically testing your code by throwing unexpected, random, or malformed input at it.\n\nWhether you're writing bare-metal code, working with RTOSes like FreeRTOS or Zephyr, or building embedded Linux systems, fuzzing can help uncover subtle bugs, vulnerabilities, or hard-to-reproduce edge cases.\n\n\u003e **0xFFFFE** = `Fuzzing Fundamentals For Firmware Folks` -- and yes, it's also a very nice address for crashing...\n\n\n## What is Fuzzing?\n\nFuzzing is a dynamic testing technique where you feed random or semi-random data into your code to see how it behaves. If your firmware crashes, asserts, leaks memory, or hangs — the fuzzer has done its job.\n\n\n## Who is this for?\n\n- Embedded developers who **care about robustness and security**\n- Firmware engineers who are **new to fuzzing**\n- Anyone who wants to **bring fuzzing into CI** for embedded systems\n- Engineers working with C, C++, or Rust-based firmware\n\n## What's Inside?\n\n### Projects\n\nFuzz targets from simple examples for demonstration to real-life application, modules or libraries.\n\n### Tools\n\nOverview of different fuzzers\n- Black-box fuzzers\n- Grey box fuzzers\n    - Coverage guided\n    - State guided, protocol fuzzers\n    - LLM enhanced\n- White box fuzzers\n\n### Methods\n\n- Host tests\n- HW in the loop\n- QEMU\n\n## Getting started\n\nFor concrete examples of specific fuzzing experiments, start with the [`examples`](examples/README.md) directory where you'll find hands-on examples and practical implementations.\n\n![BlackBox fuzzer crash](crash.gif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-cermak%2F0xffffe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavid-cermak%2F0xffffe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavid-cermak%2F0xffffe/lists"}