import sys from dfvfs.analyzer import analyzer from dfvfs.analyzer import fvde_analyzer_helper from dfvfs.helpers import command_line from dfvfs.helpers import volume_scanner from dfvfs.lib import definitions as dfvfs_definitions from dfvfs.lib import errors from dfvfs.resolver import resolver from scripts import helpers try: # Disable experimental FVDE support. analyzer.Analyzer.DeregisterHelper( fvde_analyzer_helper.FVDEAnalyzerHelper()) except KeyError: pass class FileEntryLister(volume_scanner.VolumeScanner): """File entry lister.""" _NON_PRINTABLE_CHARACTERS = list(range(0, 0x20)) + list(range(0x7f, 0xa0)) _ESCAPE_CHARACTERS = str.maketrans({ value: '\\x{0:02x}'.format(value) for value in _NON_PRINTABLE_CHARACTERS }) def __init__(self, mediator=None): """Initializes a file entry lister.
import sys from dfvfs.analyzer import analyzer from dfvfs.analyzer import fvde_analyzer_helper from dfvfs.lib import definitions as dfvfs_definitions from dfvfs.lib import errors as dfvfs_errors from dfvfs.helpers import command_line from dfvfs.helpers import volume_scanner from dfvfs.resolver import resolver from scripts import helpers try: # Disable experimental FVDE support. analyzer.Analyzer.DeregisterHelper(fvde_analyzer_helper.FVDEAnalyzerHelper()) except KeyError: pass class RecursiveHasher(volume_scanner.VolumeScanner): """Recursively calculates message digest hashes of data streams.""" # Class constant that defines the default read buffer size. _READ_BUFFER_SIZE = 16 * 1024 * 1024 # List of tuple that contain: # tuple: full path represented as a tuple of path segments # str: data stream name _PATHS_TO_IGNORE = frozenset([ (('$BadClus', ), '$Bad')])