LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::PE::ExDllCharacteristics Class Reference

This class represents the IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS debug entry. More...

#include <ExDllCharacteristics.hpp>

Inheritance diagram for LIEF::PE::ExDllCharacteristics:
Collaboration diagram for LIEF::PE::ExDllCharacteristics:

Public Types

enum class  CHARACTERISTICS : uint32_t {
  CET_COMPAT = 0x01 , CET_COMPAT_STRICT_MODE = 0x02 , CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE = 0x04 , CET_DYNAMIC_APIS_ALLOW_IN_PROC = 0x08 ,
  CET_RESERVED_1 = 0x10 , CET_RESERVED_2 = 0x20 , FORWARD_CFI_COMPAT = 0x40 , HOTPATCH_COMPATIBLE = 0x80
}
 Extended DLL Characteristics. More...
 
- Public Types inherited from LIEF::PE::Debug
enum class  TYPES {
  UNKNOWN = 0 , COFF = 1 , CODEVIEW = 2 , FPO = 3 ,
  MISC = 4 , EXCEPTION = 5 , FIXUP = 6 , OMAP_TO_SRC = 7 ,
  OMAP_FROM_SRC = 8 , BORLAND = 9 , RESERVED10 = 10 , CLSID = 11 ,
  VC_FEATURE = 12 , POGO = 13 , ILTCG = 14 , MPX = 15 ,
  REPRO = 16 , PDBCHECKSUM = 19 , EX_DLLCHARACTERISTICS = 20
}
 The entry types. More...
 
- Public Types inherited from LIEF::Object
template<class T >
using output_t = add_pointer_t<decay_t<T>>
 
template<class T >
using output_const_t = add_pointer_t<add_const_t<decay_t<T>>>
 

Public Member Functions

 ExDllCharacteristics (const details::pe_debug &debug, Section *sec, uint32_t characteristics)
 
 ExDllCharacteristics (const ExDllCharacteristics &other)=default
 
ExDllCharacteristicsoperator= (const ExDllCharacteristics &other)=default
 
 ExDllCharacteristics (ExDllCharacteristics &&)=default
 
ExDllCharacteristicsoperator= (ExDllCharacteristics &&other)=default
 
std::unique_ptr< Debugclone () const override
 
CHARACTERISTICS characteristics () const
 Return the characteristics.
 
std::vector< CHARACTERISTICScharacteristics_list () const
 Characteristics as a vector.
 
bool has (CHARACTERISTICS c) const
 Check if the given CHARACTERISTICS is used.
 
 ~ExDllCharacteristics () override=default
 
std::string to_string () const override
 
- Public Member Functions inherited from LIEF::PE::Debug
 Debug ()=default
 
 Debug (TYPES type)
 
 Debug (const details::pe_debug &debug_s, Section *section)
 
 Debug (const Debug &other)=default
 
Debugoperator= (const Debug &other)=default
 
 Debug (Debug &&)=default
 
Debugoperator= (Debug &&)=default
 
 ~Debug () override=default
 
uint32_t characteristics () const
 Reserved should be 0.
 
uint32_t timestamp () const
 The time and date when the debug data was created.
 
uint16_t major_version () const
 The major version number of the debug data format.
 
uint16_t minor_version () const
 The minor version number of the debug data format.
 
TYPES type () const
 The format DEBUG_TYPES of the debugging information.
 
uint32_t sizeof_data () const
 Size of the debug data.
 
uint32_t addressof_rawdata () const
 Address of the debug data relative to the image base.
 
uint32_t pointerto_rawdata () const
 File offset of the debug data.
 
const Sectionsection () const
 The section where debug data is located.
 
Sectionsection ()
 
span< uint8_t > payload ()
 Debug data associated with this entry.
 
span< const uint8_t > payload () const
 
void characteristics (uint32_t characteristics)
 
void timestamp (uint32_t timestamp)
 
void major_version (uint16_t major_version)
 
void minor_version (uint16_t minor_version)
 
void sizeof_data (uint32_t sizeof_data)
 
