Source code for heimdall.os_related.linux.linux_client

import logging
from functools import cached_property
from pathlib import Path

from libvmi import Libvmi

from heimdall.heimdall_client import HeimdallClient
from heimdall.os_related.linux.processes import LinuxProcesses

logger = logging.getLogger(__name__)


[docs] class LinuxClient(HeimdallClient):
[docs] def __init__(self, vmi: Libvmi, profile: Path): """Initialize LinuxClient.""" super().__init__(vmi, profile) self._processes = LinuxProcesses(self)
@cached_property def kslide(self) -> int: """Return kernel slide value.""" return self._vmi.translate_ksym2v('init_task') - self.kernel.symbols_jar.symbols[ 'init_task'].address @property def processes(self) -> LinuxProcesses: """Return Linux processes.""" return self._processes @processes.setter def processes(self, procs: LinuxProcesses) -> None: """Set Linux processes.""" self._processes = procs