BearParser
Portable Executable parsing library (from PE-bear)
Toggle main menu visibility
Loading...
Searching...
No Matches
parser
include
bearparser
pe
OptHdrWrapper.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
PENodeWrapper.h
"
4
5
class
OptHdrWrapper
:
public
PEElementWrapper
6
{
7
public
:
8
/* fields :*/
9
enum
OptHdrFID
{
10
NONE
=
FIELD_NONE
,
11
MAGIC
= 0,
12
LINKER_MAJOR
,
13
LINKER_MINOR
,
14
CODE_SIZE
,
15
INITDATA_SIZE
,
16
UNINITDATA_SIZE
,
17
EP
,
18
CODE_BASE
,
19
DATA_BASE
,
20
21
IMAGE_BASE
,
22
SEC_ALIGN
,
23
FILE_ALIGN
,
24
OSVER_MAJOR
,
25
OSVER_MINOR
,
26
IMGVER_MAJOR
,
27
IMGVER_MINOR
,
28
SUBSYSVER_MAJOR
,
29
SUBSYSVER_MINOR
,
30
WIN32_VER
,
31
IMAGE_SIZE
,
32
HDRS_SIZE
,
33
CHECKSUM
,
34
SUBSYS
,
35
DLL_CHARACT
,
36
STACK_RSRV_SIZE
,
37
STACK_COMMIT_SIZE
,
38
HEAP_RSRV_SIZE
,
39
HEAP_COMMIT_SIZE
,
40
LDR_FLAGS
,
41
RVAS_SIZES_NUM
,
42
DATA_DIR
,
43
FIELD_COUNTER
44
};
45
static
std::map<DWORD, QString>
s_optMagic
;
46
static
std::map<std::pair<WORD,WORD>, QString>
s_osVersion
;
47
static
std::map<DWORD, QString>
s_dllCharact
;
48
static
std::map<DWORD, QString>
s_subsystem
;
49
50
static
void
initDllCharact
();
51
static
std::vector<DWORD>
splitDllCharact
(DWORD characteristics);
52
static
QString
translateDllCharacteristics
(DWORD charact);
53
54
static
QString
translateOptMagic
(DWORD magic);
55
static
QString
translateOSVersion
(WORD major, WORD minor);
56
static
QString
translateSubsystem
(DWORD subsystem);
57
//----
58
59
OptHdrWrapper
(
PEFile
*pe) :
PEElementWrapper
(pe),
opt32
(NULL),
opt64
(NULL) {
wrap
(); }
60
bool
wrap
();
61
62
/* full structure boundaries */
63
virtual
void
*
getPtr
();
64
virtual
bufsize_t
getSize
();
65
virtual
QString
getName
() {
return
"Optional Hdr"
; }
66
virtual
size_t
getFieldsCount
() {
return
FIELD_COUNTER
; }
67
68
/* specific field boundaries */
69
virtual
void
*
getFieldPtr
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
);
70
virtual
bufsize_t
getFieldSize
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
);
71
72
virtual
QString
translateFieldContent
(
size_t
fieldId);
73
74
virtual
QString
getFieldName
(
size_t
fieldId);
75
virtual
Executable::addr_type
containsAddrType
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
);
76
77
Executable::exe_bits
getHdrBitMode
();
78
IMAGE_NT_HEADERS32*
nt32
();
79
IMAGE_NT_HEADERS64*
nt64
();
80
81
//DataDirWrapper dataDir;
82
protected
:
83
IMAGE_OPTIONAL_HEADER32*
opt32
;
84
IMAGE_OPTIONAL_HEADER64*
opt64
;
85
std::vector<DWORD>
dllCharact
;
86
};
87
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
Executable::exe_bits
exe_bits
Definition
Executable.h:28
OptHdrWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition
OptHdrWrapper.cpp:331
OptHdrWrapper::translateOptMagic
static QString translateOptMagic(DWORD magic)
Definition
OptHdrWrapper.cpp:50
OptHdrWrapper::nt64
IMAGE_NT_HEADERS64 * nt64()
Definition
OptHdrWrapper.cpp:138
OptHdrWrapper::translateSubsystem
static QString translateSubsystem(DWORD subsystem)
Definition
OptHdrWrapper.cpp:84
OptHdrWrapper::translateFieldContent
virtual QString translateFieldContent(size_t fieldId)
Definition
OptHdrWrapper.cpp:264
OptHdrWrapper::initDllCharact
static void initDllCharact()
Definition
OptHdrWrapper.cpp:11
OptHdrWrapper::getHdrBitMode
Executable::exe_bits getHdrBitMode()
Definition
OptHdrWrapper.cpp:120
OptHdrWrapper::opt64
IMAGE_OPTIONAL_HEADER64 * opt64
Definition
OptHdrWrapper.h:84
OptHdrWrapper::s_optMagic
static std::map< DWORD, QString > s_optMagic
Definition
OptHdrWrapper.h:45
OptHdrWrapper::opt32
IMAGE_OPTIONAL_HEADER32 * opt32
Definition
OptHdrWrapper.h:83
OptHdrWrapper::OptHdrFID
OptHdrFID
Definition
OptHdrWrapper.h:9
OptHdrWrapper::IMGVER_MAJOR
@ IMGVER_MAJOR
Definition
OptHdrWrapper.h:26
OptHdrWrapper::WIN32_VER
@ WIN32_VER
Definition
OptHdrWrapper.h:30
OptHdrWrapper::OSVER_MAJOR
@ OSVER_MAJOR
Definition
OptHdrWrapper.h:24
OptHdrWrapper::UNINITDATA_SIZE
@ UNINITDATA_SIZE
Definition
OptHdrWrapper.h:16
OptHdrWrapper::LINKER_MAJOR
@ LINKER_MAJOR
Definition
OptHdrWrapper.h:12
OptHdrWrapper::STACK_RSRV_SIZE
@ STACK_RSRV_SIZE
Definition
OptHdrWrapper.h:36
OptHdrWrapper::SUBSYS
@ SUBSYS
Definition
OptHdrWrapper.h:34
OptHdrWrapper::IMAGE_BASE
@ IMAGE_BASE
Definition
OptHdrWrapper.h:21
OptHdrWrapper::FILE_ALIGN
@ FILE_ALIGN
Definition
OptHdrWrapper.h:23
OptHdrWrapper::CHECKSUM
@ CHECKSUM
Definition
OptHdrWrapper.h:33
OptHdrWrapper::EP
@ EP
Definition
OptHdrWrapper.h:17
OptHdrWrapper::SUBSYSVER_MAJOR
@ SUBSYSVER_MAJOR
Definition
OptHdrWrapper.h:28
OptHdrWrapper::HEAP_COMMIT_SIZE
@ HEAP_COMMIT_SIZE
Definition
OptHdrWrapper.h:39
OptHdrWrapper::DLL_CHARACT
@ DLL_CHARACT
Definition
OptHdrWrapper.h:35
OptHdrWrapper::OSVER_MINOR
@ OSVER_MINOR
Definition
OptHdrWrapper.h:25
OptHdrWrapper::IMGVER_MINOR
@ IMGVER_MINOR
Definition
OptHdrWrapper.h:27
OptHdrWrapper::FIELD_COUNTER
@ FIELD_COUNTER
Definition
OptHdrWrapper.h:43
OptHdrWrapper::LDR_FLAGS
@ LDR_FLAGS
Definition
OptHdrWrapper.h:40
OptHdrWrapper::DATA_DIR
@ DATA_DIR
Definition
OptHdrWrapper.h:42
OptHdrWrapper::HDRS_SIZE
@ HDRS_SIZE
Definition
OptHdrWrapper.h:32
OptHdrWrapper::DATA_BASE
@ DATA_BASE
Definition
OptHdrWrapper.h:19
OptHdrWrapper::NONE
@ NONE
Definition
OptHdrWrapper.h:10
OptHdrWrapper::STACK_COMMIT_SIZE
@ STACK_COMMIT_SIZE
Definition
OptHdrWrapper.h:37
OptHdrWrapper::MAGIC
@ MAGIC
Definition
OptHdrWrapper.h:11
OptHdrWrapper::SUBSYSVER_MINOR
@ SUBSYSVER_MINOR
Definition
OptHdrWrapper.h:29
OptHdrWrapper::IMAGE_SIZE
@ IMAGE_SIZE
Definition
OptHdrWrapper.h:31
OptHdrWrapper::CODE_BASE
@ CODE_BASE
Definition
OptHdrWrapper.h:18
OptHdrWrapper::INITDATA_SIZE
@ INITDATA_SIZE
Definition
OptHdrWrapper.h:15
OptHdrWrapper::CODE_SIZE
@ CODE_SIZE
Definition
OptHdrWrapper.h:14
OptHdrWrapper::RVAS_SIZES_NUM
@ RVAS_SIZES_NUM
Definition
OptHdrWrapper.h:41
OptHdrWrapper::LINKER_MINOR
@ LINKER_MINOR
Definition
OptHdrWrapper.h:13
OptHdrWrapper::HEAP_RSRV_SIZE
@ HEAP_RSRV_SIZE
Definition
OptHdrWrapper.h:38
OptHdrWrapper::SEC_ALIGN
@ SEC_ALIGN
Definition
OptHdrWrapper.h:22
OptHdrWrapper::translateDllCharacteristics
static QString translateDllCharacteristics(DWORD charact)
Definition
OptHdrWrapper.cpp:28
OptHdrWrapper::translateOSVersion
static QString translateOSVersion(WORD major, WORD minor)
Definition
OptHdrWrapper.cpp:61
OptHdrWrapper::getFieldsCount
virtual size_t getFieldsCount()
Definition
OptHdrWrapper.h:66
OptHdrWrapper::dllCharact
std::vector< DWORD > dllCharact
Definition
OptHdrWrapper.h:85
OptHdrWrapper::OptHdrWrapper
OptHdrWrapper(PEFile *pe)
Definition
OptHdrWrapper.h:59
OptHdrWrapper::wrap
bool wrap()
Definition
OptHdrWrapper.cpp:106
OptHdrWrapper::nt32
IMAGE_NT_HEADERS32 * nt32()
Definition
OptHdrWrapper.cpp:128
OptHdrWrapper::getFieldSize
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
Definition
OptHdrWrapper.cpp:174
OptHdrWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition
OptHdrWrapper.cpp:282
OptHdrWrapper::getPtr
virtual void * getPtr()
Definition
OptHdrWrapper.cpp:149
OptHdrWrapper::getSize
virtual bufsize_t getSize()
Definition
OptHdrWrapper.cpp:164
OptHdrWrapper::getName
virtual QString getName()
Definition
OptHdrWrapper.h:65
OptHdrWrapper::s_dllCharact
static std::map< DWORD, QString > s_dllCharact
Definition
OptHdrWrapper.h:47
OptHdrWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition
OptHdrWrapper.cpp:184
OptHdrWrapper::splitDllCharact
static std::vector< DWORD > splitDllCharact(DWORD characteristics)
Definition
OptHdrWrapper.cpp:36
OptHdrWrapper::s_osVersion
static std::map< std::pair< WORD, WORD >, QString > s_osVersion
Definition
OptHdrWrapper.h:46
OptHdrWrapper::s_subsystem
static std::map< DWORD, QString > s_subsystem
Definition
OptHdrWrapper.h:48
PEElementWrapper::PEElementWrapper
PEElementWrapper(PEFile *pe)
Definition
PENodeWrapper.cpp:4
PEElementWrapper::PEFile
friend class PEFile
Definition
PENodeWrapper.h:19
Generated by
1.17.0