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

Class that represents a PE delayed import. More...

#include <DelayImport.hpp>

Inheritance diagram for LIEF::PE::DelayImport:
Collaboration diagram for LIEF::PE::DelayImport:

Public Types

using entries_t = std::vector<DelayImportEntry>
 
using it_entries = ref_iterator<entries_t&>
 
using it_const_entries = const_ref_iterator<const entries_t&>
 
- 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

 DelayImport ()=default
 
 DelayImport (const details::delay_imports &import, PE_TYPE type)
 
 DelayImport (std::string name)
 
 ~DelayImport () override=default
 
 DelayImport (const DelayImport &)=default
 
DelayImportoperator= (const DelayImport &)=default
 
 DelayImport (DelayImport &&) noexcept=default
 
DelayImportoperator= (DelayImport &&) noexcept=default
 
void swap (DelayImport &other)
 
uint32_t attribute () const
 According to the official PE specifications, this value is reserved and should be set to 0.
 
void attribute (uint32_t hdl)
 
const std::string & name () const
 Return the library's name (e.g. kernel32.dll)
 
void name (std::string name)
 
uint32_t handle () const
 The RVA of the module handle (in the .data section) It is used for storage by the routine that is supplied to manage delay-loading.
 
void handle (uint32_t hdl)
 
uint32_t iat () const
 RVA of the delay-load import address table.
 
void iat (uint32_t iat)
 
uint32_t names_table () const
 RVA of the delay-load import names table. The content of this table has the layout as the Import lookup table.
 
void names_table (uint32_t value)
 
uint32_t biat () const
 RVA of the bound delay-load import address table or 0 if the table does not exist.
 
void biat (uint32_t value)
 
uint32_t uiat () const
 RVA of the unload delay-load import address table or 0 if the table does not exist.
 
void uiat (uint32_t value)
 
uint32_t timestamp () const
 The timestamp of the DLL to which this image has been bound.
 
void timestamp (uint32_t value)
 
it_entries entries ()
 Iterator over the DelayImport's entries (DelayImportEntry)
 
it_const_entries entries () const
 Iterator over the DelayImport's entries (DelayImportEntry)
 
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 ()
 

Detailed Description

Class that represents a PE delayed import.

Member Typedef Documentation

◆ entries_t

◆ it_const_entries

◆ it_entries

Constructor & Destructor Documentation

◆ DelayImport() [1/5]

LIEF::PE::DelayImport::DelayImport ( )
default

◆ DelayImport() [2/5]

LIEF::PE::DelayImport::DelayImport ( const details::delay_imports & import,
PE_TYPE type )

◆ DelayImport() [3/5]

LIEF::PE::DelayImport::DelayImport ( std::string name)
inline

◆ ~DelayImport()

LIEF::PE::DelayImport::~DelayImport ( )
overridedefault

◆ DelayImport() [4/5]

LIEF::PE::DelayImport::DelayImport ( const DelayImport & )
default

◆ DelayImport() [5/5]

LIEF::PE::DelayImport::DelayImport ( DelayImport && )
defaultnoexcept

Member Function Documentation

◆ accept()

void LIEF::PE::DelayImport::accept ( Visitor & visitor) const
overridevirtual

Implements LIEF::Object.

◆ attribute() [1/2]

uint32_t LIEF::PE::DelayImport::attribute ( ) const
inline

According to the official PE specifications, this value is reserved and should be set to 0.

◆ attribute() [2/2]

void LIEF::PE::DelayImport::attribute ( uint32_t hdl)
inline

◆ biat() [1/2]

uint32_t LIEF::PE::DelayImport::biat ( ) const
inline

RVA of the bound delay-load import address table or 0 if the table does not exist.

◆ biat() [2/2]

void LIEF::PE::DelayImport::biat ( uint32_t value)
inline

◆ entries() [1/2]

it_entries LIEF::PE::DelayImport::entries ( )
inline

Iterator over the DelayImport's entries (DelayImportEntry)

◆ entries() [2/2]

it_const_entries LIEF::PE::DelayImport::entries ( ) const
inline

Iterator over the DelayImport's entries (DelayImportEntry)

◆ handle() [1/2]

uint32_t LIEF::PE::DelayImport::handle ( ) const
inline

The RVA of the module handle (in the .data section) It is used for storage by the routine that is supplied to manage delay-loading.

◆ handle() [2/2]

void LIEF::PE::DelayImport::handle ( uint32_t hdl)
inline

◆ iat() [1/2]

uint32_t LIEF::PE::DelayImport::iat ( ) const
inline

RVA of the delay-load import address table.

◆ iat() [2/2]

void LIEF::PE::DelayImport::iat ( uint32_t iat)
inline

◆ name() [1/2]

const std::string & LIEF::PE::DelayImport::name ( ) const
inline

Return the library's name (e.g. kernel32.dll)

◆ name() [2/2]

void LIEF::PE::DelayImport::name ( std::string name)
inline

◆ names_table() [1/2]

uint32_t LIEF::PE::DelayImport::names_table ( ) const
inline

RVA of the delay-load import names table. The content of this table has the layout as the Import lookup table.

◆ names_table() [2/2]

void LIEF::PE::DelayImport::names_table ( uint32_t value)
inline

◆ operator=() [1/2]

DelayImport & LIEF::PE::DelayImport::operator= ( const DelayImport & )
default

◆ operator=() [2/2]

DelayImport & LIEF::PE::DelayImport::operator= ( DelayImport && )
defaultnoexcept

◆ swap()

void LIEF::PE::DelayImport::swap ( DelayImport & other)

◆ timestamp() [1/2]

uint32_t LIEF::PE::DelayImport::timestamp ( ) const
inline

The timestamp of the DLL to which this image has been bound.

◆ timestamp() [2/2]

void LIEF::PE::DelayImport::timestamp ( uint32_t value)
inline

◆ uiat() [1/2]

uint32_t LIEF::PE::DelayImport::uiat ( ) const
inline

RVA of the unload delay-load import address table or 0 if the table does not exist.

According to the PE specifications, this table is an exact copy of the delay import address table that can be used to to restore the original IAT the case of unloading.

◆ uiat() [2/2]

void LIEF::PE::DelayImport::uiat ( uint32_t value)
inline

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