BearParser
Portable Executable parsing library (from PE-bear)
Loading...
Searching...
No Matches
parser
include
bearparser
pe
ClrDirWrapper.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
DataDirEntryWrapper.h
"
4
#include <set>
5
6
class
ClrDirWrapper
:
public
DataDirEntryWrapper
7
{
8
public
:
9
10
enum
FieldID
{
11
NONE
=
FIELD_NONE
,
12
CB
= 0,
13
MAJOR_RUNTIME_VER
,
14
MINOR_RUNTIME_VER
,
15
META_DATA_VA
,
16
META_DATA_SIZE
,
17
FLAGS
,
18
ENTRY_POINT
,
19
RESOURCES_VA
,
20
RESOURCES_SIZE
,
21
STRONG_NAME_SIGNATURE_VA
,
22
STRONG_NAME_SIGNATURE_SIZE
,
23
CODE_MANAGER_TABLE_VA
,
24
CODE_MANAGER_TABLE_SIZE
,
25
VTABLE_FIXUPS_VA
,
26
VTABLE_FIXUPS_SIZE
,
27
EXPORT_ADDR_TABLE_JMPS_VA
,
28
EXPORT_ADDR_TABLE_JMPS_SIZE
,
29
MANAGED_NATIVE_HDR_VA
,
30
MANAGED_NATIVE_HDR_SIZE
,
31
FIELD_COUNTER
32
};
33
34
static
QString
translateFlag
(DWORD value);
35
static
std::set<DWORD>
getFlagsSet
(DWORD flags);
36
//---
37
ClrDirWrapper
(
PEFile
*pe)
38
:
DataDirEntryWrapper
(pe, pe::DIR_COM_DESCRIPTOR) {
wrap
(); }
39
40
~ClrDirWrapper
() { clear(); }
41
42
bool
wrap
();
43
44
virtual
void
*
getPtr
();
45
virtual
bufsize_t
getSize
();
46
virtual
QString
getName
();
47
virtual
size_t
getFieldsCount
();
48
virtual
size_t
getSubFieldsCount
() {
return
1; }
49
50
virtual
void
*
getFieldPtr
(
size_t
fieldId,
size_t
subField);
51
virtual
QString
getFieldName
(
size_t
fieldId);
52
virtual
Executable::addr_type
containsAddrType
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
);
53
54
QString
translateFieldContent
(
size_t
fieldId);
55
56
private
:
57
pe::IMAGE_COR20_HEADER* clrDir();
58
59
void
clear() {}
60
};
61
bufsize_t
size_t bufsize_t
Definition
AbstractByteBuffer.h:17
DataDirEntryWrapper.h
FIELD_NONE
#define FIELD_NONE
Definition
ExeElementWrapper.h:9
ClrDirWrapper::ClrDirWrapper
ClrDirWrapper(PEFile *pe)
Definition
ClrDirWrapper.h:37
ClrDirWrapper::getFlagsSet
static std::set< DWORD > getFlagsSet(DWORD flags)
Definition
ClrDirWrapper.cpp:172
ClrDirWrapper::getFieldsCount
virtual size_t getFieldsCount()
Definition
ClrDirWrapper.cpp:70
ClrDirWrapper::getName
virtual QString getName()
Definition
ClrDirWrapper.cpp:76
ClrDirWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition
ClrDirWrapper.cpp:113
ClrDirWrapper::wrap
bool wrap()
Definition
ClrDirWrapper.cpp:54
ClrDirWrapper::getSubFieldsCount
virtual size_t getSubFieldsCount()
Definition
ClrDirWrapper.h:48
ClrDirWrapper::translateFieldContent
QString translateFieldContent(size_t fieldId)
Definition
ClrDirWrapper.cpp:216
ClrDirWrapper::~ClrDirWrapper
~ClrDirWrapper()
Definition
ClrDirWrapper.h:40
ClrDirWrapper::translateFlag
static QString translateFlag(DWORD value)
Definition
ClrDirWrapper.cpp:193
ClrDirWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition
ClrDirWrapper.cpp:148
ClrDirWrapper::getSize
virtual bufsize_t getSize()
Definition
ClrDirWrapper.cpp:64
ClrDirWrapper::FieldID
FieldID
Definition
ClrDirWrapper.h:10
ClrDirWrapper::META_DATA_VA
@ META_DATA_VA
Definition
ClrDirWrapper.h:15
ClrDirWrapper::NONE
@ NONE
Definition
ClrDirWrapper.h:11
ClrDirWrapper::MINOR_RUNTIME_VER
@ MINOR_RUNTIME_VER
Definition
ClrDirWrapper.h:14
ClrDirWrapper::MANAGED_NATIVE_HDR_VA
@ MANAGED_NATIVE_HDR_VA
Definition
ClrDirWrapper.h:29
ClrDirWrapper::MAJOR_RUNTIME_VER
@ MAJOR_RUNTIME_VER
Definition
ClrDirWrapper.h:13
ClrDirWrapper::EXPORT_ADDR_TABLE_JMPS_SIZE
@ EXPORT_ADDR_TABLE_JMPS_SIZE
Definition
ClrDirWrapper.h:28
ClrDirWrapper::FLAGS
@ FLAGS
Definition
ClrDirWrapper.h:17
ClrDirWrapper::VTABLE_FIXUPS_SIZE
@ VTABLE_FIXUPS_SIZE
Definition
ClrDirWrapper.h:26
ClrDirWrapper::STRONG_NAME_SIGNATURE_SIZE
@ STRONG_NAME_SIGNATURE_SIZE
Definition
ClrDirWrapper.h:22
ClrDirWrapper::ENTRY_POINT
@ ENTRY_POINT
Definition
ClrDirWrapper.h:18
ClrDirWrapper::STRONG_NAME_SIGNATURE_VA
@ STRONG_NAME_SIGNATURE_VA
Definition
ClrDirWrapper.h:21
ClrDirWrapper::CB
@ CB
Definition
ClrDirWrapper.h:12
ClrDirWrapper::RESOURCES_SIZE
@ RESOURCES_SIZE
Definition
ClrDirWrapper.h:20
ClrDirWrapper::FIELD_COUNTER
@ FIELD_COUNTER
Definition
ClrDirWrapper.h:31
ClrDirWrapper::CODE_MANAGER_TABLE_SIZE
@ CODE_MANAGER_TABLE_SIZE
Definition
ClrDirWrapper.h:24
ClrDirWrapper::CODE_MANAGER_TABLE_VA
@ CODE_MANAGER_TABLE_VA
Definition
ClrDirWrapper.h:23
ClrDirWrapper::EXPORT_ADDR_TABLE_JMPS_VA
@ EXPORT_ADDR_TABLE_JMPS_VA
Definition
ClrDirWrapper.h:27
ClrDirWrapper::META_DATA_SIZE
@ META_DATA_SIZE
Definition
ClrDirWrapper.h:16
ClrDirWrapper::MANAGED_NATIVE_HDR_SIZE
@ MANAGED_NATIVE_HDR_SIZE
Definition
ClrDirWrapper.h:30
ClrDirWrapper::RESOURCES_VA
@ RESOURCES_VA
Definition
ClrDirWrapper.h:19
ClrDirWrapper::VTABLE_FIXUPS_VA
@ VTABLE_FIXUPS_VA
Definition
ClrDirWrapper.h:25
ClrDirWrapper::getPtr
virtual void * getPtr()
Definition
ClrDirWrapper.cpp:59
ClrDirWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField)
Definition
ClrDirWrapper.cpp:81
DataDirEntryWrapper::PEFile
friend class PEFile
Definition
DataDirEntryWrapper.h:22
DataDirEntryWrapper::DataDirEntryWrapper
DataDirEntryWrapper(PEFile *pe, pe::dir_entry v_entryType)
Definition
DataDirEntryWrapper.cpp:4
Executable::addr_type
addr_type
Definition
Executable.h:41
Generated by
1.13.2