161 : peBuffer(_peBuffer), is64bit(false)
163 if (!peBuffer.
vBuf)
return;
165 this->is64bit = peconv::is64bit(peBuffer.vBuf);
168 const size_t found_pattern = pesieve::util::is_64bit_code(peBuffer.vBuf, peBuffer.vBufSize);
169 this->is64bit = (found_pattern != PATTERN_NOT_FOUND);
171 collectMainIatData();
207 IATBlock* findIATBlock(IN
const peconv::ExportsMapper* exportsMap,
size_t start_offset);
208 IATBlock* findIAT(IN
const peconv::ExportsMapper* exportsMap,
size_t start_offset);
209 void collectMainIatData();
212 bool hasDynamicIAT()
const;
214 size_t getMainIATSize()
const;
216 size_t getMaxDynamicIATSize(IN
bool isIatTerminated)
const;
218 bool findImportTable(IN
const peconv::ExportsMapper* exportsMap);
219 size_t collectIATs(IN
const peconv::ExportsMapper* exportsMap);
221 bool isDefaultImportValid(IN
const peconv::ExportsMapper* exportsMap);
223 bool findIATsCoverage(IN
const peconv::ExportsMapper* exportsMap,
t_imprec_filter filter);
227 bool appendFoundIAT(DWORD iat_offset,
IATBlock* found_block)
229 if (foundIATs.find(iat_offset) != foundIATs.end()) {
232 foundIATs[iat_offset] = found_block;
236 void deleteFoundIATs()
238 std::map<DWORD, IATBlock*>::iterator itr;
239 for (itr = foundIATs.begin(); itr != foundIATs.end(); ++itr) {
247 std::map<DWORD, IATBlock*> foundIATs;
249 std::set<DWORD> mainIatThunks;