knowledge/zero-day-hunter/SKILL.md
LLM-assisted workflow for hunting likely zero-day candidates in source code repositories. Use when asked to scan a file or repo for externally reachable vulnerabilities, prioritize suspicious files, generate per-file security context, and skeptically review candidate findings with local code search. Best suited for C and C++ projects but also useful for Go, Rust, Python, Java, JavaScript, TypeScript, PHP, and C#. Includes Python helpers for file discovery, scan orchestration, evidence gathering, and Markdown/JSON result output.
npx skillsauth add aeondave/malskill zero-day-hunterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to produce a practical shortlist of zero-day candidates in a local codebase. The goal is to help the user prioritize manual review, not to claim a vulnerability is real without verification.
Use a short external context pass before scanning when local code alone is likely to hide important assumptions behind middleware, framework glue, deployment architecture, or project-specific conventions.
Start with the smallest useful scope:
Prioritize code that parses attacker-controlled input, implements protocol handlers, deserializers, authentication logic, file format parsing, archive handling, crypto glue, or memory-unsafe interfaces.
Use Tavily-backed context enrichment before scanning when any of these are true:
Use scripts/build_external_context.py to create a small Markdown or JSON context pack from public sources. Keep only the top few relevant results and treat them as hypothesis fuel, not proof.
Use scripts/scan_zero_day.py for the first pass.
Suggested behavior:
If API credentials are missing, load them from environment variables or the workspace .env file.
Use --external-context-file when a Tavily-generated context pack is available.
Promote a finding only if the evidence shows all of the following:
Use scripts/source_grep.py to resolve constants, call paths, bounds checks, or type validation logic during review.
For each survivor, report:
Keep the output honest. "Likely", "plausible", and "needs manual verification" are features, not bugs.
Prioritize these classes first:
Deprioritize:
scripts/build_external_context.py — queries Tavily for a compact external context pack covering project purpose, likely trust boundaries, framework behavior, and public security clues.scripts/scan_zero_day.py — main scanner: discovers files, generates context, hunts candidates, optionally performs skeptical review, and writes Markdown/JSON output.scripts/source_grep.py — lightweight literal or regex code search helper for verifying constants, callers, checks, and data-flow clues.references/workflow.md — deeper workflow for target selection, triage discipline, and output interpretation.references/bug-classes.md — quick bug-class guide and false-positive filters by language and code pattern.references/context-enrichment.md — when and how to use Tavily-style external context without replacing local code review.development
Auth/lab ref: Unicorn Engine CPU-only emulation for shellcode, decryptors, custom VM handlers, instruction tracing, memory hooks, and register-level experiments.
development
Auth/lab ref: Renode board and SoC simulation for MCU/RTOS firmware, UART/GPIO/peripheral modeling, GDB remote debugging, REPL platforms, and RESC scripts.
development
Auth/lab ref: Qiling OS-layer binary emulation for PE/ELF/Mach-O/UEFI/shellcode with rootfs, syscall/API hooks, filesystem mapping, and runtime patching.
databases
Auth/lab ref: QEMU user-mode and full-system emulation for cross-arch binaries, firmware, kernels, disks, serial consoles, networking, and GDB stubs.