Files
2019-12-01 00:43:54 +01:00

50 lines
1.1 KiB
C++

#pragma once
#include "../ExeElementWrapper.h"
#include "../Executable.h"
#include "pe_formats.h"
class DosHdrWrapper : public ExeElementWrapper
{
public:
/* fields :*/
enum DosFieldId {
NONE = FIELD_NONE,
MAGIC = 0,
CBLP,
CP,
CRLC,
CPARHDR,
MINALLOC,
MAXALLOC,
SS,
SP,
CSUM,
IP,
CS,
LFARLC,
OVNO,
RES,
OEMID,
OEMINFO,
RES2,
LFNEW,
FIELD_COUNTER
};
DosHdrWrapper(Executable *dosExe) : ExeElementWrapper(dosExe) { }
/* full structure boundaries */
virtual void* getPtr() { return m_Exe->getContent(); }
virtual bufsize_t getSize() { return sizeof(IMAGE_DOS_HEADER); }
virtual QString getName() { return "DOS Hdr"; }
virtual size_t getFieldsCount() { return FIELD_COUNTER; }
/* specific field boundaries */
virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
virtual QString getFieldName(size_t fieldId);
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
};