← Back to Help
WarpedWing Labs

Pipeline Module

The pipeline module contains all the core processing workflows for MARS. It's organized into specialized subdirectories, each handling a specific aspect of the forensic analysis pipeline.

Module Overview

raw_scanner/

Candidate scan processing for recovered/carved files

Processes files from disk images, including categorization, database variant selection, and output organization.

Key Components:

Subdirectory:


exemplar_scanner/

Exemplar scan for live/mounted macOS systems

Scans macOS systems to generate exemplar databases, schemas, and rubrics for forensic classification.

Key Components:

Use When: Creating exemplar rubrics from known-good systems or mounted disk images


matcher/

Rubric generation and schema utilities

Generates and manages rubrics (schema fingerprints) used for database classification.

Key Components:

Use When: Working with rubrics for database classification


output/

Output structure and database combination

Manages output directory structure and combines multiple database instances.

Key Components:

Use When: Combining database fragments or organizing output files


lf_processor/

Lost & Found fragment reconstruction

Reconstructs databases from SQLite lost_and_found tables created by .recover operations.

See lf_processor/README.md for detailed documentation.

Key Components:

Use When: Recovering data from corrupted SQLite databases


fingerprinter/

File type fingerprinting

Identifies file types by analyzing content structure rather than relying on extensions.

See fingerprinter/README.md for detailed documentation.

Key Components:

Use When: Classifying recovered text files by type


mount_utils/

Disk image mounting utilities

Handles mounting of E01 and other forensic disk image formats using dfVFS.

Key Components:

Use When: Working with E01 or other forensic disk images


common/

Shared pipeline utilities

Common utilities used across multiple pipeline modules.

Key Components:


comparison/

Database comparison and reporting

Compares databases and generates HTML comparison reports.

Key Components:


Processing Workflows

Exemplar Scan Flow

1. Mount/access source system
   ↓
2. exemplar_scanner/ - Discover and export databases
   ↓
3. matcher/ - Generate rubrics from exemplar schemas
   ↓
4. output/ - Organize into catalog structure

Candidate Scan Flow

1. Mount disk image or access carved files
   ↓
2. raw_scanner/ - Categorize and process files
   ↓
3. db_variant_selector/ - Select best database variants
   ↓
4. lf_processor/ - Reconstruct from lost_and_found
   ↓
5. output/ - Generate final organized output

Import Examples

# Exemplar scanning
from mars.pipeline.exemplar_scanner.exemplar_orchestrator import ExemplarScanner

# Rubric utilities
from mars.pipeline.matcher.rubric_utils import load_rubric, match_schema

# Database combination
from mars.pipeline.output.database_combiner import merge_sqlite_databases

# Text fingerprinting
from mars.pipeline.fingerprinter.text_fingerprinter import identify_log_type

See Also