Skip to content
STIMSMITH

SNAP

Tool
First seen 7/5/2026
Last seen 7/5/2026
Evidence 18 chunks

NEIGHBORHOOD

No graph connections found for this entity yet. It may appear in future ingestion runs.

explore full graph →

RELATIONSHIPS

32 connections
Hardware Primitives implements → 100% 3e
SNAP implements hardware primitives including BUQ, LBQ, and trace decision logic inside the CPU core.
Trace Decision Logic uses → 100% 3e
SNAP uses trace decision logic at the Fetch Stage to identify and tag instructions for tracing.
Coverage-guided Fuzzing implements → 100% 2e
SNAP enhances coverage-guided fuzzing by providing hardware-level support for coverage tracing.
Coverage Tracing implements → 100% 2e
SNAP provides coverage tracing directly from the processor pipeline without instrumentation.
CPU Pipeline uses → 100% 2e
SNAP leverages the existing CPU pipeline to provide coverage tracing with near-zero cost.
microarchitectural state uses → 100% 2e
SNAP leverages micro-architectural states such as branch predictions to provide richer execution semantics.
Branch Prediction uses → 100% 2e
SNAP uses branch prediction results from the LBQ to approximate data flow information.
Control and Status Registers uses → 100% 2e
SNAP introduces new CSRs as configuration interfaces between hardware and OS for fuzzing control.
Memory Request Aggregation uses → 100% 2e
SNAP adopts memory request aggregation as a micro-architectural optimization to reduce bitmap update overhead.
Opportunistic Bitmap Update uses → 100% 2e
SNAP adopts opportunistic bitmap update to maximize utilization of free cache bandwidth.
Edge Encoding uses → 100% 2e
SNAP uses a novel edge encoding algorithm (Algorithm 2) that leverages instruction bytes for better entropy.
Control Flow Tracing uses → 100% 2e
SNAP provides control flow tracing by monitoring branch instructions in the processor pipeline.
Data Flow Analysis uses → 90% 2e
SNAP approximates data flow analysis using branch prediction results without instrumentation overhead.
Dynamic Binary Instrumentation ← compares with 100% 2e
SNAP achieves 228x higher throughput compared to DBI-based fuzzing approaches.
Hardware-Assisted Fuzzing implements → 100% 2e
SNAP implements hardware-assisted fuzzing by providing hardware primitives for coverage tracing without instrumentation.
QEMU ← compares with 100% 2e
SNAP achieves 228x higher fuzzing throughput compared to DBI schemes like QEMU mode.
Source Code Instrumentation ← compares with 100% 2e
SNAP is compared against AFL source code instrumentation and shown to have much lower tracing overhead.
AFL uses → 100% 2e
SNAP provides a clean interface for AFL-based fuzzers to adopt its hardware tracing.
The paper evaluates SNAP's performance and precision benefits for fuzzing.
The paper proposes SNAP, a customized hardware platform implementing hardware primitives for coverage-guided fuzzing.
Bitmap Update Queue uses → 100% 2e
SNAP uses the Bitmap Update Queue as one of its core hardware units for managing coverage bitmap updates.
Last Branch Queue uses → 100% 2e
SNAP uses the Last Branch Queue to collect information about last-executed branches for contextual feedback.
Coverage Bitmap uses → 100% 2e
SNAP generates and updates a coverage bitmap to track code coverage during fuzzing.
Edge Coverage uses → 95% 2e
SNAP tracks edge coverage as its primary coverage metric, extending it with richer semantics.
Basic Block uses → 95% 2e
SNAP uses basic block IDs for edge encoding, leveraging instruction bytes for entropy.
RISC-V BOOM uses → 100% 2e
SNAP is prototyped on top of the RISC-V BOOM core.
Intel Processor Trace ← compares with 90% 2e
SNAP is compared to Intel PT as an alternative hardware tracing approach for fuzzing.
speculative execution uses → 85% 1e
SNAP's BUQ allows the load part of bitmap updates to proceed speculatively, leveraging out-of-order/speculative execution.
Binutils evaluates → 100% 1e
SNAP is used to fuzz Binutils v2.28 with AFL assistance for evaluation.
out-of-order execution uses → 90% 1e
SNAP is designed and implemented based on the out-of-order BOOM core.
PHMon ← compares with 95% 1e
SNAP is compared to PHMon as a hardware-based tracing approach, claiming significant performance improvements.
FPGA uses → 100% 1e
SNAP uses a real hardware FPGA platform for evaluation.