dissect.target.loaders.remote#

Module Contents#

Classes#

RemoteStream

Basic buffered stream that provides easy aligned reads.

RemoteStreamConnection

RemoteLoader

Load a remote target that runs a compatible Dissect agent.

Attributes#

log

dissect.target.loaders.remote.log#
class dissect.target.loaders.remote.RemoteStream(stream: RemoteStreamConnection, disk_id: int, size: int | None = None)#

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.

class dissect.target.loaders.remote.RemoteStreamConnection(hostname: str, port: int, **kwargs)#
MAX_RECONNECTS = 30#
MAX_SHORT_READS = 10#
RECONNECT_WAIT = 10#
SOCKET_TIMEOUT = 30#
COMMAND_INFO = 1#
COMMAND_QUIT = 2#
COMMAND_READ = 50#
CONFIG_KEY#
CONFIG_CRT#
static configure(key, crt)#
is_connected() bool#
connect() None#
read(disk_id: int, offset: int, length: int) bytes#
close() None#
info() list[RemoteStream]#
class dissect.target.loaders.remote.RemoteLoader(path: pathlib.Path | str, **kwargs)#

Bases: dissect.target.loader.Loader

Load a remote target that runs a compatible Dissect agent.

map(target: dissect.target.target.Target) None#

Maps the loaded path into a Target.

Parameters:

target – The target that we’re mapping into.

static detect(path: pathlib.Path) bool#

Detects wether this Loader class can load this specific path.

Parameters:

path – The target path to check.

Returns:

True if the path can be loaded by a Loader instance. False otherwise.