dissect.esedb#

Subpackages#

Submodules#

Package Contents#

Classes#

EseDB

EseDB class.

class dissect.esedb.EseDB(fh: BinaryIO, impacket_compat: bool = False)#

EseDB class.

Loads an ESE database from the given file handle. Optionally enable impacket compatible data output.

Impacket compatibility limits what values are parsed and returns most values as a hex string. Most notably, long and multi values are not parsed.

Parameters:
  • fh – The file-like object to open an ESE database on.

  • impacket_compat – Whether to make the output impacket compatible.

Raises:

InvalidDatabase – If the file-like object does not look like an ESE database.

has_small_pages() bool#

Return whether this database has small pages (<= 8K).

table(name: str) dissect.esedb.table.Table#

Get a table by name.

Parameters:

name – The table to retrieve.

tables() list[dissect.esedb.table.Table]#

Get a list of all tables.

read_page(num: int) bytes#

Get the physical page data.

Parameters:

num – The physical page number to retrieve.

Raises:

IndexError – If the page number is out of bounds.

page(num: int) dissect.esedb.page.Page#

Get a logical page.

The first two pages in the file are the Header and Shadow Header pages. Logical pages start at physical page 2 (zero-indexed).

Parameters:

num – The logical page number to retrieve.

pages() Iterator[dissect.esedb.page.Page]#

Iterate over all pages.

exception dissect.esedb.Error#

Bases: Exception

Common base class for all non-exit exceptions.

exception dissect.esedb.InvalidDatabase#

Bases: Error

Common base class for all non-exit exceptions.

exception dissect.esedb.KeyNotFoundError#

Bases: Error

Common base class for all non-exit exceptions.

exception dissect.esedb.NoNeighbourPageError#

Bases: Error

Common base class for all non-exit exceptions.