mirror of
https://github.com/hasherezade/bearparser
synced 2026-06-08 14:32:38 +00:00
50 lines
1.1 KiB
C++
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);
|
|
};
|
|
|