37 if (!
imp || !
imp->getPtr()) {
44 if (!
isOk || offset == 0) {
66 return sizeof(pe::IMAGE_DELAY_LOAD);
109 const size_t DL_SIZE =
sizeof(pe::IMAGE_DELAY_LOAD);
120 if (!content)
return NULL;
122 return (pe::IMAGE_DELAY_LOAD*) content;
128 return sizeof(pe::IMAGE_DELAY_LOAD);
134 if (!name)
return "";
148 if (!ptr)
return NULL;
155 pe::IMAGE_DELAY_LOAD*
dLd = (pe::IMAGE_DELAY_LOAD*) this->
getPtr();
160 case NAME :
return &
dLd->szName;
161 case MOD :
return &
dLd->phmod;
162 case IAT :
return &
dLd->pIAT;
163 case INT :
return &
dLd->pINT;
174 case ATTRS :
return "Attributes";
175 case NAME :
return "Name Addr.";
176 case MOD :
return "ModuleHandle";
177 case IAT :
return "IAT";
178 case INT :
return "ImportNameTable";
244 return (
char*) &ptr->Name;
252 if (ptr ==
NULL)
return 0;
259 if (this->parentDir ==
NULL)
return NULL;
279 offset += (this->
entryNum * ptrLen());
292 offset += (this->
entryNum * ptrLen());
311 if (!
m_Exe)
return 0;
315 return sizeof (
DWORD);
INT_TYPE _getNumValue(void *ptr)
const offset_t INVALID_ADDR
offset_t getDirEntryAddress()
pe::IMAGE_DELAY_LOAD * firstDelayLd()
virtual bool loadNextEntry(size_t cntr)
virtual bufsize_t getSize()
friend class DelayImpEntryWrapper
virtual void * getFieldPtr(size_t fieldId, size_t subField)
virtual QString getFieldName(size_t fieldId)
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
virtual char * getLibraryName()
virtual bufsize_t getSize()
virtual IMAGE_IMPORT_BY_NAME * getFirstImpByNamePtr()
bool loadNextEntry(size_t entryNum)
friend class DelayImpFuncWrapper
virtual QString getName()
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField)
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
virtual uint64_t getOrdinal()
virtual QString getFieldName(size_t fieldId)
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
virtual offset_t getOffset()
virtual uint64_t getNumValue(size_t fieldId, size_t subField, bool *isOk)
std::vector< ExeNodeWrapper * > entries
ExeNodeWrapper * parentNode
virtual size_t getEntriesCount()
virtual exe_bits getBitMode()
BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
Executable::addr_type detectAddrType(offset_t addr, Executable::addr_type hintType)
static bool isBit32(Executable *exe)
void addMapping(ExeNodeWrapper *func)
ImportBaseDirWrapper * impDir