vagd.virts.cogd

Classes

Cogd

Module Contents

class vagd.virts.cogd.Cogd(binary: str, containerhome: str, cogd_type: str, lockfile: str, image: str = DEFAULT_IMAGE, user: str = DEFAULT_USER, forward: Dict[str, int] | None = None, packages: List[str] | None = None, symbols: bool = True, rm: bool = True, ex: bool = False, fast: bool = False, alpine: bool = False, **kwargs: Any)

Bases: vagd.virts.shgd.Shgd

Container virtualization for pwntools
Parameters:
  • binary – binary to execute

  • containerhome – home directory of container runtime

  • lockfile – lockfile of container runtime

  • cogd_type – type of container tool

  • image – docker base image

  • user – name of user on docker container

  • forward – Dictionary of forwarded ports, needs to follow docker api format: ‘hostport/(tcp|udp)’ : guestport

  • packages – packages to install on the container

  • symbols – additionally install libc6 debug symbols (also updates libc6)

  • ex – if experimental features, e.g. alpine, gdbserver should be enabled

  • rm – remove container after exit

  • alpine – if the conainter is alpine (also autochecks image name)

  • fast – mounts libs locally for faster symbol extraction (experimental) NOT COMPATIBLE WITH ALPINE

  • kwargs – parameters to pass through to super

_image: str
_name: str
_user: str
_port: int
_packages: List[str]
_client: docker.DockerClient | podman.PodmanClient
_id: str
_containerdir: str
_dockerfile: str
_has_not_apt: bool
_rm: bool
_ex: bool
_forward: Dict[str, int]
_symbols: bool
_template: str
_containerhome: str
_lockfile: str
_type: str
VAGD_PREFIX = 'vagd-'
DEFAULT_USER = 'vagd'
DEFAULT_PORT = 2222
DEFAULT_IMAGE = 'ubuntu:noble'
DEFAULT_PACKAGES = ['gdbserver', 'python3', 'sudo', 'openssh-server']
_create_dockerfile()
_create_container_instance()
_build_image()
_vm_setup() None

pass

_vm_create()
abstractmethod _client_setup() Any