BearParser
Portable Executable parsing library (from PE-bear)
Loading...
Searching...
No Matches
ExportDirWrapper Class Reference

#include <ExportDirWrapper.h>

Collaboration diagram for ExportDirWrapper:

Public Types

enum  ExportDirFID {
  NONE = FIELD_NONE , CHARACTERISTIC , TIMESTAMP , MAJOR_VER ,
  MINOR_VER , NAME_RVA , BASE , FUNCTIONS_NUM ,
  NAMES_NUM , FUNCTIONS_RVA , FUNC_NAMES_RVA , NAMES_ORDINALS_RVA ,
  FIELD_COUNTER
}

Public Member Functions

 ExportDirWrapper (PEFile *pe)
bool wrap ()
virtual void * getPtr ()
virtual bufsize_t getSize ()
virtual QString getName ()
virtual size_t getFieldsCount ()
virtual size_t getSubFieldsCount ()
virtual void * getFieldPtr (size_t fieldId, size_t subField)
virtual QString getFieldName (size_t fieldId)
virtual QString getLibraryName ()
virtual Executable::addr_type containsAddrType (size_t fieldId, size_t subField=FIELD_NONE)
Public Member Functions inherited from DataDirEntryWrapper
IMAGE_DATA_DIRECTORY * getDataDirectory ()
offset_t getDirEntryAddress ()
bufsize_t getDirEntrySize (bool trimToExeSize=false)
int getDirEntryType ()
Public Member Functions inherited from PENodeWrapper
 PENodeWrapper (PEFile *pe, PENodeWrapper *parent=NULL)
 PENodeWrapper (PEFile *pe, PENodeWrapper *parent, size_t entryNumber)
virtual ~PENodeWrapper ()
PEFilegetPE ()
virtual PENodeWrappergetParentNode ()
Public Member Functions inherited from ExeNodeWrapper
 ExeNodeWrapper (Executable *pe, ExeNodeWrapper *parent=NULL)
 ExeNodeWrapper (Executable *pe, ExeNodeWrapper *parent, size_t entryNumber)
virtual ~ExeNodeWrapper ()
virtual void reloadMapping ()
virtual ExeNodeWrappergetEntryAt (size_t fieldId)
virtual size_t getEntriesCount ()
virtual size_t getEntriesNum ()
size_t getEntryId ()
virtual void * getSubfieldPtr (size_t fieldId, size_t subField)
virtual bufsize_t getSubfieldSize (size_t fieldId, size_t subField)
virtual QString getSubfieldName (size_t fieldId, size_t subField)
virtual bool canAddEntry ()
virtual ExeNodeWrapperaddEntry (ExeNodeWrapper *entry)
ExeNodeWrappergetLastEntry ()
virtual offset_t getNextEntryOffset ()
virtual bufsize_t geEntrySize ()
virtual bool isValid ()
Public Member Functions inherited from ExeElementWrapper
 ExeElementWrapper (Executable *exe)
virtual ~ExeElementWrapper ()
virtual bufsize_t getContentSize ()
virtual BYTE * getContent ()
virtual offset_t getOffset ()
virtual offset_t getOffset (void *ptr, bool allowExceptions=false)
void * getFieldPtr (size_t fieldId)
virtual bufsize_t getFieldSize (size_t fieldId, size_t subField=FIELD_NONE)
virtual offset_t getFieldOffset (size_t fieldId, size_t subField=FIELD_NONE)
virtual QString translateFieldContent (size_t fieldId)
virtual bool hasSubfieldWrapper (size_t parentType)
virtual WrappedValue getWrappedValue (size_t fieldId, size_t subField)
virtual WrappedValue getWrappedValue (size_t fieldId)
virtual WrappedValue::data_type containsDataType (size_t fieldId, size_t subField=FIELD_NONE)
virtual uint64_t getNumValue (size_t fieldId, size_t subField, bool *isOk)
uint64_t getNumValue (size_t fieldId, bool *isOk)
virtual bool setNumValue (size_t fieldId, size_t subField, uint64_t val)
bool setNumValue (size_t fieldId, uint64_t val)
ExecutablegetExe ()
bool isBit64 ()
bool isBit32 ()
Public Member Functions inherited from AbstractByteBuffer
 AbstractByteBuffer ()
virtual ~AbstractByteBuffer ()
virtual bool isTruncated ()
virtual bool isResized ()
BYTE operator[] (size_t idx)
virtual BYTE * getContentAt (offset_t offset, bufsize_t size, bool allowExceptions=false)
virtual BYTE * getContentAtPtr (BYTE *ptr, bufsize_t size, bool allowExceptions=false)
virtual bool setBufferedValue (BYTE *dstPtr, BYTE *srcPtr, bufsize_t srcSize, bufsize_t paddingSize, bool allowExceptions=false)
bool setStringValue (offset_t rawOffset, QString newText)
QString getStringValue (offset_t rawOffset, bufsize_t len=BUFSIZE_MAX, bool acceptNonTerminated=false)
QString getWStringValue (offset_t rawOffset, bufsize_t len)
QString getWAsciiStringValue (offset_t rawOffset, bufsize_t len, bool acceptNonTerminated=false)
bufsize_t getMaxSizeFromOffset (offset_t startOffset)
bufsize_t getMaxSizeFromPtr (BYTE *ptr)
bool isAreaEmpty (offset_t rawOffset, bufsize_t size)
bool fillContent (BYTE filling)
bool pasteBuffer (offset_t rawOffset, AbstractByteBuffer *buf, bool allowTrunc)
bool containsBlock (offset_t rawOffset, bufsize_t size)
bool intersectsBlock (offset_t rawOffset, bufsize_t size)
uint64_t getNumValue (offset_t offset, bufsize_t size, bool *isOk)
bool setNumValue (offset_t offset, bufsize_t size, uint64_t newVal)
bool setTextValue (char *textPtr, std::string newText, size_t fieldLimitLen=0)
virtual bool resize (bufsize_t newSize)
offset_t substFragmentByFile (offset_t offset, bufsize_t contentSize, QFile &fIn)

