From 84be9abfd9bbd4a14e11c647ba47cf45ad2d35c2 Mon Sep 17 00:00:00 2001 From: hasherezade Date: Sat, 5 Nov 2016 22:20:45 +0100 Subject: [PATCH] [REFACT] Cleaned printed types by explicit static cast --- commander/ExeCommander.cpp | 17 +++++++---- commander/ExeCommander.h | 38 +++++++++++++++++------ commander/PECommander.cpp | 34 ++++++++++++++++----- commander/PECommander.h | 48 ++++++++++++++++++++---------- parser/AbstractByteBuffer.cpp | 25 +++++++++++++--- parser/ExeElementWrapper.cpp | 6 ++-- parser/ExeNodeWrapper.cpp | 12 ++++++-- parser/Executable.cpp | 6 +++- parser/FileBuffer.cpp | 5 +++- parser/pe/DOSExe.cpp | 2 +- parser/pe/ExceptionDirWrapper.cpp | 6 +++- parser/pe/ImportBaseDirWrapper.cpp | 2 +- parser/pe/SectHdrsWrapper.cpp | 21 +++++++------ 13 files changed, 162 insertions(+), 60 deletions(-) diff --git a/commander/ExeCommander.cpp b/commander/ExeCommander.cpp index df7fa229..319dadc3 100644 --- a/commander/ExeCommander.cpp +++ b/commander/ExeCommander.cpp @@ -39,14 +39,14 @@ Executable* cmd_util::getExeFromContext(CmdContext *context) offset_t cmd_util::readOffset(Executable::addr_type aType) { - offset_t offset = 0; + unsigned long long offset = 0; if (aType == Executable::NOT_ADDR) return INVALID_ADDR; std::string prompt = addrTypeToStr(aType); printf("%s: ", prompt.c_str()); - scanf("%lx", &offset); - return offset; + scanf("%llX", &offset); + return static_cast(offset); } size_t cmd_util::readNumber(std::string prompt) @@ -109,12 +109,19 @@ void cmd_util::dumpEntryInfo(ExeElementWrapper *w) if (w == NULL) return; printf("------\n"); size_t fields = w->getFieldsCount(); - printf("\t[%s] size: %#x fieldsCount: %lu\n\n", w->getName().toStdString().c_str(), w->getSize(), fields); + printf("\t[%s] size: %#lX fieldsCount: %lu\n\n", + w->getName().toStdString().c_str(), + static_cast(w->getSize()), + static_cast(fields) + ); for (int i = 0; i < fields; i++) { offset_t offset = w->getFieldOffset(i); if (offset == INVALID_ADDR) continue; - printf("[%04lX] %s :\t", offset, w->getFieldName(i).toStdString().c_str()); + printf("[%04llX] %s :\t", + static_cast(offset), + w->getFieldName(i).toStdString().c_str() + ); QString translated = w->translateFieldContent(i); if (translated.size() > 0) { diff --git a/commander/ExeCommander.h b/commander/ExeCommander.h index 87607c90..3e10cdce 100644 --- a/commander/ExeCommander.h +++ b/commander/ExeCommander.h @@ -68,7 +68,10 @@ public: std::string inAddr = cmd_util::addrTypeToStr(addrFrom); std::string outAddr = cmd_util::addrTypeToStr(addrTo); printf("[%s]\t->\t[%s]:\n", inAddr.c_str(), outAddr.c_str()); - printf(" %lX\t->\t%lX\n", offset, outOffset); + printf(" %llX\t->\t%llX\n", + static_cast(offset), + static_cast(outOffset) + ); } protected: @@ -104,14 +107,25 @@ public: virtual void execute(CmdParams *params, CmdContext *context) { Executable *exe = cmd_util::getExeFromContext(context); - printf("Bit mode: \t%10d\n", exe->getBitMode()); + printf("Bit mode: \t%10d\n", static_cast(exe->getBitMode())); offset_t entryPoint = exe->getEntryPoint(); - printf("Entry point: \t[%10lX %c]\n", entryPoint, cmd_util::addrTypeToChar(Executable::RVA)); - printf("Raw size: \t[%10X]\n", exe->getMappedSize(Executable::RAW)); - printf("Raw align.: \t[%10X]\n", exe->getAlignment(Executable::RAW)); + printf("Entry point: \t[%10llX %c]\n", + static_cast(entryPoint), + cmd_util::addrTypeToChar(Executable::RVA) + ); + printf("Raw size: \t[%10lX]\n", + static_cast(exe->getMappedSize(Executable::RAW)) + ); + printf("Raw align.: \t[%10lX]\n", + static_cast(exe->getAlignment(Executable::RAW)) + ); - printf("Virtual size: \t[%10X]\n", exe->getMappedSize(Executable::RVA)); - printf("Virtual align.:\t[%10X]\n", exe->getAlignment(Executable::RVA)); + printf("Virtual size: \t[%10lX]\n", + static_cast(exe->getMappedSize(Executable::RVA)) + ); + printf("Virtual align.:\t[%10lX]\n", + static_cast(exe->getAlignment(Executable::RVA)) + ); MappedExe *mappedExe = cmd_util::getMappedExeFromContext(context); if (mappedExe) { printf("Contains:\n"); @@ -261,7 +275,10 @@ public: virtual void wrapperAction(ExeElementWrapper *wrapper) { bufsize_t dSize = FileBuffer::dump(fileName, *wrapper, true); - printf("Dumped size: %u into: %s\n", dSize, fileName.toStdString().c_str()); + printf("Dumped size: %lu into: %s\n", + static_cast(dSize), + fileName.toStdString().c_str() + ); } protected: QString fileName; @@ -281,7 +298,10 @@ public: Executable *exe = cmd_util::getExeFromContext(context); bufsize_t dSize = FileBuffer::dump(fileName, *exe, true); - printf("Dumped size: %u into: %s\n", dSize, fileName.toStdString().c_str()); + printf("Dumped size: %lu into: %s\n", + static_cast(dSize), + fileName.toStdString().c_str() + ); } protected: QString fileName; diff --git a/commander/PECommander.cpp b/commander/PECommander.cpp index ab95baa7..373d975c 100644 --- a/commander/PECommander.cpp +++ b/commander/PECommander.cpp @@ -26,9 +26,19 @@ void cmd_util::printSectionMapping(SectionHdrWrapper *sec, Executable::addr_type std::string typeStr = cmd_util::addrTypeToStr(aType); printf("[%s]\n",typeStr.c_str()); printf(" ------------[In Hdr]------[Mapped]\n"); - printf(" Offset: %10lX \t%10lX\n", hdrStart, start); - printf(" Size: %10X \t%10X\n", hdrSize, size); - printf(" Scope: [%10lX - %10lX], size = %X\n", start, start + size, size); + printf(" Offset: %10llX \t%10llX\n", + static_cast(hdrStart), + static_cast(start) + ); + printf(" Size: %10lX \t%10lX\n", + static_cast(hdrSize), + static_cast(size) + ); + printf(" Scope: [%10llX - %10llX], size = %lX\n", + static_cast(start), + static_cast(start + size), + static_cast(size) + ); printf(" \n"); } @@ -59,7 +69,7 @@ void cmd_util::printStrings(PEFile *pe, size_t limit) for (size_t i = 0; i < wrappersCount; i++) { ResourceStringsWrapper* wrapper = dynamic_cast(allStrings->getWrapperAt(i)); if (wrapper == NULL) { - printf("[ERR] Null wrapper!\n"); + printf("[ERROR] Null wrapper!\n"); continue; } size_t count = wrapper->getResStringsCount(); @@ -69,7 +79,11 @@ void cmd_util::printStrings(PEFile *pe, size_t limit) ResString *resStr = wrapper->getResStringAt(i); if (resStr != NULL) { - printf("[%8lx] [%d] %s\n", resStr->offset, resStr->getSize(), resStr->getQString().toStdString().c_str()); + printf("[%8llX] [%lu] %s\n", + static_cast(resStr->offset), + static_cast(resStr->getSize()), + resStr->getQString().toStdString().c_str() + ); limCount++; } } @@ -85,7 +99,10 @@ void cmd_util::dumpResourcesInfo(PEFile *pe, pe::resource_type type, size_t wrap return; } size_t wrappersCount = wrappers->count(); - printf ("Found in Resources: %lu, wrappers: %lu\n", wrappers->entriesCount(), wrappersCount); + printf ("Found in Resources: %lu, wrappers: %lu\n", + static_cast(wrappers->entriesCount()), + static_cast(wrappersCount) + ); int limCount = 0; std::vector::iterator itr; if (wrapperId >= wrappersCount) return; @@ -100,7 +117,10 @@ void cmd_util::listDataDirs(PEFile *pe) for (size_t i = 0 ; i < pe::DIR_ENTRIES_COUNT; i++) { DataDirEntryWrapper* entry = pe->getDataDirEntry(pe::dir_entry(i)); if (entry == NULL) continue; - printf("[%lu] %s\n", i, entry->getName().toStdString().c_str()); + printf("[%lu] %s\n", + static_cast(i), + entry->getName().toStdString().c_str() + ); } } diff --git a/commander/PECommander.h b/commander/PECommander.h index 49037c04..9a756ed4 100644 --- a/commander/PECommander.h +++ b/commander/PECommander.h @@ -41,23 +41,31 @@ public: SectionHdrWrapper* sec = peExe->getSecHdrAtOffset(offset, addrType, true, true); if (sec == NULL) { - printf("NOT found addr [0x%lX] in any section!\n", offset); + printf("NOT found addr [0x%lX] in any section!\n", + static_cast(offset) + ); printf("----------------------------\n"); return; } offset_t delta = offset - sec->getContentOffset(addrType); - printf("Found addr [0x%lX] in section:\n", offset); - printf("F: %8lX\n", offset); - printf("offset from the sec. bgn: %8lX\n", delta); - printf ("V: %8lX - %8lX (%lX)\n", - sec->getContentOffset(Executable::RVA), - sec->getContentEndOffset(Executable::RVA, false), - sec->getContentEndOffset(Executable::RVA, true) + printf("Found addr [0x%llX] in section:\n", + static_cast(offset) ); - printf ("R: %8lX - %8lX (%lX)\n", - sec->getContentOffset(Executable::RAW), - sec->getContentEndOffset(Executable::RAW, false), - sec->getContentEndOffset(Executable::RAW, true) + printf("F: %8llX\n", + static_cast(offset) + ); + printf("offset from the sec. bgn: %8llX\n", + static_cast(delta) + ); + printf ("V: %8llX - %8llX (%llX)\n", + static_cast(sec->getContentOffset(Executable::RVA)), + static_cast(sec->getContentEndOffset(Executable::RVA, false)), + static_cast(sec->getContentEndOffset(Executable::RVA, true)) + ); + printf ("R: %8llX - %8llX (%llX)\n", + static_cast(sec->getContentOffset(Executable::RAW)), + static_cast(sec->getContentEndOffset(Executable::RAW, false)), + static_cast(sec->getContentEndOffset(Executable::RAW, true)) ); cmd_util::dumpEntryInfo(sec); @@ -146,7 +154,9 @@ public: size_t wrapperIndx = 0; if (wrappersCount > 1) { - printf("Wrappers count: %lu\n", wrappersCount); + printf("Wrappers count: %lu\n", + static_cast(wrappersCount) + ); wrapperIndx = cmd_util::readNumber("wrapperIndex"); } cmd_util::dumpResourcesInfo(pe, type, wrapperIndx); @@ -202,12 +212,14 @@ public: size_t sectHdrCount = pe->getSectionsCount(false); size_t sectCount = pe->getSectionsCount(true); - printf("Sections count = %lu\n", sectCount); + printf("Sections count = %lu\n", + static_cast(sectCount) + ); if (sectCount == 0) { printf("No sections!\n"); return; } - printf("Available indexes: %lu-%lu\n", 0UL, sectCount - 1); + printf("Available indexes: %lu-%lu\n", 0UL, static_cast(sectCount - 1)); size_t secId = cmd_util::readNumber("Chose the section by index"); SectionHdrWrapper *sec = pe->getSecHdr(secId); @@ -226,8 +238,12 @@ public: if (saveToFile) { BufferView *secView = pe->createSectionView(secId); if (secView == NULL) return; + bufsize_t dSize = FileBuffer::dump(fileName, *secView, true); - printf("Dumped size: %u into: %s\n", dSize, fileName.toStdString().c_str()); + printf("Dumped size: %lu into: %s\n", + static_cast(dSize), + fileName.toStdString().c_str() + ); delete secView; } } diff --git a/parser/AbstractByteBuffer.cpp b/parser/AbstractByteBuffer.cpp index f00c88fc..26824b9d 100644 --- a/parser/AbstractByteBuffer.cpp +++ b/parser/AbstractByteBuffer.cpp @@ -212,7 +212,11 @@ bool AbstractByteBuffer::pasteBuffer(offset_t rawOffset, AbstractByteBuffer *buf bufsize_t mySize = this->getContentSize(); if (static_cast(mySize) <= rawOffset) { - Logger::append(Logger::ERROR, "Too far offset requested: %lX while mySize: %X", rawOffset, mySize); + Logger::append(Logger::ERROR, + "Too far offset requested: %llX while mySize: %lX", + static_cast(rawOffset), + static_cast(mySize) + ); return false; } BYTE *target = this->getContentAt(rawOffset, sizeToFill); @@ -260,11 +264,20 @@ bool AbstractByteBuffer::intersectsBlock(offset_t rawOffset, bufsize_t size) offset_t srchdEnd = rawOffset + size; if (rawOffset >= startOffset && rawOffset <= endOffset) { - Logger::append(Logger::INFO, "Found in bounds: %lx - %lx end: %lx", startOffset, endOffset, rawOffset); + Logger::append(Logger::INFO, + "Found in bounds: %llX - %llX end: %llX", + static_cast(startOffset), + static_cast(endOffset), + static_cast(rawOffset) + ); return true; } if (srchdEnd >= startOffset && srchdEnd <= endOffset) { - Logger::append(Logger::INFO, "Found in bounds: %lx - %lx end: %lx", startOffset, endOffset, endOffset); + Logger::append(Logger::INFO, + "Found in bounds: %llX - %llX", + static_cast(startOffset), + static_cast(endOffset) + ); return true; } return false; @@ -297,7 +310,11 @@ bool AbstractByteBuffer::setNumValue(offset_t offset, bufsize_t size, uint64_t n if (size == 0 || offset == INVALID_ADDR) return false; void* ptr = this->getContentAt(offset, size); if (ptr == NULL) { - Logger::append(Logger::ERROR,"Cannot get Ptr at: %lX of size: %x!", offset, size); + Logger::append(Logger::ERROR, + "Cannot get Ptr at: %llX of size: %lX!", + static_cast(offset), + static_cast(size) + ); return false; } diff --git a/parser/ExeElementWrapper.cpp b/parser/ExeElementWrapper.cpp index 2c59c4cb..f9e76557 100644 --- a/parser/ExeElementWrapper.cpp +++ b/parser/ExeElementWrapper.cpp @@ -3,7 +3,7 @@ ExeElementWrapper::ExeElementWrapper(Executable *v_exe) { if (v_exe == NULL) { - printf("Cannot initialize with Exe == NULL!"); + Logger::append(Logger::ERROR, "Cannot initialize with Exe == NULL!"); throw CustomException("Cannot initialize with Exe == NULL!"); } this->m_Exe = v_exe; @@ -22,7 +22,7 @@ bufsize_t ExeElementWrapper::getFieldSize(size_t fieldId, size_t subField) if (nextFID < fieldsCount ) nextPtr = this->getFieldPtr(nextFID, subField); if (nextPtr != NULL) { - int64_t dif = (offset_t) nextPtr - (offset_t) ptr; + int64_t dif = offset_t (nextPtr) - offset_t (ptr); if (dif < 0) return 0; return (bufsize_t) dif; @@ -31,7 +31,7 @@ bufsize_t ExeElementWrapper::getFieldSize(size_t fieldId, size_t subField) offset_t fullSize = this->getSize(); BYTE *bgnPtr = (BYTE*) getPtr(); BYTE *endPtr = bgnPtr + fullSize; - offset_t dif = (offset_t) endPtr - (offset_t) ptr; + offset_t dif = offset_t (endPtr) - offset_t (ptr); return (bufsize_t) dif; } diff --git a/parser/ExeNodeWrapper.cpp b/parser/ExeNodeWrapper.cpp index 19138ea1..d2a82194 100644 --- a/parser/ExeNodeWrapper.cpp +++ b/parser/ExeNodeWrapper.cpp @@ -58,7 +58,12 @@ bool ExeNodeWrapper::canAddEntry() bufsize_t paddedSize = entrySize * 2; bool haveSpace = this->m_Exe->isAreaEmpty(nextOffset, paddedSize); - Logger::append(Logger::INFO,"NextOffset = %lX size = %X, canAdd: %d", nextOffset, entrySize, haveSpace); + Logger::append(Logger::INFO, + "NextOffset = %llX size = %lX, canAdd: %u", + static_cast(nextOffset), + static_cast(entrySize), + static_cast(haveSpace) + ); return haveSpace; } @@ -115,7 +120,10 @@ ExeNodeWrapper* ExeNodeWrapper::addEntryAt(ExeNodeWrapper *entry, offset_t nextO } if (loadNextEntry(entryNum) == false) return NULL; reloadMapping(); - Logger::append(Logger::INFO,"Entries count: %lu", this->getEntriesCount()); + Logger::append(Logger::INFO, + "Entries count: %lu", + static_cast(this->getEntriesCount()) + ); return getLastEntry(); } diff --git a/parser/Executable.cpp b/parser/Executable.cpp index 2eb657e9..b1379e9e 100644 --- a/parser/Executable.cpp +++ b/parser/Executable.cpp @@ -86,7 +86,11 @@ offset_t Executable::toRaw(offset_t offset, addr_type aT, bool allowExceptions) if (offset == INVALID_ADDR) return INVALID_ADDR; if (this->isValidAddr(offset, aT) == false) { - Logger::append(Logger::ERROR, "Address out of bounds: offset = %lX addrType = %d", offset, aT); + Logger::append(Logger::ERROR, + "Address out of bounds: offset = %llX addrType = %u", + static_cast(offset), + static_cast(aT) + ); if (allowExceptions) throw CustomException("Address out of bounds!"); return INVALID_ADDR; } diff --git a/parser/FileBuffer.cpp b/parser/FileBuffer.cpp index 3c8eb962..97757b9d 100644 --- a/parser/FileBuffer.cpp +++ b/parser/FileBuffer.cpp @@ -72,7 +72,10 @@ ByteBuffer* AbstractFileBuffer::read(QFile &fIn, bufsize_t minBufSize) //throws if (prevOffset == fIn.pos()) break; //cannot read more! prevOffset = fIn.pos(); } - Logger::append(Logger::INFO, "Read size: %lx", readSize); + Logger::append(Logger::INFO, + "Read size: %lX", + static_cast(readSize) + ); return bufferedFile; } diff --git a/parser/pe/DOSExe.cpp b/parser/pe/DOSExe.cpp index 244198c2..886c53ca 100644 --- a/parser/pe/DOSExe.cpp +++ b/parser/pe/DOSExe.cpp @@ -50,7 +50,7 @@ void DOSExe::wrap(AbstractByteBuffer *v_buf) } if ((*magic) != S_DOS && (*magic) != S_DOS2) { - printf("It is not a DOS file!\n"); + Logger::append(Logger::WARNING, "It is not a DOS file!\n"); throw ExeException("It is not a DOS file!"); } this->wrappers[WR_DOS_HDR] = this->dosHdrWrapper; diff --git a/parser/pe/ExceptionDirWrapper.cpp b/parser/pe/ExceptionDirWrapper.cpp index 8b08acdf..9ab02fae 100644 --- a/parser/pe/ExceptionDirWrapper.cpp +++ b/parser/pe/ExceptionDirWrapper.cpp @@ -38,7 +38,11 @@ bool ExceptionDirWrapper::wrap() entry->getNumValue(ExceptionEntryWrapper::BLOCK_SIZE, &isOk) );*/ } - Logger::append(Logger::INFO, "Entries num = %lu, parsedSize = %x", entries.size(), parsedSize); + Logger::append(Logger::INFO, + "Entries num = %lu, parsedSize = %lX", + static_cast(entries.size()), + static_cast(parsedSize) + ); return true; } diff --git a/parser/pe/ImportBaseDirWrapper.cpp b/parser/pe/ImportBaseDirWrapper.cpp index e7e79ddd..64e2e2f0 100644 --- a/parser/pe/ImportBaseDirWrapper.cpp +++ b/parser/pe/ImportBaseDirWrapper.cpp @@ -172,7 +172,7 @@ QString ImportBaseFuncWrapper::getShortName() if (isByOrdinal()) { uint64_t val = getOrdinal(); static char buf[0xFF]; - snprintf(buf, 0xFF, "", val); + snprintf(buf, 0xFF, "", static_cast(val)); functionName = buf; } else { char *fName = this->getFunctionName(); diff --git a/parser/pe/SectHdrsWrapper.cpp b/parser/pe/SectHdrsWrapper.cpp index 0ddfed0c..c5f51b68 100644 --- a/parser/pe/SectHdrsWrapper.cpp +++ b/parser/pe/SectHdrsWrapper.cpp @@ -301,7 +301,7 @@ bool SectHdrsWrapper::loadNextEntry(size_t entryNum) SectionHdrWrapper *sec = new SectionHdrWrapper(this->m_PE, entryNum); if (sec == NULL) return false; if (sec->getPtr() == NULL) { - printf("deleting invalid section..\n"); + Logger::append(Logger::WARNING, "Deleting invalid section..."); delete sec; sec = NULL; return false; @@ -422,10 +422,12 @@ SectionHdrWrapper* SectHdrsWrapper::getSecHdrAtOffset(offset_t offset, Executabl SectionHdrWrapper* sec = itr->second; if (sec == NULL) continue; //TODO: check it if (verbose) { - printf("found [%lX] key: %lX sec: %lX %lX\n", - offset, itr->first, - sec->getContentOffset(addrType), - sec->getContentEndOffset(addrType, false)); + printf("found [%llX] key: %llX sec: %llX %llX\n", + static_cast(offset), + static_cast(itr->first), + static_cast(sec->getContentOffset(addrType)), + static_cast(sec->getContentEndOffset(addrType, false)) + ); } offset_t startOffset = sec->getContentOffset(addrType); @@ -457,10 +459,11 @@ void SectHdrsWrapper::printSectionsMapping(Executable::addr_type aType) SectionHdrWrapper* sec = itr->second; offset_t secEnd = itr->first; - printf("[%lX] %s %lX %lX\n", - secEnd, sec->getName().toStdString().c_str(), - sec->getContentOffset(aType), - sec->getContentEndOffset(aType, true) + printf("[%llX] %s %llX %llX\n", + static_cast(secEnd), + sec->getName().toStdString().c_str(), + static_cast(sec->getContentOffset(aType)), + static_cast(sec->getContentEndOffset(aType, true)) ); } printf("---\n\n");