Module Contents



EseDB class.

class dissect.esedb.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.

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

  • impacket_compat – Whether to make the output impacket compatible.


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.


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.


num – The physical page number to retrieve.


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).


num – The logical page number to retrieve.

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

Iterate over all pages.