Reverse engineering documentation for the Resilient File System (ReFS), covering versions 3.4 through 3.14 and Insider build 29574. Based on a master thesis combining static analysis of refs.sys (4 builds with full PDB symbols) with raw disk analysis of 110+ parseable ReFS disk images across 5 production versions.
Knowledge Map — the single index from any topic to its authoritative sources (master-reference section, findings, evidence). · Directory indexes: structures · concepts · attributes · examples . How this was verified — the dual-evidence methodology, evidence levels, and how to trace any claim to its provenance. · Conventions for adding pages.
New to ReFS forensics? Start with the Forensic Analysis Workflow (end-to-end runbook), the Carrier categories (how the artifacts are organised), and What Survives (delete / format / upgrade).
Architecture -- two-layer driver model and three-tier IRP dispatch
Bootstrap Chain -- how to traverse from VBR to any table
Version Evolution -- what changed across v3.4 through Insider
How this was verified -- the dual-evidence method and how to trace any claim
Page
Topic
Architecture
Refs*/Cms* two-layer model, three-tier IRP dispatch
Bootstrap Chain
GPT → VBR → SUPB → CHKP → Container Table → target
Virtual Addressing
VLCN-to-PLCN translation via Container Table
Cluster and Page Size
4 KiB vs 64 KiB clusters, page size derivation
Copy-on-Write
Fundamental update model and forensic implications
Checksum Architecture
CRC64/SHA-256 Merkle tree, page reference sizes
Resident Storage
Inline vs extent-based content storage
$STANDARD_INFORMATION
Timestamp fields and version-dependent layout
Timestomping Detection
Multi-source timestamp-tamper detection ($SI change-time + USN journal + volume bound)
Attributes
The ReFS attribute schemas — 12 on v3.4, 16 on v3.14 (18 distinct across all versions)
Version Evolution
v3.4 through Insider structural changes
Version Detection
Classifying upgrade state from CHKP flags
Deletion Recovery
Five recovery methods: Trash Table, checkpoint differential, orphan scan, stream-snapshot reconstruction, B+-tree node-slack carve
What Survives
Artifact-vs-event survival matrix (delete / format / upgrade / unmount / crash)
Carrier Categories
Carrier's five data categories applied to ReFS
Tool-to-Artifact Map
For each forensic goal, which forefst.py / refsanalysis.py invocation surfaces it
Hard Links
Multi-name files: shared FileId identity, why $SI+0x70 is a decoy
Snapshots and Versioning
$SNAPSHOT stream snapshots and prior-content recovery
Integrity Streams
Per-file opt-in block checksums (file_attrs & 0x8000)
WSL / Linux Metadata
$LXUID/$LXGID/$LXMOD/$LXDEV EAs and WSL device nodes
Artifact Timeline
Timestamp sources and super-timeline construction
Transactions / Crash Consistency
Redo-only MLog + checkpoint atomicity
Redundancy
Boot-sector, superblock, checkpoint copies
Object IDs and FileIds
The cross-table join key; OID vs per-directory ordinal
OID Allocation
Monotonic counter, gaps as deletion evidence
Space Allocation
Three-tier bitmap allocator (Medium / Container / Small)
Compression
Per-container 24H2 volume compression
Deduplication
Opt-in post-process block sharing
Tiered Storage
Fast/slow tier relocation and the heat engine
File Systems
General file system background
Windows File Systems
Windows I/O stack and driver model
Page
Structure
VBR
Volume Boot Record (sector 0)
SUPB
Superblock (LCN 0x1E)
CHKP
Checkpoint (13 root pointers)
Page
Structure
MLog
Metadata log (redo-only journaling)
USN Journal
V3 format with 128-bit file IDs
The Attributes — Forensic Reference is the entry point: the catalog of the real ReFS attributes, the NTFS attribute names that have no ReFS equivalent, the on-disk layout, and the forensically important elements.
Byte-level detail pages: $DATA · $STANDARD_INFORMATION · $OBJ_LINK · $I30_INDEX · $EA_INFORMATION / $EA · $EFS · $SNAPSHOT · $NAMED_DATA · $REPARSE_POINT · Reparse Index · $VOLUME_INFORMATION
Page
Topic
Driver Interface
Import tables, embedded libraries, subsystem growth, IRP handlers
(The two-layer driver model is in Architecture , listed under Core Concepts.)
Page
Tool
forefst.py
Unified forensic tool — timeline-ready listings, deleted/CoW recovery, and the forensic suite (USN, MLog, timeline, timestomp, extract, security, reparse, deleted, recyclebin, snapshots, dataruns, integrity, export, specials)
refsanalysis.py
Structure / lab tool — decode one on-disk structure at a time (VBR, SUPB, CHKP, object/schema/container tables, …)
Worked walkthroughs (step-by-step investigations)
Walkthrough
Goal
Decode the VBR by hand
Read every VBR field from a hexdump → version, cluster size, checksum algorithm, container size (no tool)
Find a deleted file
Run the deletion-recovery methods (Trash Table, orphan scan, OID density, CoW prior-content) on one image
Detect timestomping
Cross $SI change-time vs USN journal vs volume-creation bound to flag a tampered timestamp
Read a hard-link group
Resolve every name of one physical object via home-backref + child-ordinal + content fingerprint
Identify native vs upgraded
Classify volume state from CHKP flags (0x002 / 0x602 / 0x682) and the immutable VBR format-time fields
Page
Content
Methodology
How every claim was verified; evidence levels; tracing provenance
Glossary
Key terms and definitions
Changelog
Release history