BearParser
Portable Executable parsing library (from PE-bear)
Toggle main menu visibility
Loading...
Searching...
No Matches
parser
include
bearparser
MappedExe.h
Go to the documentation of this file.
1
#pragma once
2
#include <map>
3
4
#include "
Executable.h
"
5
#include "
ExeElementWrapper.h
"
6
7
class
ExeWrappersContainer
8
{
9
public
:
10
enum
WRAPPERS
{
11
WR_NONE
= size_t(-1),
12
COUNT_WRAPPERS
= 0
13
};
14
15
ExeWrappersContainer
() { }
16
virtual
~ExeWrappersContainer
(
void
) {
clearWrappers
(); }
17
18
virtual
ExeElementWrapper
*
getWrapper
(
size_t
wrapperId);
19
20
size_t
wrappersCount
() {
return
wrappers
.size(); }
21
QString
getWrapperName
(
size_t
id
);
22
23
protected
:
24
virtual
void
wrap
() = 0;
25
void
clearWrappers
();
26
27
std::map<size_t, ExeElementWrapper*>
wrappers
;
28
};
29
30
class
MappedExe
:
public
Executable
,
public
ExeWrappersContainer
{
31
public
:
32
virtual
bool
canResize
(
bufsize_t
newSize)
33
{
34
// disabled by default
35
return
false
;
36
}
37
38
virtual
bool
resize
(
bufsize_t
newSize)
39
{
40
if
(!
canResize
(newSize))
return
false
;
41
42
if
(
Executable::resize
(newSize)) {
43
wrap
();
44
return
true
;
45
}
46
return
false
;
47
}
48
49
virtual
void
wrap
() = 0;
50
51
protected
:
52
MappedExe
(
AbstractByteBuffer
*v_buf,
exe_bits
v_bitMode)
53
:
Executable
(v_buf, v_bitMode),
ExeWrappersContainer
() { }
54
55
virtual
~MappedExe
(
void
) { }
56
};
bufsize_t
size_t bufsize_t
Definition
AbstractByteBuffer.h:17
ExeElementWrapper.h
Executable.h
AbstractByteBuffer::AbstractByteBuffer
AbstractByteBuffer()
Definition
AbstractByteBuffer.h:40
ExeElementWrapper
Definition
ExeElementWrapper.h:12
ExeWrappersContainer::ExeWrappersContainer
ExeWrappersContainer()
Definition
MappedExe.h:15
ExeWrappersContainer::wrappers
std::map< size_t, ExeElementWrapper * > wrappers
Definition
MappedExe.h:27
ExeWrappersContainer::~ExeWrappersContainer
virtual ~ExeWrappersContainer(void)
Definition
MappedExe.h:16
ExeWrappersContainer::wrappersCount
size_t wrappersCount()
Definition
MappedExe.h:20
ExeWrappersContainer::getWrapperName
QString getWrapperName(size_t id)
Definition
MappedExe.cpp:19
ExeWrappersContainer::clearWrappers
void clearWrappers()
Definition
MappedExe.cpp:3
ExeWrappersContainer::wrap
virtual void wrap()=0
ExeWrappersContainer::getWrapper
virtual ExeElementWrapper * getWrapper(size_t wrapperId)
Definition
MappedExe.cpp:13
ExeWrappersContainer::WRAPPERS
WRAPPERS
Definition
MappedExe.h:10
ExeWrappersContainer::WR_NONE
@ WR_NONE
Definition
MappedExe.h:11
ExeWrappersContainer::COUNT_WRAPPERS
@ COUNT_WRAPPERS
Definition
MappedExe.h:12
Executable::exe_bits
exe_bits
Definition
Executable.h:28
Executable::Executable
Executable(AbstractByteBuffer *v_buf, exe_bits v_bitMode)
Definition
Executable.cpp:4
Executable::resize
virtual bool resize(bufsize_t newSize)
Definition
Executable.h:119
MappedExe::canResize
virtual bool canResize(bufsize_t newSize)
Definition
MappedExe.h:32
MappedExe::MappedExe
MappedExe(AbstractByteBuffer *v_buf, exe_bits v_bitMode)
Definition
MappedExe.h:52
MappedExe::resize
virtual bool resize(bufsize_t newSize)
Definition
MappedExe.h:38
MappedExe::~MappedExe
virtual ~MappedExe(void)
Definition
MappedExe.h:55
MappedExe::wrap
virtual void wrap()=0
Generated by
1.17.0