diff --git a/parser/Executable.cpp b/parser/Executable.cpp index 534df52e..5d20a805 100644 --- a/parser/Executable.cpp +++ b/parser/Executable.cpp @@ -1,9 +1,14 @@ #include "Executable.h" +#include "FileBuffer.h" Executable::Executable(AbstractByteBuffer *v_buf, exe_bits v_bitMode) : buf(v_buf), bitMode(v_bitMode) { if (v_buf == NULL) throw ExeException("Cannot make Exe from NULL buffer"); + FileBuffer *fileBuf = dynamic_cast(buf); + if (fileBuf) { + this->fileName = fileBuf->getFileName(); + } } BYTE* Executable::getContentAt(offset_t offset, Executable::addr_type aType, bufsize_t size, bool allowExceptions) diff --git a/parser/Executable.h b/parser/Executable.h index 68edef54..5f05a7e9 100644 --- a/parser/Executable.h +++ b/parser/Executable.h @@ -87,10 +87,13 @@ public: return rvaToRaw(rva); } + QString getFileName() { return fileName; } + protected: Executable(AbstractByteBuffer *v_buf, exe_bits v_bitMode); exe_bits bitMode; AbstractByteBuffer *buf; + QString fileName; };