File Carving Techniques

File carving is the process of extracting data from a disk drive or large file when the filesystem metadata (the index) is missing or damaged.

How Carving Works

Instead of looking at the File Allocation Table or MFT, carving tools (like Foremost or Scalpel) scan the raw binary data byte-by-byte looking for known magic numbers (headers).

When a header is found (e.g., FF D8 FF E0 for a JPEG), the carver begins extracting data until it finds the corresponding footer signature (FF D9 for a JPEG), or until it reaches a maximum predefined size.

Challenges

  • Fragmentation: If a file is not stored contiguously on disk, carving will only recover the first fragment, resulting in a corrupted file.
  • False Positives: Finding a sequence of bytes that matches a header purely by chance.

Practice identifying headers in raw data using our Hex Viewer.

Common Mistakes

MistakeConsequenceBetter Approach
FileReader.readAsArrayBufferBrowser Crash (OOM)Use File.slice for chunks
Rendering full DOMBrowser freezeVirtualized list rendering

FAQ

What is the max file size?

By using slicing and streams, we can handle files limited only by your OS filesystem (e.g., 2TB on NTFS), not your RAM.

Internal References