:py:mod:`dissect.executable.pe.directory.debug` =============================================== .. py:module:: dissect.executable.pe.directory.debug Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: dissect.executable.pe.directory.debug.DebugDirectory dissect.executable.pe.directory.debug.DebugEntry dissect.executable.pe.directory.debug.CodeViewDebugEntry dissect.executable.pe.directory.debug.VcFeatureDebugEntry dissect.executable.pe.directory.debug.PogoDebugEntry dissect.executable.pe.directory.debug.ReproDebugEntry .. py:class:: DebugDirectory(pe: dissect.executable.pe.pe.PE, address: int, size: int) Bases: :py:obj:`dissect.executable.pe.directory.base.DataDirectory` The debug directory of a PE file. .. py:method:: __repr__() -> str .. py:method:: __len__() -> int .. py:method:: __iter__() -> collections.abc.Iterator[DebugEntry] .. py:method:: __getitem__(idx: int) -> DebugEntry .. py:property:: entries :type: list[DebugEntry] List of debug entries in the debug directory. .. py:class:: DebugEntry(pe: dissect.executable.pe.pe.PE, entry: dissect.executable.pe.c_pe.c_pe.IMAGE_DEBUG_DIRECTORY) A single debug entry in the debug directory. .. py:attribute:: pe .. py:attribute:: entry .. py:method:: __repr__() -> str .. py:property:: timestamp :type: datetime.datetime | None The timestamp of this debug entry, or ``None`` if the PE file is compiled as reproducible. .. py:property:: type :type: dissect.executable.pe.c_pe.c_pe.IMAGE_DEBUG_TYPE The type of the debug entry. .. py:property:: size :type: int The size of the debug entry. .. py:property:: data :type: bytes The data of the debug entry. .. py:method:: open() -> BinaryIO Return a file-like object to read the debug entry data. .. py:class:: CodeViewDebugEntry(pe: dissect.executable.pe.pe.PE, entry: dissect.executable.pe.c_pe.c_pe.IMAGE_DEBUG_DIRECTORY) Bases: :py:obj:`DebugEntry` A CodeView debug entry. .. py:method:: __repr__() -> str .. py:property:: info :type: dissect.executable.pe.c_pe.c_pe.CV_INFO_PDB20 | dissect.executable.pe.c_pe.c_pe.CV_INFO_PDB70 | dissect.executable.pe.c_pe.c_pe.CV_INFO_MTOC The CodeView debug information. .. py:property:: signature :type: uuid.UUID | int | None The signature of the CodeView debug entry. .. py:property:: age :type: int | None The age of the CodeView debug entry. .. py:property:: pdb :type: str The PDB filename of the CodeView debug entry. .. py:class:: VcFeatureDebugEntry(pe: dissect.executable.pe.pe.PE, entry: dissect.executable.pe.c_pe.c_pe.IMAGE_DEBUG_DIRECTORY) Bases: :py:obj:`DebugEntry` A VC feature debug entry. .. py:method:: __repr__() -> str .. py:property:: info :type: dissect.executable.pe.c_pe.c_pe.VC_FEATURE The VC feature debug information. .. py:property:: pre_vc11 :type: int Return the count for ``Pre-VC++ 11.00``. .. py:property:: ccpp :type: int Return the count for ``C/C++``. .. py:property:: gs :type: int Return the count for ``/GS`` (number of guard stack). .. py:property:: sdl :type: int Return the count for ``/sdl`` (Security Development Lifecycle). .. py:property:: guards :type: int Return the count for ``/guardN``. .. py:class:: PogoDebugEntry(pe: dissect.executable.pe.pe.PE, entry: dissect.executable.pe.c_pe.c_pe.IMAGE_DEBUG_DIRECTORY) Bases: :py:obj:`DebugEntry` A POGO debug entry. .. py:method:: __repr__() -> str .. py:method:: __len__() -> int .. py:method:: __iter__() -> collections.abc.Iterator[tuple[int, int, str]] .. py:method:: __getitem__(idx: int) -> tuple[int, int, str] .. py:property:: entries :type: list[tuple[int, int, str]] The POGO debug entries. .. py:class:: ReproDebugEntry(pe: dissect.executable.pe.pe.PE, entry: dissect.executable.pe.c_pe.c_pe.IMAGE_DEBUG_DIRECTORY) Bases: :py:obj:`DebugEntry` A Repro debug entry. .. py:method:: __repr__() -> str .. py:property:: hash :type: bytes The hash of the Repro debug entry.