Skip to content
STIMSMITH

Analysis Filter

Concept

In the Mishegos differential-fuzzing framework, an analysis filter is a small, language-agnostic script that consumes cohorts of decoder results from stdin and conditionally emits them to stdout. Filters are composed into analysis passes (modeled after LLVM passes) to identify and classify discrepancies between x86_64 instruction decoders.

First seen 6/9/2026
Last seen 6/9/2026
Evidence 1 chunks
Wiki v1

WIKI

Analysis Filter

An analysis filter is a small, language-agnostic script used within the Mishegos differential-fuzzing framework to process cohorts of decoder results. Filters consume cohorts from standard input (stdin) and conditionally emit them to standard output (stdout), acting as composable building blocks in a pipeline of analysis logic.

Structure and Mechanics

READ FULL ARTICLE →

NEIGHBORHOOD

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

explore full graph →

RELATIONSHIPS

3 connections
Mishegos ← uses 90% 1e
Mishegos uses analysis filters as small scripts to process and filter cohort output.
analysis pass part of → 95% 1e
Analysis passes are composed of multiple analysis filters applied in sequence.
input minimization uses → 90% 1e
The minimize-input filter implements input minimization as part of the analysis pipeline.

CITATIONS

7 sources
7 citations — click to expand
[1] Analysis filters are small, language-agnostic scripts that take cohorts on stdin and conditionally emit them on stdout, often written in Ruby and processing newline-delimited JSON. Destroying x86_64 instruction decoders with differential fuzzing
[2] The `filter-ndecoded-different` filter emits only records where the decoders disagree on the number of bytes decoded, and reports a count of filtered records to stderr. Destroying x86_64 instruction decoders with differential fuzzing
[3] Filters are collected into passes (modeled after LLVM passes), defined in ./src/analysis/passes.yml, and can be ordered via a dependency graph or by performance requirements such as largest filters first. Destroying x86_64 instruction decoders with differential fuzzing
[4] The `same-size-different-decodings` pass is composed of `filter-any-failure`, `filter-ndecoded-different`, `filter-same-effects`, `minimize-input`, and `normalize`. Destroying x86_64 instruction decoders with differential fuzzing
[5] The `minimize-input` filter chops the instruction candidate down to the longest indicated ndecoded field, and the `normalize` filter removes extra whitespace. Destroying x86_64 instruction decoders with differential fuzzing
[6] Filter pipelines in Mishegos are used to discover decoder discrepancy classes including outright decoding failures and component discrepancies that can mislead analysis or mask the control flow graph. Destroying x86_64 instruction decoders with differential fuzzing
[7] Passes are executed via the Mishegos analysis command-line and their results can be visualized with `mishmat`, which produces an HTML table optionally capped in size. Destroying x86_64 instruction decoders with differential fuzzing