9 if (!myName)
return false;
11 if (upperLimit == 0)
return false;
14 if (isInvalid)
return false;
33 if (func == NULL)
return;
62 size_t entriesCount = this->
entries.size();
64 for (
size_t i = 0; i < entriesCount; i++) {
66 if (lib == NULL)
continue;
70 for (
size_t fI = 0; fI < funcCount; fI++) {
78 std::map<offset_t, size_t>::iterator libItr =
thunkToLibMap.find(thunk);
81 size_t libId = libItr->second;
89 if (!lib)
return NULL;
91 std::map<offset_t, size_t>::iterator funcItr = lib->
thunkToFuncMap.find(thunk);
101 if (func == NULL)
return "";
127 const size_t LIMIT = (-1);
128 const size_t INVALID_LIMIT = 100;
130 size_t invalidSeries = 0;
131 for (cntr = 0; cntr < LIMIT; cntr++) {
140 if (invalidSeries >= INVALID_LIMIT)
break;
162 const size_t LIMIT = (-1);
163 const size_t INVALID_LIMIT = 100;
168 if (this->
getPtr() == NULL) {
173 size_t invalidSeries = 0;
175 for (cntr = 0; cntr < LIMIT; cntr++) {
184 if (invalidSeries >= INVALID_LIMIT)
break;
194 QString functionName;
198#if QT_VERSION >= 0x050000
199 out = QString::asprintf(
"<ord: %llX>",
static_cast<unsigned long long>(val));
201 out.sprintf(
"<ord: %llX>",
static_cast<unsigned long long>(val));
206 if (!fName)
return "";
207 functionName = fName;
216 if (!p)
return functionName;
219 if (!libName)
return functionName;
221 functionName =
"[" + QString(libName) +
"]." + functionName;
const offset_t INVALID_ADDR
bufsize_t getMaxSizeFromPtr(BYTE *ptr)
IMAGE_DATA_DIRECTORY * getDataDirectory()
virtual void * getPtr()=0
virtual QString getName()=0
virtual ExeNodeWrapper * getEntryAt(size_t fieldId)
std::vector< ExeNodeWrapper * > entries
virtual bool loadNextEntry(size_t entryNum)
virtual size_t getEntriesCount()
static bufsize_t thunkSize(Executable::exe_bits bits)
ImportBaseEntryWrapper * thunkToLib(offset_t thunk)
QList< offset_t > thunksList
std::map< offset_t, size_t > thunkToLibMap
virtual void reloadMapping()
virtual void clearMapping()
QString thunkToLibName(offset_t thunk)
ImportBaseFuncWrapper * thunkToFunction(offset_t thunk)
void addMapping(ExeNodeWrapper *func)
QString thunkToFuncName(offset_t thunk, bool shortName=true)
static bufsize_t NameLenLimit
virtual char * getLibraryName()=0
std::map< offset_t, size_t > thunkToFuncMap
virtual QString getName()
virtual uint64_t getOrdinal()=0
virtual char * getFunctionName()=0
virtual offset_t callVia()=0
virtual bool isByOrdinal()=0
virtual PENodeWrapper * getParentNode()
bool isNameValid(Executable *pe, char *myName)
bool hasNonPrintable(const char *ptr, size_t maxInp)
size_t noWhiteCount(char *buf, size_t bufSize)