BearParser
Portable Executable parsing library (from PE-bear)
Toggle main menu visibility
Loading...
Searching...
No Matches
parser
include
bearparser
pe
FileHdrWrapper.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
PENodeWrapper.h
"
4
5
#include "pe_formats.h"
6
7
#include <map>
8
#include <vector>
9
10
class
FileHdrWrapper
:
public
PEElementWrapper
11
{
12
public
:
13
/* fields :*/
14
enum
FieldID
{
15
NONE
= -1,
16
MACHINE
= 0,
17
SEC_NUM
,
18
TIMESTAMP
,
19
SYMBOL_PTR
,
20
SYMBOL_NUM
,
21
OPTHDR_SIZE
,
22
CHARACT
,
23
FIELD_COUNTER
24
};
25
26
static
std::map<DWORD, QString>
s_fHdrCharact
;
27
static
std::map<DWORD, QString>
s_machine
;
28
29
static
void
initCharact
();
30
static
std::vector<DWORD>
splitCharact
(DWORD characteristics);
31
static
QString
translateCharacteristics
(DWORD charact);
32
33
static
void
initMachine
();
34
static
QString
translateMachine
(DWORD val);
35
36
FileHdrWrapper
(
PEFile
*pe) :
PEElementWrapper
(pe), hdr(NULL) {}
37
bool
wrap
() { hdr = NULL;
getPtr
();
return
true
; }
38
39
/* full structure boundaries */
40
virtual
void
*
getPtr
();
41
virtual
bufsize_t
getSize
() {
return
sizeof
(IMAGE_FILE_HEADER); }
42
virtual
QString
getName
() {
return
"File Hdr"
; }
43
virtual
size_t
getFieldsCount
() {
return
FIELD_COUNTER
; }
44
45
/* specific field boundaries */
46
virtual
void
*
getFieldPtr
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
);
47
virtual
QString
getFieldName
(
size_t
fieldId);
48
virtual
Executable::addr_type
containsAddrType
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
);
49
50
virtual
QString
translateFieldContent
(
size_t
fieldId);
51
private
:
52
IMAGE_FILE_HEADER* hdr;
53
};
54
bufsize_t
size_t bufsize_t
Definition
AbstractByteBuffer.h:17
FIELD_NONE
#define FIELD_NONE
Definition
ExeElementWrapper.h:9
PENodeWrapper.h
Executable::addr_type
addr_type
Definition
Executable.h:42
FileHdrWrapper::translateMachine
static QString translateMachine(DWORD val)
Definition
FileHdrWrapper.cpp:120
FileHdrWrapper::FieldID
FieldID
Definition
FileHdrWrapper.h:14
FileHdrWrapper::SYMBOL_NUM
@ SYMBOL_NUM
Definition
FileHdrWrapper.h:20
FileHdrWrapper::MACHINE
@ MACHINE
Definition
FileHdrWrapper.h:16
FileHdrWrapper::OPTHDR_SIZE
@ OPTHDR_SIZE
Definition
FileHdrWrapper.h:21
FileHdrWrapper::SYMBOL_PTR
@ SYMBOL_PTR
Definition
FileHdrWrapper.h:19
FileHdrWrapper::FIELD_COUNTER
@ FIELD_COUNTER
Definition
FileHdrWrapper.h:23
FileHdrWrapper::SEC_NUM
@ SEC_NUM
Definition
FileHdrWrapper.h:17
FileHdrWrapper::TIMESTAMP
@ TIMESTAMP
Definition
FileHdrWrapper.h:18
FileHdrWrapper::NONE
@ NONE
Definition
FileHdrWrapper.h:15
FileHdrWrapper::CHARACT
@ CHARACT
Definition
FileHdrWrapper.h:22
FileHdrWrapper::wrap
bool wrap()
Definition
FileHdrWrapper.h:37
FileHdrWrapper::translateFieldContent
virtual QString translateFieldContent(size_t fieldId)
Definition
FileHdrWrapper.cpp:187
FileHdrWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition
FileHdrWrapper.cpp:144
FileHdrWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition
FileHdrWrapper.cpp:182
FileHdrWrapper::splitCharact
static std::vector< DWORD > splitCharact(DWORD characteristics)
Definition
FileHdrWrapper.cpp:47
FileHdrWrapper::getSize
virtual bufsize_t getSize()
Definition
FileHdrWrapper.h:41
FileHdrWrapper::getPtr
virtual void * getPtr()
Definition
FileHdrWrapper.cpp:129
FileHdrWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition
FileHdrWrapper.cpp:162
FileHdrWrapper::getFieldsCount
virtual size_t getFieldsCount()
Definition
FileHdrWrapper.h:43
FileHdrWrapper::initCharact
static void initCharact()
Definition
FileHdrWrapper.cpp:25
FileHdrWrapper::s_fHdrCharact
static std::map< DWORD, QString > s_fHdrCharact
Definition
FileHdrWrapper.h:26
FileHdrWrapper::getName
virtual QString getName()
Definition
FileHdrWrapper.h:42
FileHdrWrapper::s_machine
static std::map< DWORD, QString > s_machine
Definition
FileHdrWrapper.h:27
FileHdrWrapper::FileHdrWrapper
FileHdrWrapper(PEFile *pe)
Definition
FileHdrWrapper.h:36
FileHdrWrapper::initMachine
static void initMachine()
Definition
FileHdrWrapper.cpp:69
FileHdrWrapper::translateCharacteristics
static QString translateCharacteristics(DWORD charact)
Definition
FileHdrWrapper.cpp:60
PEElementWrapper::PEElementWrapper
PEElementWrapper(PEFile *pe)
Definition
PENodeWrapper.cpp:4
PEElementWrapper::PEFile
friend class PEFile
Definition
PENodeWrapper.h:19
Generated by
1.17.0