void addressof_rawdata (uint32_t addressof_rawdata)
 
void pointerto_rawdata (uint32_t pointerto_rawdata)
 
template<class T >
const Tas () const
 
template<class T >
Tas ()
 
void accept (Visitor &visitor) const override
 
- Public Member Functions inherited from LIEF::Object
 Object ()
 
 Object (const Object &other)
 
Objectoperator= (const Object &other)
 
template<class T >
output_t< T > as ()
 
template<class T >
output_const_t< T > as () const
 
virtual bool operator== (const Object &other) const
 
virtual bool operator!= (const Object &other) const
 
virtual ~Object ()
 

Static Public Member Functions

static std::unique_ptr< ExDllCharacteristicsparse (const details::pe_debug &hdr, Section *section, span< uint8_t > payload)
 
static bool classof (const Debug *debug)
 
- Static Public Member Functions inherited from LIEF::PE::Debug
static span< uint8_t > get_payload (Section &section, uint32_t rva, uint32_t offset, uint32_t size)
 
static span< uint8_t > get_payload (Section &section, const details::pe_debug &hdr)
 
static span< uint8_t > get_payload (Section &section, const Debug &dbg)
 

Detailed Description

This class represents the IMAGE_DEBUG_TYPE_EX_DLLCHARACTERISTICS debug entry.

Member Enumeration Documentation

◆ CHARACTERISTICS

Extended DLL Characteristics.

Enumerator
CET_COMPAT 
CET_COMPAT_STRICT_MODE 
CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE 
CET_DYNAMIC_APIS_ALLOW_IN_PROC 
CET_RESERVED_1 
CET_RESERVED_2 
FORWARD_CFI_COMPAT 
HOTPATCH_COMPATIBLE 

Constructor & Destructor Documentation

◆ ExDllCharacteristics() [1/3]

LIEF::PE::ExDllCharacteristics::ExDllCharacteristics ( const details::pe_debug & debug,
Section * sec,
uint32_t characteristics )
inline

◆ ExDllCharacteristics() [2/3]

LIEF::PE::ExDllCharacteristics::ExDllCharacteristics ( const ExDllCharacteristics & other)
default

◆ ExDllCharacteristics() [3/3]

LIEF::PE::ExDllCharacteristics::ExDllCharacteristics ( ExDllCharacteristics && )
default

◆ ~ExDllCharacteristics()

LIEF::PE::ExDllCharacteristics::~ExDllCharacteristics ( )
overridedefault

Member Function Documentation

◆ characteristics()

CHARACTERISTICS LIEF::PE::ExDllCharacteristics::characteristics ( ) const
inline

Return the characteristics.

◆ characteristics_list()

std::vector< CHARACTERISTICS > LIEF::PE::ExDllCharacteristics::characteristics_list ( ) const

Characteristics as a vector.

◆ classof()

static bool LIEF::PE::ExDllCharacteristics::classof ( const Debug * debug)
inlinestatic

◆ clone()

std::unique_ptr< Debug > LIEF::PE::ExDllCharacteristics::clone ( ) const
inlineoverridevirtual

Reimplemented from LIEF::PE::Debug.

◆ has()

bool LIEF::PE::ExDllCharacteristics::has ( CHARACTERISTICS c) const
inline

Check if the given CHARACTERISTICS is used.

◆ operator=() [1/2]

ExDllCharacteristics & LIEF::PE::ExDllCharacteristics::operator= ( const ExDllCharacteristics & other)
default

◆ operator=() [2/2]

ExDllCharacteristics & LIEF::PE::ExDllCharacteristics::operator= ( ExDllCharacteristics && other)
default

◆ parse()

static std::unique_ptr< ExDllCharacteristics > LIEF::PE::ExDllCharacteristics::parse ( const details::pe_debug & hdr,
Section * section,
span< uint8_t > payload )
static

◆ to_string()

std::string LIEF::PE::ExDllCharacteristics::to_string ( ) const
overridevirtual

Reimplemented from LIEF::PE::Debug.


The documentation for this class was generated from the following file: