diff --git a/parser/include/bearparser/pe/SectHdrsWrapper.h b/parser/include/bearparser/pe/SectHdrsWrapper.h index 54f7fcd8..cb437262 100644 --- a/parser/include/bearparser/pe/SectHdrsWrapper.h +++ b/parser/include/bearparser/pe/SectHdrsWrapper.h @@ -6,7 +6,9 @@ class SectionHdrWrapper : public PENodeWrapper { public: - + + static const size_t SECNAME_LEN; + /* fields :*/ enum SecFieldId { NAME = 0, @@ -66,38 +68,8 @@ public: DWORD getNumberOfLinenumbers() { return header ? header->NumberOfLinenumbers : 0; } //modifications: - bool setCharacteristics(DWORD newCharacteristics) - { - if (!header) return false; - //TODO: validate newCharacteristics - header->Characteristics = newCharacteristics; - return true; - } - - bool setPointerToRelocations(DWORD newPointerToRelocations) - { - if (!header) return false; - - header->PointerToRelocations = newPointerToRelocations; - return true; - } - - bool setNumberOfRelocations(DWORD newNumberOfRelocations) - { - if (!header) return false; - - header->NumberOfRelocations = newNumberOfRelocations; - return true; - } - - bool setNumberOfLinenumbers(DWORD newNumberOfLinenumbers) - { - if (!header) return false; - - header->NumberOfLinenumbers = newNumberOfLinenumbers; - return true; - } + bool reloadName(); QString mappedName; @@ -114,8 +86,6 @@ protected: bufsize_t getMappedRawSize(); bufsize_t getMappedVirtualSize(); - bool reloadName(); - char *name; size_t sectNum; @@ -155,7 +125,7 @@ public: size_t getSecIndex(SectionHdrWrapper* sec) const { - if (!entries.size()) return SECT_INVALID_INDEX; + if (!sec || !entries.size()) return SECT_INVALID_INDEX; size_t indx = 0; for (auto itr = entries.begin(); itr != entries.end(); ++itr, ++indx) { if (sec == *itr) { diff --git a/parser/pe/PEFile.cpp b/parser/pe/PEFile.cpp index 112dd835..1b331e05 100644 --- a/parser/pe/PEFile.cpp +++ b/parser/pe/PEFile.cpp @@ -303,7 +303,7 @@ bool PEFile::setHdrSectionsNum(size_t newNum) bool PEFile::setVirtualSize(bufsize_t newSize) { uint64_t size = newSize; - bool canSet = optHdr->setNumValue(OptHdrWrapper::IMAGE_SIZE, 0, size); + bool canSet = optHdr->setNumValue(OptHdrWrapper::IMAGE_SIZE, size); if (canSet == false) { Logger::append(Logger::D_ERROR, "Can not change OptHdr!"); return false; @@ -624,7 +624,7 @@ size_t PEFile::getExportsMap(QMap &entrypoints, Executable::ad const size_t entriesCnt = exports->getEntriesCount(); if (entriesCnt == 0) return 0; - for(int i = 0; i < entriesCnt; i++) { + for (int i = 0; i < entriesCnt; i++) { ExportEntryWrapper* entry = dynamic_cast(exports->getEntryAt(i)); if (!entry) continue; diff --git a/parser/pe/SectHdrsWrapper.cpp b/parser/pe/SectHdrsWrapper.cpp index 9005942e..3148828f 100644 --- a/parser/pe/SectHdrsWrapper.cpp +++ b/parser/pe/SectHdrsWrapper.cpp @@ -3,7 +3,8 @@ using namespace buf_util; -const size_t SECNAME_LEN = 8; +const size_t SectionHdrWrapper::SECNAME_LEN = 8; + size_t SectHdrsWrapper::SECT_COUNT_MAX = 0x2000; size_t SectHdrsWrapper::SECT_INVALID_INDEX = SIZE_MAX;