Files
hasherezade-bearparser/parser/include/bearparser/pe/DebugDirWrapper.h
T
2019-12-01 00:43:54 +01:00

48 lines
1.1 KiB
C++

#pragma once
#include "DataDirEntryWrapper.h"
class DebugDirWrapper : public DataDirEntryWrapper
{
public:
enum DebugDirFID {
NONE = FIELD_NONE,
CHARACTERISTIC,
TIMESTAMP,
MAJOR_VER,
MINOR_VER,
TYPE,
DATA_SIZE,
RAW_DATA_ADDR,
RAW_DATA_PTR,
FIELD_COUNTER
};
DebugDirWrapper(PEFile *pe)
: DataDirEntryWrapper(pe, pe::DIR_DEBUG) { wrap(); }
~DebugDirWrapper() { clear(); }
bool wrap();
virtual void* getPtr();
virtual bufsize_t getSize();
virtual QString getName();
virtual size_t getFieldsCount() { return FIELD_COUNTER; }
virtual size_t getSubFieldsCount() { return 1; }
virtual void* getFieldPtr(size_t fieldId, size_t subField);
virtual QString getFieldName(size_t fieldId);
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
QString translateType(int type);
QString translateFieldContent(size_t fieldId);
private:
IMAGE_DEBUG_DIRECTORY* debugDir();
void clear() {}
};