BearParser
Portable Executable parsing library (from PE-bear)
Toggle main menu visibility
Loading...
Searching...
No Matches
parser
include
bearparser
pe
rsrc
ResourceContentWrapper.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
../../ExeElementWrapper.h
"
4
#include "
../ResourceLeafWrapper.h
"
5
#include "../pe_formats.h"
6
7
class
ResourceContentFactory
;
8
9
class
ResourceContentWrapper
:
public
ExeNodeWrapper
10
{
11
public
:
12
static
QString
translateType
(pe::resource_type type);
13
14
virtual
~ResourceContentWrapper
() {}
15
16
void
*
getResContentPtr
();
17
bufsize_t
getResContentSize
();
18
offset_t
getContentRaw
();
19
20
pe::resource_type
getType
() {
return
typeId
; }
21
22
virtual
void
*
getPtr
() {
return
getResContentPtr
(); }
23
virtual
bufsize_t
getSize
() {
return
getResContentSize
(); }
24
25
virtual
QString
getName
() {
return
translateType
(this->
typeId
); }
26
virtual
size_t
getFieldsCount
() {
return
1; }
27
virtual
size_t
getSubFieldsCount
() {
return
1; }
28
29
/* specific field boundatries */
30
virtual
void
*
getFieldPtr
(
size_t
fieldId,
size_t
subField) {
return
getPtr
(); }
31
virtual
QString
getFieldName
(
size_t
fieldId) {
return
getName
(); }
32
virtual
WrappedValue::data_type
containsDataType
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
) {
return
WrappedValue::COMPLEX
; }
33
34
protected
:
35
ResourceContentWrapper
(
Executable
*pe,
ResourceLeafWrapper
* v_leaf, pe::resource_type v_typeId)
36
:
ExeNodeWrapper
(pe),
myLeaf
(v_leaf),
typeId
(v_typeId) {}
37
38
BYTE*
getContentAt
(
offset_t
dataAddr,
Executable::addr_type
aT,
bufsize_t
dataSize);
39
40
ResourceLeafWrapper
*
myLeaf
;
41
pe::resource_type
typeId
;
42
43
friend
class
ResourceContentFactory
;
44
};
45
46
47
class
ReourceManifestWrapper
:
public
ResourceContentWrapper
48
{
49
public
:
50
virtual
WrappedValue::data_type
containsDataType
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
) {
return
WrappedValue::STRING
; }
51
52
protected
:
53
ReourceManifestWrapper
(
Executable
*pe,
ResourceLeafWrapper
* v_leaf)
54
:
ResourceContentWrapper
(pe, v_leaf, pe::RESTYPE_MANIFEST) {}
55
56
friend
class
ResourceContentFactory
;
57
};
58
59
class
ReourceHTMLWrapper
:
public
ResourceContentWrapper
60
{
61
public
:
62
virtual
WrappedValue::data_type
containsDataType
(
size_t
fieldId,
size_t
subField =
FIELD_NONE
) {
return
WrappedValue::STRING
; }
63
64
protected
:
65
ReourceHTMLWrapper
(
Executable
*pe,
ResourceLeafWrapper
* v_leaf)
66
:
ResourceContentWrapper
(pe, v_leaf, pe::RESTYPE_HTML
67
) {}
68
69
friend
class
ResourceContentFactory
;
70
};
offset_t
uint64_t offset_t
Definition
AbstractByteBuffer.h:20
bufsize_t
size_t bufsize_t
Definition
AbstractByteBuffer.h:17
ExeElementWrapper.h
FIELD_NONE
#define FIELD_NONE
Definition
ExeElementWrapper.h:9
ResourceLeafWrapper.h
ExeElementWrapper::Executable
friend class Executable
Definition
ExeElementWrapper.h:67
ExeNodeWrapper::ExeNodeWrapper
ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent=NULL)
Definition
ExeNodeWrapper.cpp:3
Executable::addr_type
addr_type
Definition
Executable.h:42
ReourceHTMLWrapper::ResourceContentFactory
friend class ResourceContentFactory
Definition
ResourceContentWrapper.h:69
ReourceHTMLWrapper::containsDataType
virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField=FIELD_NONE)
Definition
ResourceContentWrapper.h:62
ReourceHTMLWrapper::ReourceHTMLWrapper
ReourceHTMLWrapper(Executable *pe, ResourceLeafWrapper *v_leaf)
Definition
ResourceContentWrapper.h:65
ReourceManifestWrapper::ReourceManifestWrapper
ReourceManifestWrapper(Executable *pe, ResourceLeafWrapper *v_leaf)
Definition
ResourceContentWrapper.h:53
ReourceManifestWrapper::ResourceContentFactory
friend class ResourceContentFactory
Definition
ResourceContentWrapper.h:56
ReourceManifestWrapper::containsDataType
virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField=FIELD_NONE)
Definition
ResourceContentWrapper.h:50
ResourceContentFactory
Definition
ResourceContentFactory.h:6
ResourceContentWrapper::ResourceContentWrapper
ResourceContentWrapper(Executable *pe, ResourceLeafWrapper *v_leaf, pe::resource_type v_typeId)
Definition
ResourceContentWrapper.h:35
ResourceContentWrapper::getPtr
virtual void * getPtr()
Definition
ResourceContentWrapper.h:22
ResourceContentWrapper::translateType
static QString translateType(pe::resource_type type)
Definition
ResourceContentWrapper.cpp:3
ResourceContentWrapper::getContentAt
BYTE * getContentAt(offset_t dataAddr, Executable::addr_type aT, bufsize_t dataSize)
Definition
ResourceContentWrapper.cpp:81
ResourceContentWrapper::getContentRaw
offset_t getContentRaw()
Definition
ResourceContentWrapper.cpp:68
ResourceContentWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField)
Definition
ResourceContentWrapper.h:30
ResourceContentWrapper::~ResourceContentWrapper
virtual ~ResourceContentWrapper()
Definition
ResourceContentWrapper.h:14
ResourceContentWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition
ResourceContentWrapper.h:31
ResourceContentWrapper::getName
virtual QString getName()
Definition
ResourceContentWrapper.h:25
ResourceContentWrapper::myLeaf
ResourceLeafWrapper * myLeaf
Definition
ResourceContentWrapper.h:40
ResourceContentWrapper::getType
pe::resource_type getType()
Definition
ResourceContentWrapper.h:20
ResourceContentWrapper::getResContentPtr
void * getResContentPtr()
Definition
ResourceContentWrapper.cpp:34
ResourceContentWrapper::getFieldsCount
virtual size_t getFieldsCount()
Definition
ResourceContentWrapper.h:26
ResourceContentWrapper::ResourceContentFactory
friend class ResourceContentFactory
Definition
ResourceContentWrapper.h:43
ResourceContentWrapper::getSubFieldsCount
virtual size_t getSubFieldsCount()
Definition
ResourceContentWrapper.h:27
ResourceContentWrapper::getSize
virtual bufsize_t getSize()
Definition
ResourceContentWrapper.h:23
ResourceContentWrapper::containsDataType
virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField=FIELD_NONE)
Definition
ResourceContentWrapper.h:32
ResourceContentWrapper::typeId
pe::resource_type typeId
Definition
ResourceContentWrapper.h:41
ResourceContentWrapper::getResContentSize
bufsize_t getResContentSize()
Definition
ResourceContentWrapper.cpp:53
ResourceLeafWrapper
Definition
ResourceLeafWrapper.h:10
WrappedValue::data_type
data_type
Definition
WrappedValue.h:15
WrappedValue::COMPLEX
@ COMPLEX
Definition
WrappedValue.h:20
WrappedValue::STRING
@ STRING
Definition
WrappedValue.h:18
Generated by
1.17.0