#!/usr/bin/env python3 """MFT Deleted File Recovery Agent - Parses NTFS Master File Table for deleted file artifacts.""" import json import struct import os import logging import argparse from datetime import datetime, timedelta logging.basicConfig(level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s") logger = logging.getLogger(__name__) MFT_ENTRY_SIZE = 1024 FILETIME_EPOCH = datetime(1601, 1, 1) def filetime_to_dt(ft): """Convert FILETIME to datetime.""" if ft == 0: return None try: return FILETIME_EPOCH + timedelta(microseconds=ft // 10) except (OverflowError, OSError): return None def parse_mft_entry(data, offset=0): """Parse a single MFT entry.""" if len(data) < offset + 48: return None signature = data[offset:offset + 4] if signature != b"FILE": return None flags = struct.unpack_from(" len(data): break if attr_type == 0x10: # $STANDARD_INFORMATION if attr_offset + 24 + 32 <= len(data): si_offset = attr_offset + struct.unpack_from("