dissect.ole.ole#

Module Contents#

Classes#

OLE

DirectoryEntry

Chain

MiniChain

ChainStream

Basic buffered stream that provides easy aligned reads.

class dissect.ole.ole.OLE(fh)#
dirlist#
get(name)#
listdir()#
directory(sid)#
fat(sect)#
minifat(sect)#
chain(sect, size=None)#
minichain(sect, size=None)#
class dissect.ole.ole.DirectoryEntry(ole, sid)#
property child#
property left_sibling#
property right_sibling#
property has_child#
property has_left_sibling#
property has_right_sibling#
property is_minifat#
property is_red#
property is_black#
property is_valid#
property is_stream#
property is_storage#
__repr__()#

Return repr(self).

open()#
walk()#
class dissect.ole.ole.Chain(ole, sect, size=None)#
__len__()#
__iter__()#
__getitem__(i)#
open()#
fill()#
class dissect.ole.ole.MiniChain(ole, sect, size=None)#

Bases: Chain

open()#
class dissect.ole.ole.ChainStream(stream, chain, sector_size, offset=0)#

Bases: dissect.util.stream.AlignedStream

Basic buffered stream that provides easy aligned reads.

Must be subclassed for various stream implementations. Subclasses can implement:
  • _read(offset, length)

  • _seek(pos, whence=io.SEEK_SET)

The offset and length for _read are guaranteed to be aligned. The only time that overriding _seek would make sense is if there’s no known size of your stream, but still want to provide SEEK_END functionality.

Most subclasses of AlignedStream take one or more file-like objects as source. Operations on these subclasses, like reading, will modify the source file-like object as a side effect.

Parameters:
  • size – The size of the stream. This is used in read and seek operations. None if unknown.

  • align – The alignment size. Read operations are aligned on this boundary. Also determines buffer size.