BearParser
Portable Executable parsing library (from PE-bear)
|
#include <ExeNodeWrapper.h>
Public Member Functions | |
ExeNodeWrapper (Executable *pe, ExeNodeWrapper *parent=NULL) | |
ExeNodeWrapper (Executable *pe, ExeNodeWrapper *parent, size_t entryNumber) | |
virtual | ~ExeNodeWrapper () |
virtual bool | wrap () |
virtual void | reloadMapping () |
virtual ExeNodeWrapper * | getEntryAt (size_t fieldId) |
virtual size_t | getEntriesCount () |
virtual size_t | getEntriesNum () |
virtual size_t | getSubFieldsCount () |
virtual ExeNodeWrapper * | getParentNode () |
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 QString | getFieldName (size_t fieldId)=0 |
virtual bool | canAddEntry () |
virtual ExeNodeWrapper * | addEntry (ExeNodeWrapper *entry) |
ExeNodeWrapper * | getLastEntry () |
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 void * | getPtr ()=0 |
virtual bufsize_t | getSize ()=0 |
virtual QString | getName ()=0 |
virtual size_t | getFieldsCount ()=0 |
virtual offset_t | getOffset () |
virtual offset_t | getOffset (void *ptr, bool allowExceptions=false) |
virtual void * | getFieldPtr (size_t fieldId, size_t subField)=0 |
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 Executable::addr_type | containsAddrType (size_t fieldId, size_t subField=FIELD_NONE) |
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) |
Executable * | getExe () |
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 | |
size_t | getEntriesCount (std::vector< ExeNodeWrapper * > &_entries) |
ExeNodeWrapper * | getEntryAt (std::vector< ExeNodeWrapper * > &_entries, size_t fieldId) |
virtual void | clear () |
virtual void | addMapping (ExeNodeWrapper *entry) |
virtual bool | loadNextEntry (size_t entryNum) |
virtual ExeNodeWrapper * | addEntryAt (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 | |
ExeNodeWrapper * | parentNode |
size_t | entryNum |
std::vector< ExeNodeWrapper * > | entries |
Protected Attributes inherited from ExeElementWrapper | |
Executable * | m_Exe |
Additional Inherited Members | |
Static Public Member Functions inherited from AbstractByteBuffer | |
static bool | isValid (AbstractByteBuffer *buf) |
Definition at line 8 of file ExeNodeWrapper.h.
ExeNodeWrapper::ExeNodeWrapper | ( | Executable * | pe, |
ExeNodeWrapper * | parent = NULL ) |
ExeNodeWrapper::ExeNodeWrapper | ( | Executable * | pe, |
ExeNodeWrapper * | parent, | ||
size_t | entryNumber ) |
|
inlinevirtual |
|
virtual |
Reimplemented in SectHdrsWrapper.
Definition at line 140 of file ExeNodeWrapper.cpp.
|
protectedvirtual |
|
inlineprotectedvirtual |
Reimplemented in ImportBaseDirWrapper, and ImportBaseEntryWrapper.
Definition at line 47 of file ExeNodeWrapper.h.
|
virtual |
Reimplemented in SectHdrsWrapper.
Definition at line 63 of file ExeNodeWrapper.cpp.
|
protectedvirtual |
Reimplemented in ExportDirWrapper, LdConfigDirWrapper, and ResourceEntryWrapper.
Definition at line 30 of file ExeNodeWrapper.cpp.
|
virtual |
Reimplemented in ImportEntryWrapper.
Definition at line 105 of file ExeNodeWrapper.cpp.
|
inlinevirtual |
|
protected |
Definition at line 25 of file ExeNodeWrapper.cpp.
|
inlinevirtual |
|
virtual |
|
protected |
Definition at line 20 of file ExeNodeWrapper.cpp.
|
inline |
Definition at line 25 of file ExeNodeWrapper.h.
|
pure virtual |
Implements ExeElementWrapper.
Implemented in BoundEntryWrapper, BoundImpDirWrapper, ClrDirWrapper, DebugDirCVEntryWrapper, DebugDirEntryWrapper, DebugDirWrapper, DelayImpEntryWrapper, DelayImpFuncWrapper, ExceptionDirWrapper, ExceptionEntryWrapper, ExportDirWrapper, ExportEntryWrapper, ImportBaseDirWrapper, ImportedFuncWrapper, ImportEntryWrapper, LdConfigDirWrapper, LdConfigEntryWrapper, RelocBlockWrapper, RelocDirWrapper, RelocEntryWrapper, ResourceContentWrapper, ResourceDirWrapper, ResourceEntryWrapper, ResourceLeafWrapper, ResourceStringsWrapper, ResourceVersionWrapper, ResString, SectHdrsWrapper, SectionHdrWrapper, SecurityDirWrapper, TlsDirWrapper, and TlsEntryWrapper.
ExeNodeWrapper * ExeNodeWrapper::getLastEntry | ( | ) |
|
virtual |
Reimplemented in ImportEntryWrapper.
Definition at line 92 of file ExeNodeWrapper.cpp.
|
inlinevirtual |
Reimplemented in PENodeWrapper.
Definition at line 24 of file ExeNodeWrapper.h.
|
virtual |
|
virtual |
|
inlinevirtual |
Reimplemented from ExeElementWrapper.
Reimplemented in BoundEntryWrapper, ClrDirWrapper, DebugDirCVEntryWrapper, DebugDirEntryWrapper, DelayImpFuncWrapper, ExceptionEntryWrapper, ExportDirWrapper, ExportEntryWrapper, ImportBaseEntryWrapper, ImportedFuncWrapper, LdConfigDirWrapper, RelocEntryWrapper, ResourceContentWrapper, ResourceDirWrapper, ResourceEntryWrapper, ResourceVersionWrapper, ResString, SectionHdrWrapper, SecurityDirWrapper, TlsDirWrapper, and TlsEntryWrapper.
Definition at line 22 of file ExeNodeWrapper.h.
|
virtual |
|
protectedvirtual |
Definition at line 80 of file ExeNodeWrapper.cpp.
|
inlinevirtual |
Reimplemented in ImportBaseDirWrapper, ImportBaseEntryWrapper, ImportBaseFuncWrapper, and RelocBlockWrapper.
Definition at line 40 of file ExeNodeWrapper.h.
|
inlineprotectedvirtual |
Reimplemented in BoundImpDirWrapper, DebugDirWrapper, DelayImpDirWrapper, DelayImpEntryWrapper, ImportDirWrapper, and ImportEntryWrapper.
Definition at line 48 of file ExeNodeWrapper.h.
|
inlinevirtual |
Reimplemented in ImportBaseDirWrapper, and SectHdrsWrapper.
Definition at line 17 of file ExeNodeWrapper.h.
|
inlinevirtual |
Reimplemented from ExeElementWrapper.
Reimplemented in BoundEntryWrapper, BoundImpDirWrapper, ClrDirWrapper, DebugDirEntryWrapper, DebugDirWrapper, ExceptionDirWrapper, ExceptionEntryWrapper, ExportDirWrapper, ImportBaseDirWrapper, ImportBaseEntryWrapper, LdConfigDirWrapper, RelocBlockWrapper, RelocDirWrapper, ResourceDirWrapper, ResourceEntryWrapper, ResourceStringsWrapper, SectHdrsWrapper, SectionHdrWrapper, SecurityDirWrapper, and TlsDirWrapper.
Definition at line 16 of file ExeNodeWrapper.h.
|
protected |
Definition at line 56 of file ExeNodeWrapper.h.
|
protected |
Definition at line 54 of file ExeNodeWrapper.h.
|
protected |
Definition at line 53 of file ExeNodeWrapper.h.