9 if (!myName)
return false;
11 if (upperLimit == 0)
return false;
14 if (isInvalid)
return false;
34 if (func == NULL)
return;
63 size_t entriesCount = this->
entries.size();
65 for (
size_t i = 0; i < entriesCount; i++) {
67 if (lib == NULL)
continue;
71 for (
size_t fI = 0; fI < funcCount; fI++) {
79 std::map<offset_t, size_t>::iterator libItr =
thunkToLibMap.find(thunk);
82 size_t libId = libItr->second;
90 if (!lib)
return NULL;
92 std::map<offset_t, size_t>::iterator funcItr = lib->
thunkToFuncMap.find(thunk);
102 if (func == NULL)
return "";
126 const size_t LIMIT = (-1);
129 for (cntr = 0; cntr < LIMIT; cntr++) {
151 const size_t LIMIT = (-1);
156 if (this->
getPtr() == NULL) {
159 for (cntr = 0; cntr < LIMIT; cntr++) {
169 QString functionName;
172 static char buf[0xFF];
173 snprintf(buf, 0xFF,
"<ord: %llX>",
static_cast<unsigned long long>(val));
177 if (!fName)
return "";
178 functionName = fName;
187 if (!p)
return functionName;
190 if (!libName)
return functionName;
192 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
QString thunkToFuncName(offset_t thunk)
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)
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)