BearParser
Portable Executable parsing library (from PE-bear)
Toggle main menu visibility
Loading...
Searching...
No Matches
parser
include
bearparser
pe
PECore.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
../Executable.h
"
4
#include "pe_formats.h"
5
6
//class for internal use of PEFile
7
class
PECore
8
{
9
public
:
10
11
PECore
()
12
:
buf
(NULL),
dos
(NULL),
fHdr
(NULL),
opt32
(NULL),
opt64
(NULL) {}
13
14
virtual
~PECore
()
15
{
16
reset
();
17
}
18
19
bool
wrap
(
AbstractByteBuffer
*v_buf);
20
21
virtual
offset_t
getRawSize
()
const
{
return
buf
?
static_cast<
offset_t
>
(
buf
->getContentSize()) : 0; }
22
23
virtual
bufsize_t
getAlignment
(
Executable::addr_type
aType)
const
;
24
virtual
offset_t
getImageBase
(
bool
recalculate =
false
);
25
virtual
bufsize_t
getImageSize
();
26
27
Executable::exe_bits
getHdrBitMode
()
const
;
28
Executable::exe_arch
getHdrArch
()
const
;
29
offset_t
peSignatureOffset
()
const
;
30
offset_t
peFileHdrOffset
()
const
;
31
offset_t
secHdrsOffset
()
const
;
32
offset_t
peOptHdrOffset
()
const
;
33
bufsize_t
peNtHeadersSize
()
const
;
34
bufsize_t
hdrsSize
()
const
;
35
36
void
setImageSize
(
bufsize_t
newSize)
37
{
38
if
(this->
opt32
) {
39
this->
opt32
->SizeOfImage =
MASK_TO_DWORD
(newSize);
40
}
41
else
if
(this->
opt64
) {
42
this->
opt64
->SizeOfImage =
MASK_TO_DWORD
(newSize);
43
}
44
}
45
46
IMAGE_FILE_HEADER *
getFileHeader
()
const
47
{
48
return
fHdr
;
49
}
50
51
protected
:
52
void
reset
();
53
AbstractByteBuffer
*
buf
;
54
55
IMAGE_DOS_HEADER *
dos
;
56
IMAGE_FILE_HEADER*
fHdr
;
57
IMAGE_OPTIONAL_HEADER32*
opt32
;
58
IMAGE_OPTIONAL_HEADER64*
opt64
;
59
60
friend
class
PEFile
;
61
};
62
MASK_TO_DWORD
#define MASK_TO_DWORD(val)
Definition
AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition
AbstractByteBuffer.h:20
bufsize_t
size_t bufsize_t
Definition
AbstractByteBuffer.h:17
Executable.h
AbstractByteBuffer
Definition
AbstractByteBuffer.h:36
Executable::addr_type
addr_type
Definition
Executable.h:42
Executable::exe_bits
exe_bits
Definition
Executable.h:28
Executable::exe_arch
exe_arch
Definition
Executable.h:35
PECore::getHdrArch
Executable::exe_arch getHdrArch() const
Definition
PECore.cpp:59
PECore::~PECore
virtual ~PECore()
Definition
PECore.h:14
PECore::PEFile
friend class PEFile
Definition
PECore.h:60
PECore::getAlignment
virtual bufsize_t getAlignment(Executable::addr_type aType) const
Definition
PECore.cpp:119
PECore::hdrsSize
bufsize_t hdrsSize() const
Definition
PECore.cpp:144
PECore::peOptHdrOffset
offset_t peOptHdrOffset() const
Definition
PECore.cpp:89
PECore::opt32
IMAGE_OPTIONAL_HEADER32 * opt32
Definition
PECore.h:57
PECore::wrap
bool wrap(AbstractByteBuffer *v_buf)
Definition
PECore.cpp:13
PECore::getImageBase
virtual offset_t getImageBase(bool recalculate=false)
Definition
PECore.cpp:156
PECore::peFileHdrOffset
offset_t peFileHdrOffset() const
Definition
PECore.cpp:79
PECore::buf
AbstractByteBuffer * buf
Definition
PECore.h:53
PECore::reset
void reset()
Definition
PECore.cpp:5
PECore::getImageSize
virtual bufsize_t getImageSize()
Definition
PECore.cpp:132
PECore::getFileHeader
IMAGE_FILE_HEADER * getFileHeader() const
Definition
PECore.h:46
PECore::PECore
PECore()
Definition
PECore.h:11
PECore::peSignatureOffset
offset_t peSignatureOffset() const
Definition
PECore.cpp:73
PECore::fHdr
IMAGE_FILE_HEADER * fHdr
Definition
PECore.h:56
PECore::peNtHeadersSize
bufsize_t peNtHeadersSize() const
Definition
PECore.cpp:98
PECore::getRawSize
virtual offset_t getRawSize() const
Definition
PECore.h:21
PECore::secHdrsOffset
offset_t secHdrsOffset() const
Definition
PECore.cpp:106
PECore::opt64
IMAGE_OPTIONAL_HEADER64 * opt64
Definition
PECore.h:58
PECore::getHdrBitMode
Executable::exe_bits getHdrBitMode() const
Definition
PECore.cpp:51
PECore::setImageSize
void setImageSize(bufsize_t newSize)
Definition
PECore.h:36
PECore::dos
IMAGE_DOS_HEADER * dos
Definition
PECore.h:55
Generated by
1.17.0