Protected Member Functions

char * _getLibraryName ()
void clear ()
size_t mapNames ()
IMAGE_EXPORT_DIRECTORY * exportDir ()
Protected Member Functions inherited from DataDirEntryWrapper
 DataDirEntryWrapper (PEFile *pe, pe::dir_entry v_entryType)
Protected Member Functions inherited from ExeNodeWrapper
size_t getEntriesCount (std::vector< ExeNodeWrapper * > &_entries)
ExeNodeWrappergetEntryAt (std::vector< ExeNodeWrapper * > &_entries, size_t fieldId)
virtual void addMapping (ExeNodeWrapper *entry)
virtual bool loadNextEntry (size_t entryNum)
virtual ExeNodeWrapperaddEntryAt (ExeNodeWrapper *entry, offset_t nextOffset)
virtual bool isMyEntryType (ExeNodeWrapper *entry)
Protected Member Functions inherited from ExeElementWrapper
virtual bool canCopyToOffset (offset_t rawOffset)
bool copyToOffset (offset_t rawOffset)

Protected Attributes

std::map< WORD, DWORD > ordToNameId
Protected Attributes inherited from DataDirEntryWrapper
int entryType
Protected Attributes inherited from PENodeWrapper
PEFilem_PE
PENodeWrapperpeParentNode
Protected Attributes inherited from ExeNodeWrapper
ExeNodeWrapperparentNode
size_t entryNum
std::vector< ExeNodeWrapper * > entries
Protected Attributes inherited from ExeElementWrapper
Executablem_Exe

Friends

class ExportEntryWrapper

Additional Inherited Members

Static Public Member Functions inherited from AbstractByteBuffer
static bool isValid (AbstractByteBuffer *buf)

Detailed Description

Definition at line 5 of file ExportDirWrapper.h.

Member Enumeration Documentation

◆ ExportDirFID

Enumerator
NONE 
CHARACTERISTIC 
TIMESTAMP 
MAJOR_VER 
MINOR_VER 
NAME_RVA 
BASE 
FUNCTIONS_NUM 
NAMES_NUM 
FUNCTIONS_RVA 
FUNC_NAMES_RVA 
NAMES_ORDINALS_RVA 
FIELD_COUNTER 

Definition at line 9 of file ExportDirWrapper.h.

Constructor & Destructor Documentation

◆ ExportDirWrapper()

ExportDirWrapper::ExportDirWrapper ( PEFile * pe)
inline

Definition at line 25 of file ExportDirWrapper.h.

Here is the call graph for this function:

Member Function Documentation

◆ _getLibraryName()

char * ExportDirWrapper::_getLibraryName ( )
protected

Definition at line 157 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ clear()

void ExportDirWrapper::clear ( )
protectedvirtual

Reimplemented from ExeNodeWrapper.

Definition at line 32 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ containsAddrType()

Executable::addr_type ExportDirWrapper::containsAddrType ( size_t fieldId,
size_t subField = FIELD_NONE )
virtual

Reimplemented from ExeElementWrapper.

Definition at line 145 of file ExportDirWrapper.cpp.

◆ exportDir()

IMAGE_EXPORT_DIRECTORY * ExportDirWrapper::exportDir ( )
protected

Definition at line 23 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ getFieldName()

QString ExportDirWrapper::getFieldName ( size_t fieldId)
virtual

Implements ExeNodeWrapper.

Definition at line 121 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ getFieldPtr()

void * ExportDirWrapper::getFieldPtr ( size_t fieldId,
size_t subField )
virtual

Implements ExeElementWrapper.

Definition at line 100 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ getFieldsCount()

virtual size_t ExportDirWrapper::getFieldsCount ( )
inlinevirtual

Implements ExeElementWrapper.

Definition at line 33 of file ExportDirWrapper.h.

◆ getLibraryName()

QString ExportDirWrapper::getLibraryName ( )
virtual

Definition at line 172 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ getName()

QString ExportDirWrapper::getName ( )
virtual

Implements ExeElementWrapper.

Definition at line 90 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ getPtr()

virtual void * ExportDirWrapper::getPtr ( )
inlinevirtual

Implements ExeElementWrapper.

Definition at line 30 of file ExportDirWrapper.h.

Here is the call graph for this function:

◆ getSize()

bufsize_t ExportDirWrapper::getSize ( )
virtual

Implements ExeElementWrapper.

Definition at line 84 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ getSubFieldsCount()

virtual size_t ExportDirWrapper::getSubFieldsCount ( )
inlinevirtual

Reimplemented from ExeNodeWrapper.

Definition at line 34 of file ExportDirWrapper.h.

◆ mapNames()

size_t ExportDirWrapper::mapNames ( )
protected

Definition at line 38 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ wrap()

bool ExportDirWrapper::wrap ( )
virtual

Reimplemented from ExeNodeWrapper.

Definition at line 62 of file ExportDirWrapper.cpp.

Here is the call graph for this function:

◆ ExportEntryWrapper

friend class ExportEntryWrapper
friend

Definition at line 50 of file ExportDirWrapper.h.

Member Data Documentation

◆ ordToNameId

std::map<WORD, DWORD> ExportDirWrapper::ordToNameId
protected

Definition at line 48 of file ExportDirWrapper.h.


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