27 if (ptr == NULL)
return NULL;
28 return (IMAGE_BOUND_IMPORT_DESCRIPTOR*) ptr;
34 if (!imp || !imp->
getPtr()) {
41 if (!isOk || offset == 0) {
62 for (cntr = 0; cntr < LIMIT; cntr++) {
72 if (
getPtr() == NULL)
return 0;
82 if (!parent)
return NULL;
84 IMAGE_BOUND_IMPORT_DESCRIPTOR* firstEntry = parent->
boundImp();
85 if (firstEntry == NULL)
return NULL;
87 uint64_t descAddr = parent->
getOffset(firstEntry);
90 uint64_t entryOffset = descAddr + (this->
entryNum *
sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
94 if (!content)
return NULL;
102 if (
getPtr() == NULL)
return 0;
103 return sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR);
109 if (!name)
return "";
110 return QString(name);
117 if (!parent)
return NULL;
119 IMAGE_BOUND_IMPORT_DESCRIPTOR* firstEntry = parent->
boundImp();
120 if (firstEntry == NULL)
return NULL;
122 uint64_t offset = this->
getOffset(firstEntry);
125 IMAGE_BOUND_IMPORT_DESCRIPTOR* bImp = (IMAGE_BOUND_IMPORT_DESCRIPTOR*) this->
getPtr();
126 if (bImp == NULL)
return NULL;
128 WORD mnOff = bImp->OffsetModuleName;
139 if (!parent)
return NULL;
141 IMAGE_BOUND_IMPORT_DESCRIPTOR* bImp = (IMAGE_BOUND_IMPORT_DESCRIPTOR*) this->
getPtr();
142 if (bImp == NULL)
return NULL;
145 case TIMESTAMP :
return &bImp->TimeDateStamp;
const offset_t INVALID_ADDR
virtual void * getFieldPtr(size_t fieldId, size_t subField)
virtual char * getLibraryName()
virtual bufsize_t getSize()
virtual QString getFieldName(size_t fieldId)
virtual QString getName()
bool loadNextEntry(size_t entryNum)
static size_t EntriesLimit
IMAGE_BOUND_IMPORT_DESCRIPTOR * boundImp()
friend class BoundEntryWrapper
virtual bufsize_t getSize()
offset_t getDirEntryAddress()
IMAGE_DATA_DIRECTORY * getDataDirectory()
virtual uint64_t getNumValue(size_t fieldId, size_t subField, bool *isOk)
std::vector< ExeNodeWrapper * > entries
virtual ExeNodeWrapper * getParentNode()
BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)