diff --git a/_abstract_byte_buffer_8cpp.html b/_abstract_byte_buffer_8cpp.html index cb61dda4..ee9ad9ce 100644 --- a/_abstract_byte_buffer_8cpp.html +++ b/_abstract_byte_buffer_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/AbstractByteBuffer.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
2
+
4{
5 if (unit == 0) {
@@ -90,8 +96,10 @@ $(function() {
11 if (roundDown < size) unitsNum ++;
12 return unitsNum * unit;
13}
+
14
15//--------------------------------------------------
+
17{
18 if (buf == NULL) return false;
@@ -100,8 +108,10 @@ $(function() {
21 }
22 return true;
23}
+
24//---
25
+
26BYTE AbstractByteBuffer::operator[](std::size_t idx)
27{
28 bufsize_t offset = static_cast<bufsize_t>(idx);
@@ -110,7 +120,9 @@ $(function() {
31 }
32 return this->getContent()[idx];
33}
+
34
+
35offset_t AbstractByteBuffer::getOffset(void *ptr, bool allowExceptions)
36{
37 if (ptr == NULL) return INVALID_ADDR;
@@ -132,7 +144,9 @@ $(function() {
53 }
54 return offset;
55}
+
56
+
57BYTE* AbstractByteBuffer::getContentAt(offset_t offset, bufsize_t size, bool allowExceptions)
58{
59 if (offset == INVALID_ADDR) {
@@ -162,7 +176,9 @@ $(function() {
83 BYTE *cntnt = buf + offset;
84 return cntnt;
85}
+
86
+
88{
89 if (startOffset == INVALID_ADDR) return 0;
@@ -173,8 +189,10 @@ $(function() {
94 bufsize_t limit = static_cast<bufsize_t>(contentSize - startOffset);
95 return limit;
96}
+
97
98
+
99BYTE* AbstractByteBuffer::getContentAtPtr(BYTE *ptr, bufsize_t size, bool allowExceptions)
100{
101 offset_t offset = getOffset(ptr, allowExceptions);
@@ -182,7 +200,9 @@ $(function() {
103
104 return getContentAt(offset, size, allowExceptions);
105}
+
106
+
107bool AbstractByteBuffer::setBufferedValue(BYTE *dstPtr, BYTE *srcPtr, bufsize_t srcSize, bufsize_t paddingSize, bool allowExceptions)
108{
109 if (dstPtr == srcPtr) return false;
@@ -210,7 +230,9 @@ $(function() {
131 memcpy(dstPtr, srcPtr, srcSize);
132 return true;
133}
+
134
+
135bool AbstractByteBuffer::setStringValue(offset_t rawOffset, QString newText)
136{
137 std::string newTextStr = newText.toStdString();
@@ -225,7 +247,9 @@ $(function() {
146 bool isOk = setBufferedValue(dstPtr, (BYTE*)newTextC, newTextLen, 1);
147 return isOk;
148}
+
149
+
151{
152 if (size == BUFSIZE_MAX) {
@@ -237,7 +261,9 @@ $(function() {
158
159 return QString::fromUtf8(ptr, static_cast<int>(asciiLen));
160}
+
161
+
163{
164 const bufsize_t unitSize = sizeof(WORD);
@@ -249,7 +275,9 @@ $(function() {
170 if (ptr == NULL) return "";
171 return QString::fromUtf16(ptr, static_cast<int>(len));
172}
+
173
+
175{
176 const bufsize_t unitSize = sizeof(WORD);
@@ -263,7 +291,9 @@ $(function() {
184 size_t asciiLen = pe_util::getAsciiLenW(ptr, len);
185 return QString::fromUtf16(ptr, static_cast<int>(asciiLen));
186}
+
187
+
189{
190 BYTE* area = this->getContentAt(rawOffset, size);
@@ -274,7 +304,9 @@ $(function() {
195 }
196 return true;
197}
+
198
+
200{
201 bufsize_t bufSize = this->getContentSize();
@@ -285,7 +317,9 @@ $(function() {
206 memset(buf, filling, bufSize);
207 return true;
208}
+
209
+
210bool AbstractByteBuffer::pasteBuffer(offset_t rawOffset, AbstractByteBuffer *buf, bool allowTrunc)
211{
212 if (isValid(buf) == false || isValid(this) == false) return false;
@@ -312,7 +346,9 @@ $(function() {
233 memcpy(target, source, sizeToFill);
234 return true;
235}
+
236
+
238{
239 if (rawOffset == INVALID_ADDR || size == 0) return false;
@@ -332,7 +368,9 @@ $(function() {
253 }
254 return false;
255}
+
256
+
258{
259 if (rawOffset == INVALID_ADDR || size == 0) return false;
@@ -365,14 +403,18 @@ $(function() {
286 }
287 return false;
288}
+
289
290template <typename INT_TYPE>
+
291INT_TYPE _getNumValue(void* ptr)
292{
293 INT_TYPE val = *((INT_TYPE*)ptr);
294 return val;
295}
+
296
+
297uint64_t AbstractByteBuffer::getNumValue(offset_t offset, bufsize_t size, bool* isOk)
298{
299 if (isOk) (*isOk) = false;
@@ -383,31 +425,35 @@ $(function() {
304 return (-1);
305 }
306 uint64_t val = (-1);
-
307 if (size == sizeof(uint8_t)) val = _getNumValue<uint8_t>(ptr);
-
308 else if (size == sizeof(uint16_t)) val = _getNumValue<uint16_t>(ptr);
-
309 else if (size == sizeof(uint32_t)) val = _getNumValue<uint32_t>(ptr);
-
310 else if (size == sizeof(uint64_t)) val = _getNumValue<uint64_t>(ptr);
+
307 if (size == sizeof(uint8_t)) val = _getNumValue<uint8_t>(ptr);
+
308 else if (size == sizeof(uint16_t)) val = _getNumValue<uint16_t>(ptr);
+
309 else if (size == sizeof(uint32_t)) val = _getNumValue<uint32_t>(ptr);
+
310 else if (size == sizeof(uint64_t)) val = _getNumValue<uint64_t>(ptr);
311 else {
312 return (-1);
313 }
-
314 if (isOk) (*isOk) = true;
-
315 return val;
+
314 if (isOk) (*isOk) = true;
+
315 return val;
316}
+
317
318template <typename INT_TYPE>
-
319bool _setNumValue(void* ptr, INT_TYPE nVal)
+
+
319bool _setNumValue(void* ptr, INT_TYPE nVal)
320{
-
321 INT_TYPE* valPtr = (INT_TYPE*)ptr;
-
322 if ((*valPtr) == nVal) return false;
-
323 (*valPtr) = nVal;
+
321 INT_TYPE* valPtr = (INT_TYPE*)ptr;
+
322 if ((*valPtr) == nVal) return false;
+
323 (*valPtr) = nVal;
324 return true;
325}
+
326
-
327bool AbstractByteBuffer::setNumValue(offset_t offset, bufsize_t size, uint64_t newVal)
+
+
328{
329 if (size == 0 || offset == INVALID_ADDR) return false;
330 void* ptr = this->getContentAt(offset, size);
-
331 if (ptr == NULL) {
+
331 if (ptr == NULL) {
333 "Cannot get Ptr at: %llX of size: %lX!",
334 static_cast<unsigned long long>(offset),
@@ -416,20 +462,20 @@ $(function() {
337 return false;
338 }
339
-
340 if (size == sizeof(uint8_t)) {
-
341 if (!_setNumValue(ptr, uint8_t(newVal)))
+
340 if (size == sizeof(uint8_t)) {
+
341 if (!_setNumValue(ptr, uint8_t(newVal)))
342 return false;
343 }
-
344 else if (size == sizeof(uint16_t)) {
-
345 if (!_setNumValue(ptr, uint16_t(newVal)))
+
344 else if (size == sizeof(uint16_t)) {
+
345 if (!_setNumValue(ptr, uint16_t(newVal)))
346 return false;
347 }
-
348 else if (size == sizeof(uint32_t)) {
-
349 if (!_setNumValue(ptr, uint32_t(newVal)))
+
348 else if (size == sizeof(uint32_t)) {
+
349 if (!_setNumValue(ptr, uint32_t(newVal)))
350 return false;
351 }
-
352 else if (size == sizeof(uint64_t)) {
-
353 if (!_setNumValue(ptr, uint64_t(newVal)))
+
352 else if (size == sizeof(uint64_t)) {
+
353 if (!_setNumValue(ptr, uint64_t(newVal)))
354 return false;
355 } else {
356 Logger::append(Logger::D_ERROR, "Wrong size!");
@@ -437,85 +483,96 @@ $(function() {
358 }
359 return true;
360}
+
361
-
362bool AbstractByteBuffer::setTextValue(char* textPtr, std::string newText, size_t fieldLimitLen)
+
+
363{
-
364 if (!textPtr) return false;
+
364 if (!textPtr) return false;
365
-
366 size_t newLen = newText.length() + 1;
-
367 offset_t textOffset = this->getOffset(textPtr);
-
368 if (textOffset == INVALID_ADDR) {
+
366 size_t newLen = newText.length() + 1;
+
367 offset_t textOffset = this->getOffset(textPtr);
+
368 if (textOffset == INVALID_ADDR) {
369 return false;
370 }
371 //check against the buffer overflow
-
372 if (!this->getContentAt(textOffset, newLen)) {
+
372 if (!this->getContentAt(textOffset, newLen)) {
373 return false;
374 }
375 //if both strings are same, do not overwrite
-
376 const char* newTextC = newText.c_str();
-
377 if (!strcmp(newTextC, textPtr)) { //TODO: use a safe comparison
+
376 const char* newTextC = newText.c_str();
+
377 if (!strcmp(newTextC, textPtr)) { //TODO: use a safe comparison
378 return false;
379 }
380 //if the field size is set:
-
381 if (fieldLimitLen != 0) {
-
382 if (this->getContentAt(textOffset, fieldLimitLen)) {
+
381 if (fieldLimitLen != 0) {
+
382 if (this->getContentAt(textOffset, fieldLimitLen)) {
383 //clear the previous field
-
384 memset(textPtr, 0, fieldLimitLen);
-
385 if (newLen > fieldLimitLen) {
-
386 newLen = fieldLimitLen;
+ +
385 if (newLen > fieldLimitLen) {
+
387 }
388 }
389 }
-
390 memcpy(textPtr, newTextC, newLen);
-
391 textPtr[newLen] = '\0';
+ +
391 textPtr[newLen] = '\0';
392 return true;
393}
+
394
- +
+
396{
-
397 BYTE *contentPart = this->getContentAt(offset, contentSize);
-
398 if (!contentPart) return 0; //invalid offset/size
+
397 BYTE *contentPart = this->getContentAt(offset, contentSize);
+
398 if (!contentPart) return 0; //invalid offset/size
399
400 if (!fIn.isReadable()) return 0;
401
-
402 size_t toLoad = fIn.size() < contentSize ? fIn.size() : contentSize;
-
403 BYTE *fBuf = (BYTE*)::calloc(toLoad, 1);
-
404 if (!fBuf) {
+
402 size_t toLoad = fIn.size() < contentSize ? fIn.size() : contentSize;
+
403 BYTE *fBuf = (BYTE*)::calloc(toLoad, 1);
+
404 if (!fBuf) {
405 return 0;
406 }
-
407 size_t loaded = fIn.read((char*)fBuf, toLoad);
-
408 memset(contentPart, 0, contentSize);
-
409 memcpy(contentPart, fBuf, loaded);
-
410 free(fBuf); fBuf = NULL;
+
407 size_t loaded = fIn.read((char*)fBuf, toLoad);
+
408 memset(contentPart, 0, contentSize);
+ +
410 free(fBuf); fBuf = NULL;
411
-
412 return loaded;
+
412 return loaded;
413}
+
414
415//--------------------------------------------
416
- -
418 : parent(v_parent), offset(v_offset), size(v_size)
+
+ +
418 : parent(v_parent), offset(v_offset), size(v_size)
419{
-
420 if (v_parent == NULL) throw BufferException("Cannot make subBuffer for NULL buffer!");
+
420 if (v_parent == NULL) throw BufferException("Cannot make subBuffer for NULL buffer!");
421}
+
422
+
424{
-
425 bufsize_t maxSize = this->parent->getContentSize();
+
426 if (offset > maxSize) {
427 return 0;
428 }
-
429 if (offset + size > maxSize) {
-
430 bufsize_t trimedSize = maxSize - offset;
-
431 return trimedSize;
+
429 if (offset + size > maxSize) {
+ +
431 return trimedSize;
432 }
433 return size;
434}
+
435
- +
INT_TYPE _getNumValue(void *ptr)
bool _setNumValue(void *ptr, INT_TYPE nVal)
@@ -562,7 +619,7 @@ $(function() {
diff --git a/_abstract_byte_buffer_8h.html b/_abstract_byte_buffer_8h.html index f83ad840..fe3b5f69 100644 --- a/_abstract_byte_buffer_8h.html +++ b/_abstract_byte_buffer_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/AbstractByteBuffer.h File Reference @@ -30,7 +30,7 @@ - + +
11
12//------------------------------------------------
13
-
14typedef uint32_t bufsize_t;
+
14typedef uint32_t bufsize_t;
15const bufsize_t BUFSIZE_MAX = bufsize_t(-1);
16
-
17typedef uint64_t offset_t;
+
17typedef uint64_t offset_t;
18const offset_t INVALID_ADDR = offset_t(-1);
19const offset_t OFFSET_MAX = (INVALID_ADDR - 1);
20
+
21class BufferException : public CustomException
22{
23public:
-
24 BufferException(const QString info) : CustomException(info) {}
+
24 BufferException(const QString info) : CustomException(info) {}
25};
+
26
+
27namespace buf_util {
-
28 bufsize_t roundupToUnit(bufsize_t size, bufsize_t unit);
+
28 bufsize_t roundupToUnit(bufsize_t size, bufsize_t unit);
29};
+
30
+
31class AbstractByteBuffer
32{
33public:
@@ -116,44 +126,46 @@ $(function() {
37 virtual ~AbstractByteBuffer() { }
38
39 virtual bufsize_t getContentSize() = 0;
-
40 virtual BYTE* getContent() = 0;
+
40 virtual BYTE* getContent() = 0;
41 virtual bool isTruncated() { return false; }
42 virtual bool isResized() { return false; }
43
-
44 BYTE operator[](size_t idx);
+
44 BYTE operator[](size_t idx);
45
-
46 virtual offset_t getOffset(void *ptr, bool allowExceptions = false); // validates
-
47 virtual BYTE* getContentAt(offset_t offset, bufsize_t size, bool allowExceptions = false);
-
48 virtual BYTE* getContentAtPtr(BYTE *ptr, bufsize_t size, bool allowExceptions = false);
+
46 virtual offset_t getOffset(void *ptr, bool allowExceptions = false); // validates
+
47 virtual BYTE* getContentAt(offset_t offset, bufsize_t size, bool allowExceptions = false);
+
48 virtual BYTE* getContentAtPtr(BYTE *ptr, bufsize_t size, bool allowExceptions = false);
49
-
50 virtual bool setBufferedValue(BYTE *dstPtr, BYTE *srcPtr, bufsize_t srcSize, bufsize_t paddingSize, bool allowExceptions = false);
-
51 bool setStringValue(offset_t rawOffset, QString newText);
+
50 virtual bool setBufferedValue(BYTE *dstPtr, BYTE *srcPtr, bufsize_t srcSize, bufsize_t paddingSize, bool allowExceptions = false);
+
51 bool setStringValue(offset_t rawOffset, QString newText);
52
-
53 QString getStringValue(offset_t rawOffset, bufsize_t len = BUFSIZE_MAX);
-
54 QString getWStringValue(offset_t rawOffset, bufsize_t len);
-
55 QString getWAsciiStringValue(offset_t rawOffset, bufsize_t len);
+
53 QString getStringValue(offset_t rawOffset, bufsize_t len = BUFSIZE_MAX);
+
54 QString getWStringValue(offset_t rawOffset, bufsize_t len);
+
55 QString getWAsciiStringValue(offset_t rawOffset, bufsize_t len);
56
-
57 bufsize_t getMaxSizeFromOffset(offset_t startOffset);
-
58 bufsize_t getMaxSizeFromPtr(BYTE *ptr) { return getMaxSizeFromOffset(getOffset(ptr)); }
+
57 bufsize_t getMaxSizeFromOffset(offset_t startOffset);
+
58 bufsize_t getMaxSizeFromPtr(BYTE *ptr) { return getMaxSizeFromOffset(getOffset(ptr)); }
59
-
60 bool isAreaEmpty(offset_t rawOffset, bufsize_t size);
-
61 bool fillContent(BYTE filling);
-
62 bool pasteBuffer(offset_t rawOffset, AbstractByteBuffer *buf, bool allowTrunc);
+
60 bool isAreaEmpty(offset_t rawOffset, bufsize_t size);
+
61 bool fillContent(BYTE filling);
+
62 bool pasteBuffer(offset_t rawOffset, AbstractByteBuffer *buf, bool allowTrunc);
63
-
64 bool containsBlock(offset_t rawOffset, bufsize_t size);
-
65 bool intersectsBlock(offset_t rawOffset, bufsize_t size);
+
64 bool containsBlock(offset_t rawOffset, bufsize_t size);
+
65 bool intersectsBlock(offset_t rawOffset, bufsize_t size);
66
-
67 uint64_t getNumValue(offset_t offset, bufsize_t size, bool* isOk);
-
68 bool setNumValue(offset_t offset, bufsize_t size, uint64_t newVal);
-
69 bool setTextValue(char* textPtr, std::string newText, size_t fieldLimitLen = 0);
+
67 uint64_t getNumValue(offset_t offset, bufsize_t size, bool* isOk);
+
68 bool setNumValue(offset_t offset, bufsize_t size, uint64_t newVal);
+
69 bool setTextValue(char* textPtr, std::string newText, size_t fieldLimitLen = 0);
70
71 //TODO
-
72 virtual bool resize(bufsize_t newSize) { return false; }
-
73 offset_t substFragmentByFile(offset_t offset, bufsize_t contentSize, QFile &fIn);
+
72 virtual bool resize(bufsize_t newSize) { return false; }
+
73 offset_t substFragmentByFile(offset_t offset, bufsize_t contentSize, QFile &fIn);
74};
+
75
76//--------------------------------------------
77
+
78class BufferView : public AbstractByteBuffer
79{
80public:
@@ -161,7 +173,7 @@ $(function() {
82 virtual ~BufferView() { }
83
84 virtual bufsize_t getContentSize();
-
85 virtual BYTE* getContent();
+
85 virtual BYTE* getContent();
86
87 bufsize_t getRequestedSize() const { return size; }
88
@@ -170,7 +182,9 @@ $(function() {
91 offset_t offset;
92 bufsize_t size;
93};
+
94
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
BUFSIZE_MAX
const bufsize_t BUFSIZE_MAX
Definition AbstractByteBuffer.h:15
OFFSET_MAX
const offset_t OFFSET_MAX
Definition AbstractByteBuffer.h:19
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
@@ -223,7 +237,7 @@ $(function() { diff --git a/_bound_imp_dir_wrapper_8cpp.html b/_bound_imp_dir_wrapper_8cpp.html index 81d0f69f..4a42dfcb 100644 --- a/_bound_imp_dir_wrapper_8cpp.html +++ b/_bound_imp_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/BoundImpDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
17
18*/
19
-
20IMAGE_BOUND_IMPORT_DESCRIPTOR* BoundImpDirWrapper::boundImp()
+
+
20IMAGE_BOUND_IMPORT_DESCRIPTOR* BoundImpDirWrapper::boundImp()
21{
-
22 offset_t rva = getDirEntryAddress();
+
22 offset_t rva = getDirEntryAddress();
23
-
24 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
-
25 if (ptr == NULL) return NULL;
-
26 return (IMAGE_BOUND_IMPORT_DESCRIPTOR*) ptr;
+
24 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
+
25 if (ptr == NULL) return NULL;
+
26 return (IMAGE_BOUND_IMPORT_DESCRIPTOR*) ptr;
27}
+
28
+
29bool BoundImpDirWrapper::loadNextEntry(size_t entryNum)
30{
-
31 BoundEntryWrapper* imp = new BoundEntryWrapper(m_Exe, this, entryNum);
-
32 if (!imp || !imp->getPtr()) {
-
33 delete imp;
+
31 BoundEntryWrapper* imp = new BoundEntryWrapper(m_Exe, this, entryNum);
+
32 if (!imp || !imp->getPtr()) {
+
33 delete imp;
34 return false;
35 }
36 // TODO! do it in proper way!
-
37 bool isOk = false;
-
38 uint64_t offset = imp->getNumValue(BoundEntryWrapper::MODULE_NAME_OFFSET, &isOk);
-
39 if (!isOk || offset == 0) {
-
40 delete imp;
+
37 bool isOk = false;
+
38 uint64_t offset = imp->getNumValue(BoundEntryWrapper::MODULE_NAME_OFFSET, &isOk);
+
39 if (!isOk || offset == 0) {
+
40 delete imp;
41 return false;
42 }
-
43 entries.push_back(imp);
+
43 entries.push_back(imp);
44 return true;
45}
+
46
+
47bool BoundImpDirWrapper::wrap()
48{
49 clear();
-
50 size_t oldCount = this->importsCount;
+
50 size_t oldCount = this->importsCount;
51 this->importsCount = 0;
52
53 if (!getDataDirectory()) {
54 return (oldCount != this->importsCount); //has count changed
55 }
56
-
57 size_t cntr = 0;
+
57 size_t cntr = 0;
58 while (loadNextEntry(cntr)) {
-
59 cntr++;
+
59 cntr++;
60 }
61
-
62 this->importsCount = cntr;
+
62 this->importsCount = cntr;
63 return (oldCount != this->importsCount); //has count changed
64}
+
65
+
66bufsize_t BoundImpDirWrapper::getSize()
67{
-
68 if (getPtr() == NULL) return 0;
-
69 bufsize_t entrySize = static_cast<bufsize_t>(sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
-
70 return entrySize * static_cast<bufsize_t>(this->entries.size());
+
68 if (getPtr() == NULL) return 0;
+
69 bufsize_t entrySize = static_cast<bufsize_t>(sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
+
70 return entrySize * static_cast<bufsize_t>(this->entries.size());
71}
+
72
73//-------------------------------------------------------------
74
+
75void* BoundEntryWrapper::getPtr()
76{
77 BoundImpDirWrapper* parent = dynamic_cast<BoundImpDirWrapper*> (this->getParentNode());
-
78 if (!parent) return NULL;
+
78 if (!parent) return NULL;
79
-
80 IMAGE_BOUND_IMPORT_DESCRIPTOR* firstEntry = parent->boundImp();
-
81 if (firstEntry == NULL) return NULL;
+
80 IMAGE_BOUND_IMPORT_DESCRIPTOR* firstEntry = parent->boundImp();
+
81 if (firstEntry == NULL) return NULL;
82
-
83 uint64_t descAddr = parent->getOffset(firstEntry);
-
84 if (descAddr == INVALID_ADDR) return NULL;
+
83 uint64_t descAddr = parent->getOffset(firstEntry);
+
84 if (descAddr == INVALID_ADDR) return NULL;
85
-
86 uint64_t entryOffset = descAddr + (this->entryNum * sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
-
87 if (entryOffset == INVALID_ADDR) return NULL;
+
86 uint64_t entryOffset = descAddr + (this->entryNum * sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
+
87 if (entryOffset == INVALID_ADDR) return NULL;
88
-
89 BYTE *content = this->m_Exe->getContentAt(entryOffset, Executable::RAW, sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
-
90 if (!content) return NULL;
+
89 BYTE *content = this->m_Exe->getContentAt(entryOffset, Executable::RAW, sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR));
+
90 if (!content) return NULL;
91
92 return content;
93}
+
94
95
+
96bufsize_t BoundEntryWrapper::getSize()
97{
-
98 if (getPtr() == NULL) return 0;
-
99 return sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR);
+
98 if (getPtr() == NULL) return 0;
+
99 return sizeof(IMAGE_BOUND_IMPORT_DESCRIPTOR);
100}
+
101
-
102QString BoundEntryWrapper::getName()
+
+
102QString BoundEntryWrapper::getName()
103{
104 char* name = getLibraryName();
105 if (!name) return "";
-
106 return QString(name);
+
106 return QString(name);
107}
+
108
+
109char* BoundEntryWrapper::getLibraryName()
110{
111 //----
112 BoundImpDirWrapper* parent = dynamic_cast<BoundImpDirWrapper*> (this->getParentNode());
-
113 if (!parent) return NULL;
+
113 if (!parent) return NULL;
114
-
115 IMAGE_BOUND_IMPORT_DESCRIPTOR* firstEntry = parent->boundImp();
-
116 if (firstEntry == NULL) return NULL;
+
115 IMAGE_BOUND_IMPORT_DESCRIPTOR* firstEntry = parent->boundImp();
+
116 if (firstEntry == NULL) return NULL;
117
-
118 uint64_t offset = this->getOffset(firstEntry);
-
119 if (offset == INVALID_ADDR) return NULL;
+
118 uint64_t offset = this->getOffset(firstEntry);
+
119 if (offset == INVALID_ADDR) return NULL;
120 //----
-
121 IMAGE_BOUND_IMPORT_DESCRIPTOR* bImp = (IMAGE_BOUND_IMPORT_DESCRIPTOR*) this->getPtr();
-
122 if (bImp == NULL) return NULL;
+
121 IMAGE_BOUND_IMPORT_DESCRIPTOR* bImp = (IMAGE_BOUND_IMPORT_DESCRIPTOR*) this->getPtr();
+
122 if (bImp == NULL) return NULL;
123
-
124 WORD mnOff = bImp->OffsetModuleName;
+
124 WORD mnOff = bImp->OffsetModuleName;
125
-
126 offset += mnOff;
+
126 offset += mnOff;
127
128 char *ptr = (char*) m_Exe->getContentAt(offset, Executable::RAW, 1);
129 return ptr;
130}
+
131
-
132void* BoundEntryWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
132void* BoundEntryWrapper::getFieldPtr(size_t fId, size_t subField)
133{
134 BoundImpDirWrapper* parent = dynamic_cast<BoundImpDirWrapper*> (this->getParentNode());
-
135 if (!parent) return NULL;
+
135 if (!parent) return NULL;
136
-
137 IMAGE_BOUND_IMPORT_DESCRIPTOR* bImp = (IMAGE_BOUND_IMPORT_DESCRIPTOR*) this->getPtr();
-
138 if (bImp == NULL) return NULL;
+
137 IMAGE_BOUND_IMPORT_DESCRIPTOR* bImp = (IMAGE_BOUND_IMPORT_DESCRIPTOR*) this->getPtr();
+
138 if (bImp == NULL) return NULL;
139
-
140 switch (fId) {
-
141 case TIMESTAMP : return &bImp->TimeDateStamp;
-
142 case MODULE_NAME_OFFSET : return &bImp->OffsetModuleName;
-
143 case MODULE_FORWARDERS_NUM : return &bImp->NumberOfModuleForwarderRefs;
+
140 switch (fId) {
+
141 case TIMESTAMP : return &bImp->TimeDateStamp;
+
142 case MODULE_NAME_OFFSET : return &bImp->OffsetModuleName;
+
143 case MODULE_FORWARDERS_NUM : return &bImp->NumberOfModuleForwarderRefs;
144 }
145 return this->getPtr();
146}
+
147
-
148QString BoundEntryWrapper::getFieldName(size_t fieldId)
+
+
148QString BoundEntryWrapper::getFieldName(size_t fieldId)
149{
150 switch (fieldId) {
151 case TIMESTAMP : return "TimeDateStamp";
@@ -233,7 +257,9 @@ $(function() {
154 }
155 return getName();
156}
+
157
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -261,7 +287,6 @@ $(function() {
DataDirEntryWrapper::getDataDirectory
IMAGE_DATA_DIRECTORY * getDataDirectory()
Definition DataDirEntryWrapper.cpp:10
ExeElementWrapper::getOffset
virtual offset_t getOffset()
Definition ExeElementWrapper.cpp:39
ExeElementWrapper::m_Exe
Executable * m_Exe
Definition ExeElementWrapper.h:65
-
ExeElementWrapper::getNumValue
virtual uint64_t getNumValue(size_t fieldId, size_t subField, bool *isOk)
Definition ExeElementWrapper.cpp:73
ExeNodeWrapper::entries
std::vector< ExeNodeWrapper * > entries
Definition ExeNodeWrapper.h:56
ExeNodeWrapper::entryNum
size_t entryNum
Definition ExeNodeWrapper.h:54
ExeNodeWrapper::clear
virtual void clear()
Definition ExeNodeWrapper.cpp:30
@@ -272,7 +297,7 @@ $(function() { diff --git a/_bound_imp_dir_wrapper_8h.html b/_bound_imp_dir_wrapper_8h.html index 1f887fcf..d99eb837 100644 --- a/_bound_imp_dir_wrapper_8h.html +++ b/_bound_imp_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/BoundImpDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include "DataDirEntryWrapper.h"
4
+
5class BoundImpDirWrapper : public DataDirEntryWrapper
6{
7public:
+
-
9 : DataDirEntryWrapper(pe, pe::DIR_BOUND_IMPORT), importsCount(0) { wrap(); }
+ +
10
11 virtual bool wrap();
12
13 virtual void* getPtr() { return boundImp(); }
14 virtual bufsize_t getSize();
-
15 virtual QString getName() { return "BoundImp"; }
+
15 virtual QString getName() { return "BoundImp"; }
16 virtual size_t getFieldsCount() { return this->entries.size(); }
17
-
18 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
-
19 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE) { return getSubfieldSize(fieldId, subField); }
+
18 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
+
19 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE) { return getSubfieldSize(fieldId, subField); }
20
-
21 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField ); }
-
22 virtual QString getFieldName(size_t fieldId) { return getFieldName(fieldId, FIELD_NONE); }
+
21 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField ); }
+
22 virtual QString getFieldName(size_t fieldId) { return getFieldName(fieldId, FIELD_NONE); }
23
24protected:
25 bool loadNextEntry(size_t entryNum);
26
-
27 IMAGE_BOUND_IMPORT_DESCRIPTOR* boundImp();
+
27 IMAGE_BOUND_IMPORT_DESCRIPTOR* boundImp();
28 size_t importsCount;
29
30friend class BoundEntryWrapper;
31};
+
32
+
33class BoundEntryWrapper : public ExeNodeWrapper
34{
35public:
+
36 enum FieldID {
@@ -119,22 +130,27 @@ $(function() {
42 };
+
43
+
45 : ExeNodeWrapper(pe, parent, entryNum ) { }
+
46
47 bool wrap() { return true; }
48
49 virtual void* getPtr();
50 virtual bufsize_t getSize();
-
51 virtual QString getName();
+
51 virtual QString getName();
52 virtual char* getLibraryName();
53 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
54 virtual size_t getSubFieldsCount() { return 1; }
55
-
56 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
57 virtual QString getFieldName(size_t fieldId);
+
56 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
57 virtual QString getFieldName(size_t fieldId);
58};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
DataDirEntryWrapper.h
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -181,7 +197,7 @@ $(function() { diff --git a/_byte_buffer_8cpp.html b/_byte_buffer_8cpp.html index 2a34e6eb..aaaf7ff2 100644 --- a/_byte_buffer_8cpp.html +++ b/_byte_buffer_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/ByteBuffer.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "ByteBuffer.h"
2
- -
4 : content(NULL), contentSize(v_size), padding(v_padding),
-
5 originalSize(v_size)
+
+ +
4 : content(NULL), contentSize(v_size), padding(v_padding),
+
5 originalSize(v_size)
6{
-
7 if (v_size == 0) throw BufferException("Zero size requested");
+
7 if (v_size == 0) throw BufferException("Zero size requested");
8
-
9 this->content = allocContent(v_size, v_padding);
-
10 this->contentSize = v_size;
+
9 this->content = allocContent(v_size, v_padding);
+
10 this->contentSize = v_size;
11}
+
12
-
13ByteBuffer::ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t v_padding)
-
14 : content(NULL), contentSize(v_size), padding(v_padding),
-
15 originalSize(v_size)
+
+ +
14 : content(NULL), contentSize(v_size), padding(v_padding),
+
15 originalSize(v_size)
16{
-
17 if (v_size == 0) throw BufferException("Zero size requested");
+
17 if (v_size == 0) throw BufferException("Zero size requested");
18
-
19 this->content = allocContent(v_size, v_padding);
-
20 this->contentSize = v_size;
-
21 ::memcpy(this->content, v_content, v_size);
+
19 this->content = allocContent(v_size, v_padding);
+
20 this->contentSize = v_size;
+
21 ::memcpy(this->content, v_content, v_size);
22}
+
23
- -
25 : content(NULL), contentSize(0), padding(0),
+
+ +
25 : content(NULL), contentSize(0), padding(0),
26 originalSize(0)
27{
-
28 if (v_parent == NULL) throw BufferException("Cannot make subBuffer for NULL buffer!");
-
29 if (v_size == 0) throw BufferException("Cannot make 0 size buffer!");
+
28 if (v_parent == NULL) throw BufferException("Cannot make subBuffer for NULL buffer!");
+
29 if (v_size == 0) throw BufferException("Cannot make 0 size buffer!");
30
-
31 bufsize_t parentSize = v_parent->getContentSize();
+
31 bufsize_t parentSize = v_parent->getContentSize();
32
-
33 bufsize_t copySize = v_size < parentSize ? v_size : parentSize;
-
34 bufsize_t allocSize = v_size > parentSize ? v_size : parentSize;
+ +
35
-
36 BYTE *bContent = v_parent->getContentAt(v_offset, copySize);
-
37 if (bContent == NULL) throw BufferException("Cannot make Buffer for NULL content!");
+
36 BYTE *bContent = v_parent->getContentAt(v_offset, copySize);
+
37 if (bContent == NULL) throw BufferException("Cannot make Buffer for NULL content!");
38
-
39 this->content = allocContent(allocSize, v_padding);
-
40 this->contentSize = allocSize;
+
39 this->content = allocContent(allocSize, v_padding);
+
40 this->contentSize = allocSize;
41 this->originalSize = this->contentSize;
-
42 ::memcpy(this->content, bContent, copySize);
+
42 ::memcpy(this->content, bContent, copySize);
43}
+
44
- +
+
46{
-
47 if (v_size == 0) throw BufferException("Zero size requested");
-
48 bufsize_t allocSize = v_size + v_padding;
-
49 BYTE* content = new (std::nothrow) BYTE[allocSize];
-
50 if (content == NULL) {
-
51 throw BufferException("Cannot allocate buffer of size: 0x" + QString::number(allocSize, 16));
+
47 if (v_size == 0) throw BufferException("Zero size requested");
+ +
49 BYTE* content = new (std::nothrow) BYTE[allocSize];
+
50 if (content == NULL) {
+
51 throw BufferException("Cannot allocate buffer of size: 0x" + QString::number(allocSize, 16));
52 }
-
53 ::memset(content, 0, allocSize);
+
54 return content;
55}
+
56
- +
+
58{
-
59 if (newSize == this->contentSize) return true;
+
59 if (newSize == this->contentSize) return true;
60
-
61 BYTE *newContent = NULL;
+
62 try {
-
63 newContent = allocContent(newSize, this->padding);
-
64 } catch(BufferException &e) {
-
65 newContent = NULL;
+
63 newContent = allocContent(newSize, this->padding);
+
64 } catch(BufferException &e) {
+
66 }
-
67 if (!newContent) return false;
+
67 if (!newContent) return false;
68
-
69 BYTE *oldContent = this->content;
-
70 bufsize_t oldSize = this->contentSize;
-
71 bufsize_t copySize = newSize < oldSize ? newSize : oldSize;
+
69 BYTE *oldContent = this->content;
+ +
72
-
73 ::memcpy(newContent, oldContent, copySize);
+
74
-
75 this->content = newContent;
-
76 this->contentSize = newSize;
+
75 this->content = newContent;
+
76 this->contentSize = newSize;
77
-
78 delete []oldContent;
+
78 delete []oldContent;
79
80 return true;
81}
+
82
+
84{
85 delete []this->content;
86}
+
87
88
89
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
uint64_t offset_t
-
virtual bufsize_t getContentSize()=0
-
virtual BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
bufsize_t originalSize
Definition ByteBuffer.h:28
BYTE * content
Definition ByteBuffer.h:24
@@ -184,7 +200,7 @@ $(function() {
diff --git a/_byte_buffer_8h.html b/_byte_buffer_8h.html index c4d1bb83..57901791 100644 --- a/_byte_buffer_8h.html +++ b/_byte_buffer_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/ByteBuffer.h File Reference @@ -30,7 +30,7 @@ - + +
3
4#define DEFAULT_PADDING 2
5
+
6class ByteBuffer : public AbstractByteBuffer
7{
8public:
-
9 ByteBuffer(bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
-
10 ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
-
11 ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding = DEFAULT_PADDING);
+
9 ByteBuffer(bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
+
10 ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding = DEFAULT_PADDING);
+
11 ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding = DEFAULT_PADDING);
12
13 virtual ~ByteBuffer();
14
15 virtual bufsize_t getContentSize() { return contentSize; }
-
16 virtual BYTE* getContent() { return content; }
-
17 virtual bool resize(bufsize_t newSize);
+
16 virtual BYTE* getContent() { return content; }
+
17 virtual bool resize(bufsize_t newSize);
18
19 virtual bool isResized() { return originalSize != contentSize; }
20
21protected:
-
22 BYTE* allocContent(bufsize_t v_size, bufsize_t padding);
+
22 BYTE* allocContent(bufsize_t v_size, bufsize_t padding);
23
-
24 BYTE *content;
+
24 BYTE *content;
25 bufsize_t contentSize;
26 bufsize_t padding;
27
28 bufsize_t originalSize;
29};
+
30
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
AbstractByteBuffer.h
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -126,7 +134,7 @@ $(function() { diff --git a/_clr_dir_wrapper_8cpp.html b/_clr_dir_wrapper_8cpp.html index 5c22a93c..277f06cd 100644 --- a/_clr_dir_wrapper_8cpp.html +++ b/_clr_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/ClrDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
43
44pe::IMAGE_COR20_HEADER* ClrDirWrapper::clrDir()
45{
-
46 offset_t rva = getDirEntryAddress();
+
46 offset_t rva = getDirEntryAddress();
47
-
48 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(pe::IMAGE_COR20_HEADER));
-
49 if (ptr == NULL) return NULL;
+
48 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(pe::IMAGE_COR20_HEADER));
+
49 if (ptr == NULL) return NULL;
50
51 return (pe::IMAGE_COR20_HEADER*) ptr;
52}
53
+
54bool ClrDirWrapper::wrap()
55{
56 return true;
57}
+
58
+
59void* ClrDirWrapper::getPtr()
60{
61 return clrDir();
62}
+
63
+
64bufsize_t ClrDirWrapper::getSize()
65{
66 if (!getPtr()) return 0;
67 return sizeof(pe::IMAGE_COR20_HEADER);
68}
+
69
+
70size_t ClrDirWrapper::getFieldsCount()
71{
72 if (!getPtr()) return 0;
73 return FIELD_COUNTER;
74}
+
75
-
76QString ClrDirWrapper::getName()
+
+
76QString ClrDirWrapper::getName()
77{
78 return "CLR Directory";
79}
+
80
-
81void* ClrDirWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
81void* ClrDirWrapper::getFieldPtr(size_t fId, size_t subField)
82{
-
83 pe::IMAGE_COR20_HEADER* d = clrDir();
-
84 if (!d) return NULL;
+
83 pe::IMAGE_COR20_HEADER* d = clrDir();
+
84 if (!d) return NULL;
85
-
86 switch (fId) {
-
87 case CB: return &d->cb;
-
88 case MAJOR_RUNTIME_VER: return &d->MajorRuntimeVersion;
-
89 case MINOR_RUNTIME_VER: return &d->MinorRuntimeVersion;
-
90 case META_DATA_VA: return &d->MetaData.VirtualAddress;
-
91 case META_DATA_SIZE: return &d->MetaData.Size;
-
92 case FLAGS: return &d->Flags;
+
86 switch (fId) {
+
87 case CB: return &d->cb;
+
88 case MAJOR_RUNTIME_VER: return &d->MajorRuntimeVersion;
+
89 case MINOR_RUNTIME_VER: return &d->MinorRuntimeVersion;
+
90 case META_DATA_VA: return &d->MetaData.VirtualAddress;
+
91 case META_DATA_SIZE: return &d->MetaData.Size;
+
92 case FLAGS: return &d->Flags;
93 case ENTRY_POINT:
94 {
-
95 return &d->EntryPointRVA;
+
95 return &d->EntryPointRVA;
96 }
-
97 case RESOURCES_VA: return &d->Resources.VirtualAddress;
-
98 case RESOURCES_SIZE: return &d->Resources.Size;
-
99 case STRONG_NAME_SIGNATURE_VA: return &d->StrongNameSignature.VirtualAddress;
-
100 case STRONG_NAME_SIGNATURE_SIZE: return &d->StrongNameSignature.Size;
-
101 case CODE_MANAGER_TABLE_VA: return &d->CodeManagerTable.VirtualAddress;
-
102 case CODE_MANAGER_TABLE_SIZE: return &d->CodeManagerTable.Size;
-
103 case VTABLE_FIXUPS_VA: return &d->VTableFixups.VirtualAddress;
-
104 case VTABLE_FIXUPS_SIZE: return &d->VTableFixups.Size;
-
105 case EXPORT_ADDR_TABLE_JMPS_VA: return &d->ExportAddressTableJumps.VirtualAddress;
-
106 case EXPORT_ADDR_TABLE_JMPS_SIZE: return &d->ExportAddressTableJumps.Size;
-
107 case MANAGED_NATIVE_HDR_VA: return &d->ManagedNativeHeader.VirtualAddress;
-
108 case MANAGED_NATIVE_HDR_SIZE: return &d->ManagedNativeHeader.Size;
+
97 case RESOURCES_VA: return &d->Resources.VirtualAddress;
+
98 case RESOURCES_SIZE: return &d->Resources.Size;
+
99 case STRONG_NAME_SIGNATURE_VA: return &d->StrongNameSignature.VirtualAddress;
+
100 case STRONG_NAME_SIGNATURE_SIZE: return &d->StrongNameSignature.Size;
+
101 case CODE_MANAGER_TABLE_VA: return &d->CodeManagerTable.VirtualAddress;
+
102 case CODE_MANAGER_TABLE_SIZE: return &d->CodeManagerTable.Size;
+
103 case VTABLE_FIXUPS_VA: return &d->VTableFixups.VirtualAddress;
+
104 case VTABLE_FIXUPS_SIZE: return &d->VTableFixups.Size;
+
105 case EXPORT_ADDR_TABLE_JMPS_VA: return &d->ExportAddressTableJumps.VirtualAddress;
+
106 case EXPORT_ADDR_TABLE_JMPS_SIZE: return &d->ExportAddressTableJumps.Size;
+
107 case MANAGED_NATIVE_HDR_VA: return &d->ManagedNativeHeader.VirtualAddress;
+
108 case MANAGED_NATIVE_HDR_SIZE: return &d->ManagedNativeHeader.Size;
109 }
110 return this->getPtr();
111}
+
112
-
113QString ClrDirWrapper::getFieldName(size_t fieldId)
+
+
113QString ClrDirWrapper::getFieldName(size_t fieldId)
114{
115 switch (fieldId) {
116 case CB: return "Cb";
@@ -199,10 +217,10 @@ $(function() {
120 case META_DATA_SIZE: return "MetaData.Size";
121 case FLAGS: return "Flags";
122 case ENTRY_POINT: {
-
123 const pe::IMAGE_COR20_HEADER* d = clrDir();
-
124 if (!d) return "EntryPoint";
+
123 const pe::IMAGE_COR20_HEADER* d = clrDir();
+
124 if (!d) return "EntryPoint";
125
-
126 if (d->Flags & pe::COMIMAGE_FLAGS_NATIVE_ENTRYPOINT) {
+
126 if (d->Flags & pe::COMIMAGE_FLAGS_NATIVE_ENTRYPOINT) {
127 return "EntryPointRVA";
128 } else {
129 return "EntryPointToken";
@@ -223,14 +241,16 @@ $(function() {
144 }
145 return getName();
146}
+
147
-
148Executable::addr_type ClrDirWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
148Executable::addr_type ClrDirWrapper::containsAddrType(size_t fieldId, size_t subField)
149{
-
150 switch (fieldId) {
+
150 switch (fieldId) {
151 case ENTRY_POINT: {
-
152 const pe::IMAGE_COR20_HEADER* d = clrDir();
-
153 if (!d) return Executable::NOT_ADDR;
-
154 if (d->Flags & pe::COMIMAGE_FLAGS_NATIVE_ENTRYPOINT) {
+
152 const pe::IMAGE_COR20_HEADER* d = clrDir();
+
153 if (!d) return Executable::NOT_ADDR;
+
154 if (d->Flags & pe::COMIMAGE_FLAGS_NATIVE_ENTRYPOINT) {
155 return Executable::RVA;
156 } else {
157 return Executable::NOT_ADDR;
@@ -247,11 +267,13 @@ $(function() {
168 }
169 return Executable::NOT_ADDR;
170}
+
171
-
172std::set<DWORD> ClrDirWrapper::getFlagsSet(DWORD flags)
+
+
172std::set<DWORD> ClrDirWrapper::getFlagsSet(DWORD flags)
173{
-
174 const size_t clrFlagsCount = 6;
-
175 const DWORD clrFlags[clrFlagsCount] = {
+
174 const size_t clrFlagsCount = 6;
+
175 const DWORD clrFlags[clrFlagsCount] = {
176 pe::COMIMAGE_FLAGS_ILONLY,
177 pe::COMIMAGE_FLAGS_32BITREQUIRED,
178 pe::COMIMAGE_FLAGS_IL_LIBRARY,
@@ -259,58 +281,64 @@ $(function() {
180 pe::COMIMAGE_FLAGS_NATIVE_ENTRYPOINT,
181 pe::COMIMAGE_FLAGS_TRACKDEBUGDATA
182 };
-
183 std::set<DWORD> allFlags;
-
184 for (size_t i = 0; i < clrFlagsCount; ++i) {
-
185 const DWORD nextFlag = clrFlags[i];
-
186 if (flags & nextFlag) {
-
187 allFlags.insert(nextFlag);
+
183 std::set<DWORD> allFlags;
+
184 for (size_t i = 0; i < clrFlagsCount; ++i) {
+
185 const DWORD nextFlag = clrFlags[i];
+
186 if (flags & nextFlag) {
+
187 allFlags.insert(nextFlag);
188 }
189 }
-
190 return allFlags;
+
190 return allFlags;
191}
+
192
-
193QString ClrDirWrapper::translateFlag(DWORD flags)
+
+
193QString ClrDirWrapper::translateFlag(DWORD flags)
194{
-
195 if (flags & pe::COMIMAGE_FLAGS_ILONLY) {
+
195 if (flags & pe::COMIMAGE_FLAGS_ILONLY) {
196 return ("IL Only");
197 }
-
198 if (flags & pe::COMIMAGE_FLAGS_32BITREQUIRED) {
+
198 if (flags & pe::COMIMAGE_FLAGS_32BITREQUIRED) {
199 return("32-bit required");
200 }
-
201 if (flags & pe::COMIMAGE_FLAGS_IL_LIBRARY) {
+
201 if (flags & pe::COMIMAGE_FLAGS_IL_LIBRARY) {
202 return ("IL Library");
203 }
-
204 if (flags & pe::COMIMAGE_FLAGS_STRONGNAMESIGNED) {
+
204 if (flags & pe::COMIMAGE_FLAGS_STRONGNAMESIGNED) {
205 return("Strong Name Signed");
206 }
-
207 if (flags & pe::COMIMAGE_FLAGS_NATIVE_ENTRYPOINT) {
+
207 if (flags & pe::COMIMAGE_FLAGS_NATIVE_ENTRYPOINT) {
208 return("Native EntryPoint");
209 }
-
210 if (flags & pe::COMIMAGE_FLAGS_TRACKDEBUGDATA) {
+
210 if (flags & pe::COMIMAGE_FLAGS_TRACKDEBUGDATA) {
211 return("Track Debug Data");
212 }
213 return "";
214}
+
215
-
216QString ClrDirWrapper::translateFieldContent(size_t fieldId)
+
+
216QString ClrDirWrapper::translateFieldContent(size_t fieldId)
217{
-
218 const pe::IMAGE_COR20_HEADER* d = clrDir();
-
219 if (!d) return "";
+
218 const pe::IMAGE_COR20_HEADER* d = clrDir();
+
219 if (!d) return "";
220
-
221 if (fieldId != FLAGS) return "";
+
221 if (fieldId != FLAGS) return "";
222
-
223 std::set<DWORD> flagsSet = ClrDirWrapper::getFlagsSet(d->Flags);
-
224 std::set<DWORD>::iterator itr;
-
225 QStringList list;
-
226 for (itr = flagsSet.begin() ; itr != flagsSet.end(); ++itr) {
-
227 const DWORD nextFlag = *itr;
-
228 const QString flagInfo = ClrDirWrapper::translateFlag(nextFlag);
-
229 if (flagInfo.length() == 0) continue;
-
230 list.append(flagInfo);
+
223 std::set<DWORD> flagsSet = ClrDirWrapper::getFlagsSet(d->Flags);
+
224 std::set<DWORD>::iterator itr;
+
225 QStringList list;
+
226 for (itr = flagsSet.begin() ; itr != flagsSet.end(); ++itr) {
+
227 const DWORD nextFlag = *itr;
+
228 const QString flagInfo = ClrDirWrapper::translateFlag(nextFlag);
+
229 if (flagInfo.length() == 0) continue;
+
230 list.append(flagInfo);
231 }
-
232 return list.join(";");
+
232 return list.join(";");
233}
+
234
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
ClrDirWrapper.h
@@ -354,7 +382,7 @@ $(function() { diff --git a/_clr_dir_wrapper_8h.html b/_clr_dir_wrapper_8h.html index c40434ee..bcd7d3bd 100644 --- a/_clr_dir_wrapper_8h.html +++ b/_clr_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/ClrDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
3#include "DataDirEntryWrapper.h"
4#include <set>
5
+
6class ClrDirWrapper : public DataDirEntryWrapper
7{
8public:
9
+
10 enum FieldID {
12 CB = 0,
@@ -109,12 +116,15 @@ $(function() {
32 };
+
33
-
34 static QString translateFlag(DWORD value);
-
35 static std::set<DWORD> getFlagsSet(DWORD flags);
+
34 static QString translateFlag(DWORD value);
+
35 static std::set<DWORD> getFlagsSet(DWORD flags);
36//---
+
-
38 : DataDirEntryWrapper(pe, pe::DIR_COM_DESCRIPTOR) { wrap(); }
+ +
39
40 ~ClrDirWrapper() { clear(); }
41
@@ -122,22 +132,24 @@ $(function() {
43
44 virtual void* getPtr();
45 virtual bufsize_t getSize();
-
46 virtual QString getName();
+
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);
+
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);
+
54 QString translateFieldContent(size_t fieldId);
55
56private:
57 pe::IMAGE_COR20_HEADER* clrDir();
58
59 void clear() {}
60};
+
61
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
DataDirEntryWrapper.h
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -184,7 +196,7 @@ $(function() { diff --git a/_common_ordinals_lookup_8h.html b/_common_ordinals_lookup_8h.html index 9f21afe1..cabcbb7d 100644 --- a/_common_ordinals_lookup_8h.html +++ b/_common_ordinals_lookup_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/CommonOrdinalsLookup.h File Reference @@ -30,7 +30,7 @@ - + +
5#include "lookup/CommonOrdinalsWS2_32.h"
6#include "lookup/CommonOrdinalsOleaut32.h"
7
+
8class CommonOrdinalsLookup
9{
10public:
+
12 {
13 init();
14 }
+
15
-
16 QString findFuncName(QString dllName, int ordinal)
+
+
17 {
18 dllName = dllName.toLower();
19
20 if (!listsMap.contains(dllName)) {
-
21 return QString();
+
21 return QString();
22 }
23
-
24 CommonOrdinalsMap* ordinalsMap = listsMap[dllName];
-
25 if (!ordinalsMap || !ordinalsMap->ord_names.contains(ordinal)) {
-
26 return QString();
+ +
25 if (!ordinalsMap || !ordinalsMap->ord_names.contains(ordinal)) {
+
26 return QString();
27 }
-
28 return ordinalsMap->ord_names[ordinal];
+
28 return ordinalsMap->ord_names[ordinal];
29 }
+
30
+
31 void init()
32 {
33 listsMap["wsock32"] = new CommonOrdinalsWS2_32();
34 listsMap["ws2_32"] = new CommonOrdinalsWS2_32();
35 listsMap["oleaut32"] = new CommonOrdinalsOleaut32();
36 }
+
37
+
38 void clear()
39 {
-
40 for (auto itr = listsMap.begin(); itr != listsMap.end(); ++itr) {
-
41 delete itr.value();
+
40 for (auto itr = listsMap.begin(); itr != listsMap.end(); ++itr) {
+
41 delete itr.value();
42 }
43 listsMap.clear();
44 }
+
45
46protected:
-
47 QMap<QString, CommonOrdinalsMap*> listsMap;
+
47 QMap<QString, CommonOrdinalsMap*> listsMap;
48};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
CommonOrdinalsMap.h
CommonOrdinalsOleaut32.h
CommonOrdinalsWS2_32.h
@@ -135,13 +151,12 @@ $(function() {
CommonOrdinalsLookup::findFuncName
QString findFuncName(QString dllName, int ordinal)
Definition CommonOrdinalsLookup.h:16
CommonOrdinalsLookup::clear
void clear()
Definition CommonOrdinalsLookup.h:38
CommonOrdinalsMap
Definition CommonOrdinalsMap.h:6
-
CommonOrdinalsMap::ord_names
QMap< int, QString > ord_names
Definition CommonOrdinalsMap.h:15
CommonOrdinalsOleaut32
Definition CommonOrdinalsOleaut32.h:6
CommonOrdinalsWS2_32
Definition CommonOrdinalsWS2_32.h:6
diff --git a/_common_ordinals_map_8h.html b/_common_ordinals_map_8h.html index 6497a303..49122c4e 100644 --- a/_common_ordinals_map_8h.html +++ b/_common_ordinals_map_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/lookup/CommonOrdinalsMap.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include <QtCore>
4
+
5class CommonOrdinalsMap
6{
7public:
+
9 : dllName("") { }
+
10
-
11 CommonOrdinalsMap(QString _dllName)
-
12 : dllName(_dllName) { }
+
+ +
12 : dllName(_dllName) { }
+
13
-
14 QString dllName;
-
15 QMap<int, QString> ord_names;
+
14 QString dllName;
+
15 QMap<int, QString> ord_names;
16};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
CommonOrdinalsMap
Definition CommonOrdinalsMap.h:6
CommonOrdinalsMap::dllName
QString dllName
Definition CommonOrdinalsMap.h:14
CommonOrdinalsMap::CommonOrdinalsMap
CommonOrdinalsMap()
Definition CommonOrdinalsMap.h:8
@@ -101,7 +113,7 @@ $(function() { diff --git a/_common_ordinals_oleaut32_8h.html b/_common_ordinals_oleaut32_8h.html index 46e3d365..3d7d9158 100644 --- a/_common_ordinals_oleaut32_8h.html +++ b/_common_ordinals_oleaut32_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/lookup/CommonOrdinalsOleaut32.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include "CommonOrdinalsMap.h"
4
+
5class CommonOrdinalsOleaut32 : public CommonOrdinalsMap
6{
7public:
+
9 : CommonOrdinalsMap("oleaut32.dll")
10 {
@@ -486,7 +493,9 @@ $(function() {
407 ord_names[442] = "RegisterTypeLibForUser";
408 ord_names[443] = "UnRegisterTypeLibForUser";
409 }
+
410};
+
CommonOrdinalsMap.h
CommonOrdinalsMap
Definition CommonOrdinalsMap.h:6
CommonOrdinalsMap::ord_names
QMap< int, QString > ord_names
Definition CommonOrdinalsMap.h:15
@@ -495,7 +504,7 @@ $(function() { diff --git a/_common_ordinals_w_s2__32_8h.html b/_common_ordinals_w_s2__32_8h.html index 7b53a191..d805633e 100644 --- a/_common_ordinals_w_s2__32_8h.html +++ b/_common_ordinals_w_s2__32_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/lookup/CommonOrdinalsWS2_32.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include "CommonOrdinalsMap.h"
4
+
5class CommonOrdinalsWS2_32 : public CommonOrdinalsMap
6{
7public:
+
9 : CommonOrdinalsMap("ws2_32.dll")
10 {
@@ -205,7 +212,9 @@ $(function() {
126 ord_names[151] = "__WSAFDIsSet";
127 ord_names[500] = "WEP";
128 }
+
129};
+
CommonOrdinalsMap.h
CommonOrdinalsMap
Definition CommonOrdinalsMap.h:6
CommonOrdinalsMap::ord_names
QMap< int, QString > ord_names
Definition CommonOrdinalsMap.h:15
@@ -214,7 +223,7 @@ $(function() { diff --git a/_custom_exception_8h.html b/_custom_exception_8h.html index 53073a8a..3d8edd06 100644 --- a/_custom_exception_8h.html +++ b/_custom_exception_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/CustomException.h File Reference @@ -30,7 +30,7 @@ - + +
8
9#define UNKNOWN_EXCEPTION (-1)
10
+
11class CustomException : public std::exception
12{
13public:
-
14 CustomException(const QString info, const int32_t code = UNKNOWN_EXCEPTION)
-
15 : std::exception(), m_info(info), m_code(code) { m_strInfo = info.toStdString(); }
+
+ +
15 : std::exception(), m_info(info), m_code(code) { m_strInfo = info.toStdString(); }
+
16
-
17 CustomException(const int32_t code)
-
18 : std::exception(), m_info(""), m_code(code) {}
+
+ +
18 : std::exception(), m_info(""), m_code(code) {}
+
19
-
20 virtual ~CustomException() throw () {}
+
20 virtual ~CustomException() throw () {}
21
-
22 QString getInfo() { return (m_info.length() > 0) ? m_info : codeToString(); }
+
22 QString getInfo() { return (m_info.length() > 0) ? m_info : codeToString(); }
23 int getCode() { return m_code; }
-
24 virtual const char *what() const throw() { return m_strInfo.c_str(); }
+
24 virtual const char *what() const throw() { return m_strInfo.c_str(); }
25
26protected:
-
27 virtual QString codeToString() { return ""; } /* for inherited classes */
-
28 QString m_info;
+
27 virtual QString codeToString() { return ""; } /* for inherited classes */
+
28 QString m_info;
29 std::string m_strInfo;
30 const int m_code;
31};
+
32
+
33class ParserException : public CustomException
34{
35public:
-
36 ParserException(const QString info) : CustomException(info) {}
+
36 ParserException(const QString info) : CustomException(info) {}
37};
+
38
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
UNKNOWN_EXCEPTION
#define UNKNOWN_EXCEPTION
Definition CustomException.h:9
CustomException
Definition CustomException.h:12
CustomException::what
virtual const char * what() const
Definition CustomException.h:24
@@ -132,7 +146,7 @@ $(function() { diff --git a/_d_o_s_exe_8cpp.html b/_d_o_s_exe_8cpp.html index b51b8403..05bfb8fa 100644 --- a/_d_o_s_exe_8cpp.html +++ b/_d_o_s_exe_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/DOSExe.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "pe/DOSExe.h"
2
3
+
5{
-
6 if (buf == NULL) return false;
+
6 if (buf == NULL) return false;
7
-
8 WORD *magic = (WORD*) buf->getContentAt(0, sizeof(WORD));
-
9 if (magic == NULL) return false;
+
8 WORD *magic = (WORD*) buf->getContentAt(0, sizeof(WORD));
+
9 if (magic == NULL) return false;
10
-
11 if ((*magic) == pe::S_DOS || (*magic) == pe::S_DOS2) {
+
11 if ((*magic) == pe::S_DOS || (*magic) == pe::S_DOS2) {
12 return true;
13 }
14
15 return false;
16}
+
17
+
19{
-
20 Executable *exe = NULL;
-
21 if (signatureMatches(buf) == false) return NULL;
+ +
21 if (signatureMatches(buf) == false) return NULL;
22
23 try {
-
24 exe = new DOSExe(buf);
-
25 } catch (ExeException &e) {
+
24 exe = new DOSExe(buf);
+
25 } catch (ExeException &e) {
26 //
27 }
-
28 return exe;
+
28 return exe;
29}
+
30
31//-------------------------------------------------------------
32
- -
34 : MappedExe(v_buf, Executable::BITS_16), dosHdrWrapper(NULL)
+
+ +
34 : MappedExe(v_buf, Executable::BITS_16), dosHdrWrapper(NULL)
35{
36 wrap(buf);
37}
+
38
- +
+
40{
41 this->dosHdrWrapper = new DosHdrWrapper(this);
42
-
43 m_dosHdr = (IMAGE_DOS_HEADER*) getContentAt(0, sizeof(IMAGE_DOS_HEADER));
-
44 if (m_dosHdr == NULL) throw ExeException("Could not Wrap!");
+ +
44 if (m_dosHdr == NULL) throw ExeException("Could not Wrap!");
45
-
46 WORD* magic = (WORD*) this->dosHdrWrapper->getFieldPtr(DosHdrWrapper::MAGIC);
+
47
-
48 if (this->dosHdrWrapper->getPtr() == NULL || magic == NULL) {
+
48 if (this->dosHdrWrapper->getPtr() == NULL || magic == NULL) {
49 throw ExeException("Could not Wrap!");
50 }
51
-
52 if ((*magic) != pe::S_DOS && (*magic) != pe::S_DOS2) {
+
52 if ((*magic) != pe::S_DOS && (*magic) != pe::S_DOS2) {
53 Logger::append(Logger::D_WARNING, "It is not a DOS file!\n");
54 throw ExeException("It is not a DOS file!");
55 }
56 this->wrappers[WR_DOS_HDR] = this->dosHdrWrapper;
57}
+
58
+
60{
-
61 LONG* lfnew = (LONG*) this->dosHdrWrapper->getFieldPtr(DosHdrWrapper::LFNEW);
-
62 if (lfnew == NULL) return 0;
+ +
62 if (lfnew == NULL) return 0;
63
64 return static_cast<offset_t>(*lfnew);
65}
+
66
+
INT_TYPE _getNumValue(void *ptr)
uint64_t offset_t
@@ -172,7 +188,7 @@ $(function() {
diff --git a/_d_o_s_exe_8h.html b/_d_o_s_exe_8h.html index fd62715c..c6a60b7e 100644 --- a/_d_o_s_exe_8h.html +++ b/_d_o_s_exe_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/DOSExe.h File Reference @@ -30,7 +30,7 @@ - + +
5
6#define DOS_PARAGRAPH 0x10
7
+
8class DOSExeBuilder: public ExeBuilder {
9public:
10 DOSExeBuilder() : ExeBuilder() {}
11 virtual bool signatureMatches(AbstractByteBuffer *buf);
12 virtual Executable* build(AbstractByteBuffer *buf);
-
13 QString typeName() { return "MZ"; }
+
13 QString typeName() { return "MZ"; }
14};
+
15
16//-------------------------------------------------------------
17
+
18class DOSExe : public MappedExe
19{
20public:
+
21 enum WRAPPERS {
25 };
+
26
-
27 DOSExe(AbstractByteBuffer *v_buf);
+
27 DOSExe(AbstractByteBuffer *v_buf);
28 virtual ~DOSExe() { }
29
30 // inherited from Executable:
31 //
32 // FileAddr <-> RVA
-
33 virtual offset_t rawToRva(offset_t raw) { return (raw < codeOffset()) ? INVALID_ADDR : raw - codeOffset(); }
-
34 virtual offset_t rvaToRaw(offset_t rva) { return rva + codeOffset(); } //TODO
+
33 virtual offset_t rawToRva(offset_t raw) { return (raw < codeOffset()) ? INVALID_ADDR : raw - codeOffset(); }
+
34 virtual offset_t rvaToRaw(offset_t rva) { return rva + codeOffset(); } //TODO
35
-
36 virtual bufsize_t getMappedSize(Executable::addr_type aType)
+
+
37 {
-
38 if (aType == Executable::RAW)
+
39 return getContentSize();
40 return moduleSize() - codeOffset();
41 }
+
42
-
43 virtual bufsize_t getAlignment(Executable::addr_type aType) const { return 0; } //TODO
-
44 virtual offset_t getImageBase(bool recalculate = false) { return m_dosHdr->e_cs; }
-
45 virtual offset_t getEntryPoint(Executable::addr_type aType = Executable::RVA) { return codeOffset() + m_dosHdr->e_ip; }
+
43 virtual bufsize_t getAlignment(Executable::addr_type aType) const { return 0; } //TODO
+
44 virtual offset_t getImageBase(bool recalculate = false) { return m_dosHdr->e_cs; }
+
45 virtual offset_t getEntryPoint(Executable::addr_type aType = Executable::RVA) { return codeOffset() + m_dosHdr->e_ip; }
46
47 //---
48 // DOS Exe only:
@@ -130,22 +142,26 @@ $(function() {
51
52protected:
53 offset_t codeOffset() { return static_cast<offset_t> (m_dosHdr->e_cparhdr) * DOS_PARAGRAPH; }
+
55 {
-
56 const size_t PAGE_SIZE = 0x200;
-
57 WORD size = m_dosHdr->e_cp * PAGE_SIZE;
+
56 const size_t PAGE_SIZE = 0x200;
+
57 WORD size = m_dosHdr->e_cp * PAGE_SIZE;
58 if (m_dosHdr->e_cblp ) {
-
59 WORD trimSize = PAGE_SIZE - m_dosHdr->e_cblp;
-
60 size -= trimSize;
+
59 WORD trimSize = PAGE_SIZE - m_dosHdr->e_cblp;
+
60 size -= trimSize;
61 }
62 return static_cast<bufsize_t> (size);
63 }
+
64
-
65 virtual void wrap(AbstractByteBuffer *v_buf);
+
65 virtual void wrap(AbstractByteBuffer *v_buf);
66
67 DosHdrWrapper *dosHdrWrapper;
-
68 IMAGE_DOS_HEADER* m_dosHdr;
+
68 IMAGE_DOS_HEADER* m_dosHdr;
69};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -188,7 +204,7 @@ $(function() { diff --git a/_data_dir_entry_wrapper_8cpp.html b/_data_dir_entry_wrapper_8cpp.html index 8a96ddb4..edfe4092 100644 --- a/_data_dir_entry_wrapper_8cpp.html +++ b/_data_dir_entry_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/DataDirEntryWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
2#include "pe/PEFile.h"
3
-
4DataDirEntryWrapper::DataDirEntryWrapper(PEFile* pe, pe:: dir_entry v_entryType)
-
5 : PENodeWrapper(pe), entryType(v_entryType)
+
+ +
5 : PENodeWrapper(pe), entryType(v_entryType)
6{
7 wrap();
8}
+
9
- +
+
11{
12
-
13 if (m_PE == NULL) return NULL;
+
13 if (m_PE == NULL) return NULL;
14
-
15 IMAGE_DATA_DIRECTORY *d = m_PE->getDataDirectory();
-
16 return d;
+ +
16 return d;
17}
+
18
+
20{
- -
22 const size_t recordsCount = dDir ? dDir->getDirsCount() : 0;
+ +
22 const size_t recordsCount = dDir ? dDir->getDirsCount() : 0;
23 if (this->entryType >= recordsCount) return INVALID_ADDR;
24
-
25 IMAGE_DATA_DIRECTORY *d = getDataDirectory();
-
26 if (!d) return INVALID_ADDR;
+ +
26 if (!d) return INVALID_ADDR;
27
-
28 offset_t rva = static_cast<offset_t>(d[this->entryType].VirtualAddress);
+
28 offset_t rva = static_cast<offset_t>(d[this->entryType].VirtualAddress);
29 if (rva == 0) return INVALID_ADDR;
-
30 return rva;
+
30 return rva;
31}
+
32
- +
+
34{
- -
36 const size_t recordsCount = dDir ? dDir->getDirsCount() : 0;
+ +
36 const size_t recordsCount = dDir ? dDir->getDirsCount() : 0;
37 if (this->entryType >= recordsCount) return 0;
38
-
39 IMAGE_DATA_DIRECTORY *d = getDataDirectory();
-
40 if (!d) return 0;
+ +
40 if (!d) return 0;
41
-
42 bufsize_t dirSize = static_cast<bufsize_t>(d[this->entryType].Size);
+
42 bufsize_t dirSize = static_cast<bufsize_t>(d[this->entryType].Size);
43 if (!trimToExeSize) {
-
44 return dirSize;
+
44 return dirSize;
45 }
46
47 if (!this->m_Exe) return 0; // should never happen
48
-
49 offset_t dirRva = d[this->entryType].VirtualAddress;
-
50 offset_t dirRaw = this->m_Exe->rvaToRaw(dirRva);
-
51 if (dirRaw == INVALID_ADDR) {
+
49 offset_t dirRva = d[this->entryType].VirtualAddress;
+
50 offset_t dirRaw = this->m_Exe->rvaToRaw(dirRva);
+
51 if (dirRaw == INVALID_ADDR) {
52 return 0;
53 }
-
54 bufsize_t fullSize = this->m_Exe->getContentSize();
-
55 bufsize_t remainingSize = bufsize_t(fullSize - dirRaw);
+ +
56
-
57 return (dirSize < remainingSize) ? dirSize : remainingSize;
+
58}
+
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -160,7 +174,7 @@ $(function() {
diff --git a/_data_dir_entry_wrapper_8h.html b/_data_dir_entry_wrapper_8h.html index 355f3eab..de093959 100644 --- a/_data_dir_entry_wrapper_8h.html +++ b/_data_dir_entry_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/DataDirEntryWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
5class PEFile;
6
7
+
8class DataDirEntryWrapper : public PENodeWrapper
9{
10public:
-
11 IMAGE_DATA_DIRECTORY* getDataDirectory();
+
11 IMAGE_DATA_DIRECTORY* getDataDirectory();
12
13 offset_t getDirEntryAddress();
-
14 bufsize_t getDirEntrySize(bool trimToExeSize=false);
+
14 bufsize_t getDirEntrySize(bool trimToExeSize=false);
15 int getDirEntryType() { return this->entryType; }
16
17protected:
-
18 DataDirEntryWrapper(PEFile* pe, pe:: dir_entry v_entryType);
+
18 DataDirEntryWrapper(PEFile* pe, pe:: dir_entry v_entryType);
19
20 int entryType;
21
22friend class PEFile;
23};
+
24
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
PENodeWrapper.h
@@ -115,7 +123,7 @@ $(function() { diff --git a/_data_dir_wrapper_8cpp.html b/_data_dir_wrapper_8cpp.html index 187bdd42..9205e337 100644 --- a/_data_dir_wrapper_8cpp.html +++ b/_data_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/DataDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "pe/DataDirWrapper.h"
2#include "pe/PEFile.h"
3
+
5{
-
6 if (m_PE == NULL) return NULL;
+
6 if (m_PE == NULL) return NULL;
7
-
8 const offset_t myOff = m_PE->peDataDirOffset();
-
9 IMAGE_DATA_DIRECTORY* ptr = (IMAGE_DATA_DIRECTORY*) m_Exe->getContentAt(myOff, getSize());
+ +
10 return ptr;
11}
+
12
+
14{
-
15 if (m_PE == NULL) return 0;
+
15 if (m_PE == NULL) return 0;
16 const size_t count = getDirsCount();
-
17 const bufsize_t size = sizeof(IMAGE_DATA_DIRECTORY) * count;
+
17 const bufsize_t size = sizeof(IMAGE_DATA_DIRECTORY) * count;
18 return size;
19}
+
20
+
22{
-
23 if (m_PE == NULL) return 0;
+
23 if (m_PE == NULL) return 0;
25 if (!optHdr) return 0;
-
26 bool isOk = false;
-
27 size_t count = optHdr->getNumValue(OptHdrWrapper::RVAS_SIZES_NUM, &isOk);
-
28 if (!isOk) return 0;
+
26 bool isOk = false;
+
27 size_t count = optHdr->getNumValue(OptHdrWrapper::RVAS_SIZES_NUM, &isOk);
+
28 if (!isOk) return 0;
29 if (count > pe::DIR_ENTRIES_COUNT) {
30 count = pe::DIR_ENTRIES_COUNT;
31 }
32 return count;
33}
+
34
-
35void* DataDirWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
36{
-
37 if (fieldId >= getDirsCount()) {
+
37 if (fieldId >= getDirsCount()) {
38 return getPtr(); // invalid fieldID, give default
39 }
40
-
41 IMAGE_DATA_DIRECTORY* dataDir = (IMAGE_DATA_DIRECTORY*) getPtr();
-
42 if (dataDir == NULL) return NULL;
+ +
42 if (dataDir == NULL) return NULL;
43
-
44 switch (subField) {
+
44 switch (subField) {
45 case ADDRESS :
-
46 return (void*)(&dataDir[fieldId].VirtualAddress);
+
46 return (void*)(&dataDir[fieldId].VirtualAddress);
47 case SIZE :
-
48 return (void*)(&dataDir[fieldId].Size);
+
48 return (void*)(&dataDir[fieldId].Size);
49 }
-
50 return (void*)(&dataDir[fieldId].VirtualAddress);
+
50 return (void*)(&dataDir[fieldId].VirtualAddress);
51}
+
52
-
53bufsize_t DataDirWrapper::getFieldSize(size_t fieldId, size_t subField)
+
+
54{
-
55 if (fieldId >= getDirsCount()) return getSize();
+
55 if (fieldId >= getDirsCount()) return getSize();
56
-
57 IMAGE_DATA_DIRECTORY* dir = (IMAGE_DATA_DIRECTORY*) getPtr();
-
58 if (dir == NULL) return 0;
+ +
58 if (dir == NULL) return 0;
59
-
60 IMAGE_DATA_DIRECTORY record = dir[fieldId];
+
61
-
62 switch (subField) {
+
62 switch (subField) {
63 case ADDRESS :
-
64 return sizeof(record.VirtualAddress);
+
64 return sizeof(record.VirtualAddress);
65 case SIZE :
-
66 return sizeof(record.Size);
+
66 return sizeof(record.Size);
67 }
-
68 return sizeof(record.VirtualAddress) + sizeof(record.Size);
+
68 return sizeof(record.VirtualAddress) + sizeof(record.Size);
69}
+
70
-
71QString DataDirWrapper::getFieldName(size_t fieldId)
+
+
72{
-
73 switch (fieldId) {
+
73 switch (fieldId) {
74 case pe::DIR_EXPORT: return "Export Directory";
75 case pe::DIR_IMPORT: return "Import Directory";
76 case pe::DIR_RESOURCE : return "Resource Directory";
@@ -168,14 +184,18 @@ $(function() {
89 }
90 return "";
91}
+
92
- +
+
94{
-
95 if (subField != ADDRESS) return Executable::NOT_ADDR;
+
96
-
97 if (fieldId == pe::DIR_SECURITY) return Executable::RAW;
+
97 if (fieldId == pe::DIR_SECURITY) return Executable::RAW;
98 return Executable::RVA;
99}
+
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
uint64_t offset_t
@@ -205,7 +225,7 @@ $(function() {
diff --git a/_data_dir_wrapper_8h.html b/_data_dir_wrapper_8h.html index f80c9b9b..c26f7578 100644 --- a/_data_dir_wrapper_8h.html +++ b/_data_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/DataDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include "PENodeWrapper.h"
4
+
5class DataDirWrapper : public PEElementWrapper
6{
7public:
+
8 enum DataDirSID {
11 SIZE = 1,
13 };
+
14
15 DataDirWrapper(PEFile *pe) : PEElementWrapper(pe) {}
16 virtual size_t getSubFieldsCount() { return COUNTER; }
@@ -97,18 +105,20 @@ $(function() {
18 /* full structure boundaries */
19 virtual void* getPtr();
20 virtual bufsize_t getSize();
-
21 virtual QString getName() { return "Data Directory"; }
+
21 virtual QString getName() { return "Data Directory"; }
22 virtual size_t getFieldsCount() { return getDirsCount(); }
23
24 /* specific field boundaries */
-
25 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
26 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField);
-
27 virtual QString getFieldName(size_t fieldId);
-
28 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
25 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
26 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField);
+
27 virtual QString getFieldName(size_t fieldId);
+
28 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
29
30 /*specific to this wrapper*/
31 size_t getDirsCount();
32};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
PENodeWrapper.h
@@ -135,7 +145,7 @@ $(function() { diff --git a/_debug_dir_wrapper_8cpp.html b/_debug_dir_wrapper_8cpp.html index f5984601..eb58dc17 100644 --- a/_debug_dir_wrapper_8cpp.html +++ b/_debug_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/DebugDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
16
17*/
18
-
19bool DebugDirWrapper::loadNextEntry(size_t cntr)
+
+
19bool DebugDirWrapper::loadNextEntry(size_t cntr)
20{
-
21 const size_t dirSize = this->getSize();
-
22 const size_t entriesCount = dirSize / sizeof(IMAGE_DEBUG_DIRECTORY);
-
23 if (cntr >= entriesCount) {
+
21 const size_t dirSize = this->getSize();
+
22 const size_t entriesCount = dirSize / sizeof(IMAGE_DEBUG_DIRECTORY);
+
23 if (cntr >= entriesCount) {
24 return false;
25 }
26
-
27 DebugDirEntryWrapper* dbgEntry = new DebugDirEntryWrapper(m_PE, this, cntr);
-
28 if (!dbgEntry || !dbgEntry->getPtr()) {
-
29 delete dbgEntry;
+
27 DebugDirEntryWrapper* dbgEntry = new DebugDirEntryWrapper(m_PE, this, cntr);
+
28 if (!dbgEntry || !dbgEntry->getPtr()) {
+
29 delete dbgEntry;
30 return false;
31 }
-
32 entries.push_back(dbgEntry);
+
32 entries.push_back(dbgEntry);
33 return true;
34}
+
35
+
36bool DebugDirWrapper::isRepro()
37{
-
38 for (auto itr = entries.begin(); itr != entries.end(); ++itr) {
-
39 DebugDirEntryWrapper* dbgEntry = dynamic_cast<DebugDirEntryWrapper*>(*itr);
-
40 if (!dbgEntry) continue;
+
38 for (auto itr = entries.begin(); itr != entries.end(); ++itr) {
+
39 DebugDirEntryWrapper* dbgEntry = dynamic_cast<DebugDirEntryWrapper*>(*itr);
+
40 if (!dbgEntry) continue;
41
-
42 bool isOk = false;
-
43 uint64_t typeVal = dbgEntry->getNumValue(DebugDirEntryWrapper::TYPE, &isOk);
-
44 if (isOk && typeVal == pe::DT_REPRO) {
+
42 bool isOk = false;
+
43 uint64_t typeVal = dbgEntry->getNumValue(DebugDirEntryWrapper::TYPE, &isOk);
+
44 if (isOk && typeVal == pe::DT_REPRO) {
45 return true;
46 }
47 }
48 return false;
49}
+
50//---
51
+
52bool DebugDirEntryWrapper::wrap()
53{
54 if (this->getDebugStruct()) {
-
55 DebugDirCVEntryWrapper *cvWrapper = new DebugDirCVEntryWrapper(m_Exe, this);
+
55 DebugDirCVEntryWrapper *cvWrapper = new DebugDirCVEntryWrapper(m_Exe, this);
56 this->entries.push_back(cvWrapper);
57 }
58 return true;
59}
+
60
+
61void* DebugDirEntryWrapper::getPtr()
62{
63 return debugDir();
64}
+
65
+
66bufsize_t DebugDirEntryWrapper::getSize()
67{
68 if (!getPtr()) return 0;
-
69 return sizeof(IMAGE_DEBUG_DIRECTORY);
+
69 return sizeof(IMAGE_DEBUG_DIRECTORY);
70}
+
71
-
72void* DebugDirEntryWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
72void* DebugDirEntryWrapper::getFieldPtr(size_t fId, size_t subField)
73{
-
74 IMAGE_DEBUG_DIRECTORY* d = debugDir();
-
75 if (d == NULL) return NULL;
+
74 IMAGE_DEBUG_DIRECTORY* d = debugDir();
+
75 if (d == NULL) return NULL;
76
-
77 switch (fId) {
-
78 case CHARACTERISTIC: return &d->Characteristics;
-
79 case TIMESTAMP: return &d->TimeDateStamp;
-
80 case MAJOR_VER: return &d->MajorVersion;
-
81 case MINOR_VER: return &d->MinorVersion;
-
82 case TYPE: return &d->Type;
-
83 case DATA_SIZE: return &d->SizeOfData;
-
84 case RAW_DATA_ADDR: return &d->AddressOfRawData;
-
85 case RAW_DATA_PTR: return &d->PointerToRawData;
+
77 switch (fId) {
+
78 case CHARACTERISTIC: return &d->Characteristics;
+
79 case TIMESTAMP: return &d->TimeDateStamp;
+
80 case MAJOR_VER: return &d->MajorVersion;
+
81 case MINOR_VER: return &d->MinorVersion;
+
82 case TYPE: return &d->Type;
+
83 case DATA_SIZE: return &d->SizeOfData;
+
84 case RAW_DATA_ADDR: return &d->AddressOfRawData;
+
85 case RAW_DATA_PTR: return &d->PointerToRawData;
86 }
87 return this->getPtr();
88}
+
89
-
90QString DebugDirEntryWrapper::getFieldName(size_t fieldId)
+
+
90QString DebugDirEntryWrapper::getFieldName(size_t fieldId)
91{
92 switch (fieldId) {
93 case CHARACTERISTIC: return "Characteristics";
@@ -180,19 +198,23 @@ $(function() {
101 }
102 return getName();
103}
+
104
-
105Executable::addr_type DebugDirEntryWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
105Executable::addr_type DebugDirEntryWrapper::containsAddrType(size_t fieldId, size_t subField)
106{
-
107 switch (fieldId) {
+
107 switch (fieldId) {
108 case RAW_DATA_ADDR: return Executable::RVA;
109 case RAW_DATA_PTR: return Executable::RAW;
110 }
111 return Executable::NOT_ADDR;
112}
+
113
-
114QString DebugDirEntryWrapper::translateType(int type)
+
+
114QString DebugDirEntryWrapper::translateType(int type)
115{
-
116 switch (type) {
+
116 switch (type) {
117 case pe::DT_UNKNOWN : return "unknown";
118 case pe::DT_COFF : return "COFF";
119 case pe::DT_CODEVIEW : return "Visual C++ (CodeView)";
@@ -213,170 +235,190 @@ $(function() {
134 }
135 return "<Unknown>";
136}
+
137
-
138QString DebugDirEntryWrapper::translateFieldContent(size_t fieldId)
+
+
138QString DebugDirEntryWrapper::translateFieldContent(size_t fieldId)
139{
-
140 if (fieldId != TYPE) return "";
+
140 if (fieldId != TYPE) return "";
141
-
142 IMAGE_DEBUG_DIRECTORY* d = debugDir();
-
143 if (d == NULL) return NULL;
+
142 IMAGE_DEBUG_DIRECTORY* d = debugDir();
+
143 if (d == NULL) return NULL;
144
-
145 return translateType(d->Type);
+
145 return translateType(d->Type);
146}
+
147
-
148BYTE* DebugDirEntryWrapper::getDebugStruct()
+
+
148BYTE* DebugDirEntryWrapper::getDebugStruct()
149{
-
150 IMAGE_DEBUG_DIRECTORY* d = this->debugDir();
-
151 if (d == NULL) return NULL;
-
152 if (d->Type != DT_CODEVIEW) {
-
153 return NULL;
+
150 IMAGE_DEBUG_DIRECTORY* d = this->debugDir();
+
151 if (d == NULL) return NULL;
+
152 if (d->Type != DT_CODEVIEW) {
+
153 return NULL;
154 }
-
155 offset_t rva = d->PointerToRawData;
-
156 size_t dirSize = d->SizeOfData;
-
157 return m_Exe->getContentAt(rva, Executable::RAW, dirSize);
+
155 offset_t rva = d->PointerToRawData;
+
156 size_t dirSize = d->SizeOfData;
+
157 return m_Exe->getContentAt(rva, Executable::RAW, dirSize);
158}
+
159
-
160DEBUG_RSDSI* DebugDirEntryWrapper::getRDSI()
+
+
160DEBUG_RSDSI* DebugDirEntryWrapper::getRDSI()
161{
-
162 BYTE* debugStr = getDebugStruct();
-
163 IMAGE_DEBUG_DIRECTORY* d = debugDir();
-
164 if (!debugStr || !d) return NULL;
-
165 if (d->SizeOfData < sizeof(DEBUG_RSDSI)) {
-
166 return NULL;
+
162 BYTE* debugStr = getDebugStruct();
+
163 IMAGE_DEBUG_DIRECTORY* d = debugDir();
+
164 if (!debugStr || !d) return NULL;
+
165 if (d->SizeOfData < sizeof(DEBUG_RSDSI)) {
+
166 return NULL;
167 }
-
168 DEBUG_RSDSI* rdsi = (DEBUG_RSDSI*)debugStr;
-
169 if (rdsi->dwSig == CV_SIGNATURE_RSDS) {
-
170 return rdsi;
+
168 DEBUG_RSDSI* rdsi = (DEBUG_RSDSI*)debugStr;
+
169 if (rdsi->dwSig == CV_SIGNATURE_RSDS) {
+
170 return rdsi;
171 }
-
172 return NULL;
+
172 return NULL;
173}
+
174
+
175pe::DEBUG_NB10* DebugDirEntryWrapper::getNB10()
176{
-
177 BYTE* debugStr = getDebugStruct();
-
178 IMAGE_DEBUG_DIRECTORY* d = debugDir();
-
179 if (!debugStr || !d) return NULL;
-
180 if (d->SizeOfData < sizeof(DEBUG_NB10)) {
-
181 return NULL;
+
177 BYTE* debugStr = getDebugStruct();
+
178 IMAGE_DEBUG_DIRECTORY* d = debugDir();
+
179 if (!debugStr || !d) return NULL;
+
180 if (d->SizeOfData < sizeof(DEBUG_NB10)) {
+
181 return NULL;
182 }
-
183 DEBUG_NB10* nb = (DEBUG_NB10*)debugStr;
-
184 if (nb->cvHdr.CvSignature == CV_SIGNATURE_NB10) {
-
185 return nb;
+
183 DEBUG_NB10* nb = (DEBUG_NB10*)debugStr;
+
184 if (nb->cvHdr.CvSignature == CV_SIGNATURE_NB10) {
+
185 return nb;
186 }
-
187 return NULL;
+
187 return NULL;
188}
+
189//-------------------------
190
+
191void* DebugDirCVEntryWrapper::getPtr()
192{
-
193 DEBUG_RSDSI* rdsi = parentDir->getRDSI();
-
194 if (rdsi) {
-
195 return rdsi;
+
193 DEBUG_RSDSI* rdsi = parentDir->getRDSI();
+
194 if (rdsi) {
+
195 return rdsi;
196 }
197 return parentDir->getNB10();
198}
+
199
+
200bufsize_t DebugDirCVEntryWrapper::getSize()
201{
-
202 IMAGE_DEBUG_DIRECTORY* d = parentDir->debugDir();
-
203 if (d == NULL) return 0;
-
204 return d->SizeOfData;
+
202 IMAGE_DEBUG_DIRECTORY* d = parentDir->debugDir();
+
203 if (d == NULL) return 0;
+
204 return d->SizeOfData;
205}
+
206
-
207void* DebugDirCVEntryWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
207void* DebugDirCVEntryWrapper::getFieldPtr(size_t fId, size_t subField)
208{
-
209 DEBUG_RSDSI* rdsi = parentDir->getRDSI();
-
210 if (rdsi) {
-
211 switch (fId) {
-
212 case F_CVDBG_SIGN: return &rdsi->dwSig;
-
213 case F_CVDBG_GUID: return &rdsi->guidSig;
-
214 case F_CVDBG_AGE: return &rdsi->age;
-
215 case F_CVDBG_PDB: return &rdsi->szPdb;
+
209 DEBUG_RSDSI* rdsi = parentDir->getRDSI();
+
210 if (rdsi) {
+
211 switch (fId) {
+
212 case F_CVDBG_SIGN: return &rdsi->dwSig;
+
213 case F_CVDBG_GUID: return &rdsi->guidSig;
+
214 case F_CVDBG_AGE: return &rdsi->age;
+
215 case F_CVDBG_PDB: return &rdsi->szPdb;
216 }
-
217 return rdsi;
+
217 return rdsi;
218 }
-
219 DEBUG_NB10* dbg = parentDir->getNB10();
-
220 if (dbg) {
-
221 switch (fId) {
-
222 case F_CVDBG_SIGN: return &dbg->cvHdr.CvSignature;
-
223 case F_CVDBG_GUID: return &dbg->Signature;
-
224 case F_CVDBG_AGE: return &dbg->Age;
-
225 case F_CVDBG_PDB: return &dbg->PdbFileName;
+
219 DEBUG_NB10* dbg = parentDir->getNB10();
+
220 if (dbg) {
+
221 switch (fId) {
+
222 case F_CVDBG_SIGN: return &dbg->cvHdr.CvSignature;
+
223 case F_CVDBG_GUID: return &dbg->Signature;
+
224 case F_CVDBG_AGE: return &dbg->Age;
+
225 case F_CVDBG_PDB: return &dbg->PdbFileName;
226 }
-
227 return dbg;
+
227 return dbg;
228 }
-
229 return NULL;
+
229 return NULL;
230}
+
231
-
232QString DebugDirCVEntryWrapper::getGuidString()
+
+
232QString DebugDirCVEntryWrapper::getGuidString()
233{
-
234 DEBUG_RSDSI* rdsi = parentDir->getRDSI();
-
235 if (rdsi) {
-
236 QString chunk4 = "";
-
237 for (size_t i = 0; i < sizeof(rdsi->guidSig.Data4); i++) {
-
238 QString out;
+
234 DEBUG_RSDSI* rdsi = parentDir->getRDSI();
+
235 if (rdsi) {
+
236 QString chunk4 = "";
+
237 for (size_t i = 0; i < sizeof(rdsi->guidSig.Data4); i++) {
+
238 QString out;
239#if QT_VERSION >= 0x050000
-
240 out = QString().asprintf("%02X", rdsi->guidSig.Data4[i]);
+
240 out = QString().asprintf("%02X", rdsi->guidSig.Data4[i]);
241#else
-
242 out = QString().sprintf("%02X", rdsi->guidSig.Data4[i]);
+
242 out = QString().sprintf("%02X", rdsi->guidSig.Data4[i]);
243#endif
-
244 chunk4 += out;
+
244 chunk4 += out;
245 }
-
246 QString chunk5 = "";
-
247 for (size_t i = 0; i < sizeof(rdsi->guidSig.Data5); i++) {
-
248 QString out;
+
246 QString chunk5 = "";
+
247 for (size_t i = 0; i < sizeof(rdsi->guidSig.Data5); i++) {
+
248 QString out;
249#if QT_VERSION >= 0x050000
-
250 out = QString().asprintf("%02X", rdsi->guidSig.Data5[i]);
+
250 out = QString().asprintf("%02X", rdsi->guidSig.Data5[i]);
251#else
-
252 out = QString().sprintf("%02X", rdsi->guidSig.Data5[i]);
+
252 out = QString().sprintf("%02X", rdsi->guidSig.Data5[i]);
253#endif
-
254 chunk5 += out;
+
254 chunk5 += out;
255 }
-
256 QString out;
+
256 QString out;
257#if QT_VERSION >= 0x050000
-
258 out = QString().asprintf("%08X-%04X-%04X-",
-
259 rdsi->guidSig.Data1,
-
260 rdsi->guidSig.Data2,
-
261 rdsi->guidSig.Data3);
+
258 out = QString().asprintf("%08X-%04X-%04X-",
+
259 rdsi->guidSig.Data1,
+
260 rdsi->guidSig.Data2,
+
261 rdsi->guidSig.Data3);
262#else
-
263 out = QString().sprintf("%08X-%04X-%04X-",
-
264 rdsi->guidSig.Data1,
-
265 rdsi->guidSig.Data2,
-
266 rdsi->guidSig.Data3);
+
263 out = QString().sprintf("%08X-%04X-%04X-",
+
264 rdsi->guidSig.Data1,
+
265 rdsi->guidSig.Data2,
+
266 rdsi->guidSig.Data3);
267#endif
-
268 return "{" + out + chunk4 + "-" + chunk5 + "}";
+
268 return "{" + out + chunk4 + "-" + chunk5 + "}";
269 }
270
-
271 DEBUG_NB10* dbg = parentDir->getNB10();
-
272 if (dbg) {
-
273 QString out;
+
271 DEBUG_NB10* dbg = parentDir->getNB10();
+
272 if (dbg) {
+
273 QString out;
274#if QT_VERSION >= 0x050000
-
275 out = QString().asprintf("%04X", dbg->Signature);
+
275 out = QString().asprintf("%04X", dbg->Signature);
276#else
-
277 out = QString().sprintf("%04X", dbg->Signature);
+
277 out = QString().sprintf("%04X", dbg->Signature);
278#endif
-
279 return out;
+
279 return out;
280 }
281 return "";
282}
+
283
-
284QString DebugDirCVEntryWrapper::getSignature()
+
+
284QString DebugDirCVEntryWrapper::getSignature()
285{
-
286 DEBUG_RSDSI* rdsi = (DEBUG_RSDSI*)this->getPtr();
+
286 DEBUG_RSDSI* rdsi = (DEBUG_RSDSI*)this->getPtr();
287 if (!rdsi) return "";
288
-
289 QString out;
+
289 QString out;
290#if QT_VERSION >= 0x050000
-
291 out = QString().asprintf("%.4s", (char*)&rdsi->dwSig);
+
291 out = QString().asprintf("%.4s", (char*)&rdsi->dwSig);
292#else
-
293 out = QString().sprintf("%.4s", (char*)&rdsi->dwSig);
+
293 out = QString().sprintf("%.4s", (char*)&rdsi->dwSig);
294#endif
-
295 return out;
+
295 return out;
296}
+
297
-
298QString DebugDirCVEntryWrapper::getFieldName(size_t fId)
+
+
298QString DebugDirCVEntryWrapper::getFieldName(size_t fId)
299{
-
300 switch (fId) {
+
300 switch (fId) {
301 case F_CVDBG_SIGN: return "CvSig";
302 case F_CVDBG_GUID: return "Signature";
303 case F_CVDBG_AGE: return "Age";
@@ -384,24 +426,28 @@ $(function() {
305 }
306 return "";
307}
+
308
-
309QString DebugDirCVEntryWrapper::translateFieldContent(size_t fId)
+
+
309QString DebugDirCVEntryWrapper::translateFieldContent(size_t fId)
310{
-
311 DEBUG_RSDSI* rdsi = parentDir->getRDSI();
-
312 DEBUG_NB10* dbg = parentDir->getNB10();
-
313 if (!rdsi && !dbg) return "";
+
311 DEBUG_RSDSI* rdsi = parentDir->getRDSI();
+
312 DEBUG_NB10* dbg = parentDir->getNB10();
+
313 if (!rdsi && !dbg) return "";
314
-
315 char *pdb = NULL;
-
316 if (rdsi) pdb = (char*)rdsi->szPdb;
-
317 if (dbg) pdb = (char*)dbg->PdbFileName;
+
315 char *pdb = NULL;
+
316 if (rdsi) pdb = (char*)rdsi->szPdb;
+
317 if (dbg) pdb = (char*)dbg->PdbFileName;
318
-
319 switch (fId) {
+
319 switch (fId) {
320 case F_CVDBG_SIGN: return getSignature();
321 case F_CVDBG_GUID: return getGuidString();
-
322 case F_CVDBG_PDB: return pdb ? pdb : "";
+
322 case F_CVDBG_PDB: return pdb ? pdb : "";
323 }
324 return "";
325}
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
DebugDirWrapper.h
@@ -457,7 +503,7 @@ $(function() { diff --git a/_debug_dir_wrapper_8h.html b/_debug_dir_wrapper_8h.html index a36f0103..629504dd 100644 --- a/_debug_dir_wrapper_8h.html +++ b/_debug_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/DebugDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
4#include "pe_undoc.h"
5
6
+
7class DebugDirWrapper : public DataDirEntryWrapper
8{
9public:
+
-
11 : DataDirEntryWrapper(pe, pe::DIR_DEBUG) { wrap(); }
+
11 : DataDirEntryWrapper(pe, pe::DIR_DEBUG) { wrap(); }
+
12
13 virtual void* getPtr() { return getDebugDir(); }
14
+
16 {
17 return getDirEntrySize();
18 }
+
19
-
20 virtual QString getName() { return "Debug"; }
+
20 virtual QString getName() { return "Debug"; }
21
+
22 virtual size_t getFieldsCount()
23 {
24 return entries.size();
25 }
+
26
-
27 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
-
28 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField ); }
-
29 virtual QString getFieldName(size_t fieldId) { return getFieldName(fieldId, FIELD_NONE); }
-
30 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE) { return getSubfieldSize(fieldId, subField); }
+
27 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
+
28 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField ); }
+
29 virtual QString getFieldName(size_t fieldId) { return getFieldName(fieldId, FIELD_NONE); }
+
30 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE) { return getSubfieldSize(fieldId, subField); }
31
32 // debug dir only
33 bool isRepro();
34
35protected:
+
36 bool wrap()
37 {
38 clear();
39 if (!getDataDirectory()) {
40 return false;
41 }
-
42 const size_t LIMIT = (-1);
-
43 size_t cntr = 0;
-
44 for (cntr = 0; cntr < LIMIT; cntr++) {
-
45 if (loadNextEntry(cntr) == false) break;
+
42 const size_t LIMIT = (-1);
+
43 size_t cntr = 0;
+
44 for (cntr = 0; cntr < LIMIT; cntr++) {
+
45 if (loadNextEntry(cntr) == false) break;
46 }
47 return true;
48 }
+
49
-
50 virtual bool loadNextEntry(size_t cntr);
+
50 virtual bool loadNextEntry(size_t cntr);
51
-
52 IMAGE_DEBUG_DIRECTORY* getDebugDir(size_t index = 0)
+
+
53 {
-
54 const offset_t rva = getDirEntryAddress();
-
55 if (rva == INVALID_ADDR || rva == 0) {
-
56 return NULL;
+ +
55 if (rva == INVALID_ADDR || rva == 0) {
+
56 return NULL;
57 }
-
58 const size_t offset = index * sizeof(IMAGE_DEBUG_DIRECTORY);
-
59 return (IMAGE_DEBUG_DIRECTORY*) m_Exe->getContentAt((rva + offset), Executable::RVA, sizeof(IMAGE_DEBUG_DIRECTORY));
+
58 const size_t offset = index * sizeof(IMAGE_DEBUG_DIRECTORY);
+
60 }
+
61
62friend class DebugDirEntryWrapper;
63};
+
64
65
+
66class DebugDirEntryWrapper : public PENodeWrapper
67{
68public:
69
+
@@ -158,12 +177,15 @@ $(function() {
81 };
+
82
-
83 DebugDirEntryWrapper(PEFile *pe, DebugDirWrapper *rootDir, size_t entryNumber)
-
84 : PENodeWrapper(pe, rootDir, entryNumber), dbgRootDir(rootDir)
+
+ +
85 {
86 wrap();
87 }
+
88
89 ~DebugDirEntryWrapper() { clear(); }
90
@@ -172,32 +194,36 @@ $(function() {
93 virtual void* getPtr();
94 virtual bufsize_t getSize();
95
-
96 virtual QString getName()
+
+
96 virtual QString getName()
97 {
-
98 IMAGE_DEBUG_DIRECTORY* d = debugDir();
-
99 if (!d) return "";
-
100 return translateType(d->Type);
+ +
99 if (!d) return "";
+
100 return translateType(d->Type);
101 }
+
102
103 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
104 virtual size_t getSubFieldsCount() { return 1; }
105
-
106 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
107 virtual QString getFieldName(size_t fieldId);
-
108 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
106 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
107 virtual QString getFieldName(size_t fieldId);
+
108 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
109
-
110 QString translateType(int type);
-
111 QString translateFieldContent(size_t fieldId);
+
110 QString translateType(int type);
+
111 QString translateFieldContent(size_t fieldId);
112
113protected:
114
-
115 IMAGE_DEBUG_DIRECTORY* debugDir()
+
+
116 {
-
117 if (!dbgRootDir) return NULL;
+
117 if (!dbgRootDir) return NULL;
118 return this->dbgRootDir->getDebugDir(this->entryNum);
119 }
+
120
-
121 BYTE* getDebugStruct();
+
121 BYTE* getDebugStruct();
122 pe::DEBUG_RSDSI* getRDSI();
123 pe::DEBUG_NB10* getNB10();
124
@@ -205,12 +231,15 @@ $(function() {
126
127friend class DebugDirCVEntryWrapper;
128};
+
129
130
+
131class DebugDirCVEntryWrapper : public ExeNodeWrapper
132{
133public:
134 // fields :
+
135 enum FieldID {
@@ -219,34 +248,39 @@ $(function() {
142 };
+
143
-
144 DebugDirCVEntryWrapper(Executable* pe, DebugDirEntryWrapper *_parentDir)
-
145 : ExeNodeWrapper(pe, _parentDir, 0)
+
+ +
145 : ExeNodeWrapper(pe, _parentDir, 0)
146 {
-
147 this->parentDir = _parentDir;
+
147 this->parentDir = _parentDir;
148 }
+
149
150 // full structure boundaries
151 virtual void* getPtr();
152 virtual bufsize_t getSize();
153
-
154 virtual QString getName() { return "CodeView Info"; }
+
154 virtual QString getName() { return "CodeView Info"; }
155 virtual size_t getFieldsCount() { return getPtr() ? FIELD_COUNTER : 0; }
156 virtual size_t getSubFieldsCount() { return 1; }
157
158 // specific field boundaries
-
159 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
160 virtual QString getFieldName(size_t fieldId);
-
161 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::NOT_ADDR; }
+
159 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
160 virtual QString getFieldName(size_t fieldId);
+
161 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::NOT_ADDR; }
162
-
163 QString translateFieldContent(size_t fieldId);
+
163 QString translateFieldContent(size_t fieldId);
164
165 //this wrapper only:
-
166 QString getGuidString();
-
167 QString getSignature();
+
166 QString getGuidString();
+
167 QString getSignature();
168private:
169 DebugDirEntryWrapper* parentDir;
170};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -338,7 +372,7 @@ $(function() { diff --git a/_delay_imp_dir_wrapper_8cpp.html b/_delay_imp_dir_wrapper_8cpp.html index 1ce23bca..cb72b063 100644 --- a/_delay_imp_dir_wrapper_8cpp.html +++ b/_delay_imp_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/DelayImpDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
15} IMAGE_DELAY_LOAD, *LPIMAGE_DELAY_LOAD;
16*/
17
+
18bool DelayImpDirWrapper::is64()
19{
20 if (m_Exe->isBit32()) return false;
21 return true;
22}
+
23
+
24void* DelayImpDirWrapper::firstDelayLd(bufsize_t size)
25{
-
26 offset_t rva = getDirEntryAddress();
+
26 offset_t rva = getDirEntryAddress();
27
-
28 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, size);
-
29 if (ptr == NULL) return NULL;
+
28 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, size);
+
29 if (ptr == NULL) return NULL;
30
31 return ptr;
32}
+
33
-
34bool DelayImpDirWrapper::loadNextEntry(size_t cntr)
+
+
34bool DelayImpDirWrapper::loadNextEntry(size_t cntr)
35{
-
36 DelayImpEntryWrapper* imp = new DelayImpEntryWrapper(m_PE, this, cntr);
-
37 if (!imp || !imp->getPtr()) {
-
38 delete imp;
+
36 DelayImpEntryWrapper* imp = new DelayImpEntryWrapper(m_PE, this, cntr);
+
37 if (!imp || !imp->getPtr()) {
+
38 delete imp;
39 return false;
40 }
41 // TODO! do it in proper way!
-
42 bool isOk = false;
-
43 uint64_t offset = imp->getNumValue(DelayImpEntryWrapper::NAME, &isOk);
-
44 if (!isOk || offset == 0) {
-
45 delete imp;
+
42 bool isOk = false;
+
43 uint64_t offset = imp->getNumValue(DelayImpEntryWrapper::NAME, &isOk);
+
44 if (!isOk || offset == 0) {
+
45 delete imp;
46 return false;
47 }
-
48 entries.push_back(imp);
+
48 entries.push_back(imp);
49 return true;
50}
+
51
+
52void* DelayImpDirWrapper::getPtr()
53{
54 bufsize_t size = getEntrySize();
55 return firstDelayLd(size);
56}
+
57
+
58bufsize_t DelayImpDirWrapper::getSize()
59{
-
60 bufsize_t entriesNum = static_cast<bufsize_t>(this->getEntriesCount()) + 1; //entries + terminating field
-
61 return getEntrySize() * entriesNum;
+
60 bufsize_t entriesNum = static_cast<bufsize_t>(this->getEntriesCount()) + 1; //entries + terminating field
+
61 return getEntrySize() * entriesNum;
62}
+
63
+
64bufsize_t DelayImpDirWrapper::getEntrySize()
65{
66 return sizeof(pe::IMAGE_DELAY_LOAD);
67}
+
68
69//---------------------------------------------------------------------------
70
-
71IMAGE_IMPORT_BY_NAME* DelayImpEntryWrapper::getFirstImpByNamePtr()
+
+
71IMAGE_IMPORT_BY_NAME* DelayImpEntryWrapper::getFirstImpByNamePtr()
72{
-
73 bool isOk = false;
-
74 uint64_t value = this->getNumValue(INT, &isOk);
-
75 if(!isOk) return NULL;
+
73 bool isOk = false;
+
74 uint64_t value = this->getNumValue(INT, &isOk);
+
75 if(!isOk) return NULL;
76
-
77 Executable::addr_type aT = containsAddrType(INT);
-
78 BYTE *ptr = m_Exe->getContentAt(value, aT, sizeof(IMAGE_IMPORT_BY_NAME));
-
79 return (IMAGE_IMPORT_BY_NAME*) ptr;
+
77 Executable::addr_type aT = containsAddrType(INT);
+
78 BYTE *ptr = m_Exe->getContentAt(value, aT, sizeof(IMAGE_IMPORT_BY_NAME));
+
79 return (IMAGE_IMPORT_BY_NAME*) ptr;
80}
+
81
+
82bool DelayImpEntryWrapper::loadNextEntry(size_t entryNum)
83 {
-
84 DelayImpFuncWrapper* entry = new DelayImpFuncWrapper(this->m_PE, this, entryNum);
-
85 if (entry->getPtr() == NULL) {
-
86 delete entry;
+
84 DelayImpFuncWrapper* entry = new DelayImpFuncWrapper(this->m_PE, this, entryNum);
+
85 if (entry->getPtr() == NULL) {
+
86 delete entry;
87 return false;
88 }
-
89 bool isOk = false;
-
90 uint64_t thunk = entry->getNumValue(DelayImpFuncWrapper::NAMETHUNK_ADDR, &isOk);
-
91 if (!isOk || thunk == INVALID_ADDR || thunk == 0) {
-
92 delete entry;
+
89 bool isOk = false;
+
90 uint64_t thunk = entry->getNumValue(DelayImpFuncWrapper::NAMETHUNK_ADDR, &isOk);
+
91 if (!isOk || thunk == INVALID_ADDR || thunk == 0) {
+
92 delete entry;
93 return false;
94 }
95 this->entries.push_back(entry);
96
97 DelayImpDirWrapper *impDir = dynamic_cast<DelayImpDirWrapper*>(this->parentNode);
-
98 if (impDir) impDir->addMapping(entry);
+
98 if (impDir) impDir->addMapping(entry);
99 return true;
100 }
+
101
+
102void* DelayImpEntryWrapper::getPtr()
103{
104 DelayImpDirWrapper *parent = dynamic_cast<DelayImpDirWrapper*>(this->parentNode);
105 if (!parent) {
-
106 return NULL;
+
106 return NULL;
107 }
108
-
109 const size_t DL_SIZE = sizeof(pe::IMAGE_DELAY_LOAD);
-
110 pe::IMAGE_DELAY_LOAD* first = (pe::IMAGE_DELAY_LOAD*) parent->firstDelayLd(DL_SIZE);
-
111 if (!first) return NULL;
+
109 const size_t DL_SIZE = sizeof(pe::IMAGE_DELAY_LOAD);
+
110 pe::IMAGE_DELAY_LOAD* first = (pe::IMAGE_DELAY_LOAD*) parent->firstDelayLd(DL_SIZE);
+
111 if (!first) return NULL;
112
-
113 uint64_t descAddr = parent->getOffset(first);
-
114 if (descAddr == INVALID_ADDR) return NULL;
+
113 uint64_t descAddr = parent->getOffset(first);
+
114 if (descAddr == INVALID_ADDR) return NULL;
115
-
116 uint64_t entryOffset = descAddr + (this->entryNum * DL_SIZE);
-
117 if (entryOffset == INVALID_ADDR) return NULL;
+
116 uint64_t entryOffset = descAddr + (this->entryNum * DL_SIZE);
+
117 if (entryOffset == INVALID_ADDR) return NULL;
118
-
119 BYTE *content = this->m_Exe->getContentAt(entryOffset, Executable::RAW, DL_SIZE);
-
120 if (!content) return NULL;
+
119 BYTE *content = this->m_Exe->getContentAt(entryOffset, Executable::RAW, DL_SIZE);
+
120 if (!content) return NULL;
121
122 return (pe::IMAGE_DELAY_LOAD*) content;
123}
+
124
+
125bufsize_t DelayImpEntryWrapper::getSize()
126{
-
127 if (getPtr() == NULL) return 0;
+
127 if (getPtr() == NULL) return 0;
128 return sizeof(pe::IMAGE_DELAY_LOAD);
129}
+
130
-
131QString DelayImpEntryWrapper::getName()
+
+
131QString DelayImpEntryWrapper::getName()
132{
133 char* name = getLibraryName();
134 if (!name) return "";
-
135 return QString(name);
+
135 return QString(name);
136}
+
137
+
138char* DelayImpEntryWrapper::getLibraryName()
139{
-
140 bool isOk = false;
-
141 uint64_t offset = this->getNumValue(DelayImpEntryWrapper::NAME, &isOk);
-
142 if (!isOk) return NULL;
+
140 bool isOk = false;
+
141 uint64_t offset = this->getNumValue(DelayImpEntryWrapper::NAME, &isOk);
+
142 if (!isOk) return NULL;
143
-
144 Executable::addr_type aT = containsAddrType(NAME);
-
145 if (aT == Executable::NOT_ADDR) return NULL;
+
144 Executable::addr_type aT = containsAddrType(NAME);
+
145 if (aT == Executable::NOT_ADDR) return NULL;
146
-
147 char *ptr = (char*) m_Exe->getContentAt(offset, aT, 1);
-
148 if (!ptr) return NULL;
+
147 char *ptr = (char*) m_Exe->getContentAt(offset, aT, 1);
+
148 if (!ptr) return NULL;
149
150 return ptr;
151}
+
152
-
153void* DelayImpEntryWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
153void* DelayImpEntryWrapper::getFieldPtr(size_t fId, size_t subField)
154{
-
155 pe::IMAGE_DELAY_LOAD* dLd = (pe::IMAGE_DELAY_LOAD*) this->getPtr();
-
156 if (dLd == NULL) return NULL;
+
155 pe::IMAGE_DELAY_LOAD* dLd = (pe::IMAGE_DELAY_LOAD*) this->getPtr();
+
156 if (dLd == NULL) return NULL;
157
-
158 switch (fId) {
-
159 case ATTRS : return &dLd->grAttrs;
-
160 case NAME : return &dLd->szName;
-
161 case MOD : return &dLd->phmod;
-
162 case IAT : return &dLd->pIAT;
-
163 case INT : return &dLd->pINT;
-
164 case BOUND_IAT : return &dLd->pBoundIAT;
-
165 case UNLOAD_IAT : return &dLd->pUnloadIAT;
-
166 case TIMESTAMP : return &dLd->dwTimestamp;
+
158 switch (fId) {
+
159 case ATTRS : return &dLd->grAttrs;
+
160 case NAME : return &dLd->szName;
+
161 case MOD : return &dLd->phmod;
+
162 case IAT : return &dLd->pIAT;
+
163 case INT : return &dLd->pINT;
+
164 case BOUND_IAT : return &dLd->pBoundIAT;
+
165 case UNLOAD_IAT : return &dLd->pUnloadIAT;
+
166 case TIMESTAMP : return &dLd->dwTimestamp;
167 }
168 return this->getPtr();
169}
+
170
-
171QString DelayImpEntryWrapper::getFieldName(size_t fieldId)
+
+
171QString DelayImpEntryWrapper::getFieldName(size_t fieldId)
172{
173 switch (fieldId) {
174 case ATTRS : return "Attributes";
@@ -261,10 +293,12 @@ $(function() {
182 }
183 return getName();
184}
+
185
-
186Executable::addr_type DelayImpEntryWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
186Executable::addr_type DelayImpEntryWrapper::containsAddrType(size_t fieldId, size_t subField)
187{
-
188 switch (fieldId) {
+
188 switch (fieldId) {
189 case NAME :
190 case MOD :
191 case IAT :
@@ -272,111 +306,125 @@ $(function() {
193 case BOUND_IAT :
194 case UNLOAD_IAT :
195 {
-
196 bool isOk = false;
-
197 uint64_t offset = this->getNumValue(fieldId, &isOk);
-
198 if (!isOk) return Executable::NOT_ADDR;
+
196 bool isOk = false;
+
197 uint64_t offset = this->getNumValue(fieldId, &isOk);
+
198 if (!isOk) return Executable::NOT_ADDR;
199
200 return m_Exe->detectAddrType(offset, Executable::RVA);
201 }
202 }
203 return Executable::NOT_ADDR;
204}
+
205
206//---------------------------------------------------------------------------
207
+
208bool DelayImpFuncWrapper::isByOrdinal()
209{
-
210 bool isOk = false;
-
211 uint64_t addr = this->getNumValue(NAMETHUNK_ADDR, &isOk);
-
212 if (!isOk || addr == INVALID_ADDR) return false;
+
210 bool isOk = false;
+
211 uint64_t addr = this->getNumValue(NAMETHUNK_ADDR, &isOk);
+
212 if (!isOk || addr == INVALID_ADDR) return false;
213
214 if (isBit64()) {
-
215 if (addr & ORDINAL_FLAG64) return true;
+
215 if (addr & ORDINAL_FLAG64) return true;
216
217 } else {
-
218 if (addr & ORDINAL_FLAG32) return true;
+
218 if (addr & ORDINAL_FLAG32) return true;
219 }
220 return false;
221}
+
222
-
223uint64_t DelayImpFuncWrapper::getOrdinal()
+
+
223uint64_t DelayImpFuncWrapper::getOrdinal()
224{
-
225 bool isOk = false;
-
226 uint64_t addr = this->getNumValue(NAMETHUNK_ADDR, &isOk);
-
227 if (!isOk || addr == INVALID_ADDR) return INVALID_ADDR;
+
225 bool isOk = false;
+
226 uint64_t addr = this->getNumValue(NAMETHUNK_ADDR, &isOk);
+
227 if (!isOk || addr == INVALID_ADDR) return INVALID_ADDR;
228
-
229 size_t fieldSize = this->ptrLen() * 8; // in bits!
-
230 size_t shiftSize = (sizeof(addr) - fieldSize) + 1;
+
229 size_t fieldSize = this->ptrLen() * 8; // in bits!
+
230 size_t shiftSize = (sizeof(addr) - fieldSize) + 1;
231
-
232 uint64_t shiftedVal = (addr << shiftSize) >> shiftSize;
-
233 return shiftedVal;
+
232 uint64_t shiftedVal = (addr << shiftSize) >> shiftSize;
+
233 return shiftedVal;
234}
+
235
+
236char* DelayImpFuncWrapper::getFunctionName()
237{
238 //check
-
239 if (isByOrdinal() == true) return NULL;
+
239 if (isByOrdinal() == true) return NULL;
240
-
241 IMAGE_IMPORT_BY_NAME* ptr = getImportByNamePtr();
-
242 if (ptr == NULL) return NULL;
+
241 IMAGE_IMPORT_BY_NAME* ptr = getImportByNamePtr();
+
242 if (ptr == NULL) return NULL;
243
244 return (char*) &ptr->Name;
245}
+
246
-
247uint16_t DelayImpFuncWrapper::getHint()
+
+
247uint16_t DelayImpFuncWrapper::getHint()
248{
249 if (isByOrdinal() == true) return 0;
250
-
251 IMAGE_IMPORT_BY_NAME* ptr = getImportByNamePtr();
-
252 if (ptr == NULL) return 0;
+
251 IMAGE_IMPORT_BY_NAME* ptr = getImportByNamePtr();
+
252 if (ptr == NULL) return 0;
253
254 return ptr->Hint;
255}
+
256
-
257void* DelayImpFuncWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
257void* DelayImpFuncWrapper::getFieldPtr(size_t fId, size_t subField)
258{
-
259 if (this->parentDir == NULL) return NULL;
+
259 if (this->parentDir == NULL) return NULL;
260
-
261 if (parentDir->getPtr() == NULL) return NULL;
+
261 if (parentDir->getPtr() == NULL) return NULL;
262
-
263 uint64_t offset = INVALID_ADDR;
-
264 bool isOk = false;
+
263 uint64_t offset = INVALID_ADDR;
+
264 bool isOk = false;
265
-
266 switch (fId) {
+
266 switch (fId) {
267 case NAMETHUNK_ADDR :
-
268 offset = parentDir->getNumValue(DelayImpEntryWrapper::INT, &isOk); break;
+
268 offset = parentDir->getNumValue(DelayImpEntryWrapper::INT, &isOk); break;
269 case IAT_ADDR :
-
270 offset = parentDir->getNumValue(DelayImpEntryWrapper::IAT, &isOk); break;
+
270 offset = parentDir->getNumValue(DelayImpEntryWrapper::IAT, &isOk); break;
271 case BOUND_IAT_ADDR :
-
272 offset = parentDir->getNumValue(DelayImpEntryWrapper::BOUND_IAT, &isOk); break;
+
272 offset = parentDir->getNumValue(DelayImpEntryWrapper::BOUND_IAT, &isOk); break;
273 case UNLOAD_IAT_ADDR :
-
274 offset = parentDir->getNumValue(DelayImpEntryWrapper::UNLOAD_IAT, &isOk); break;
+
274 offset = parentDir->getNumValue(DelayImpEntryWrapper::UNLOAD_IAT, &isOk); break;
275 default: return getPtr();
276 }
277
-
278 if (isOk && offset != INVALID_ADDR && offset != 0) {
+
278 if (isOk && offset != INVALID_ADDR && offset != 0) {
279 offset += (this->entryNum * ptrLen());
-
280 Executable::addr_type aT = m_Exe->detectAddrType(offset, Executable::RVA);
-
281 BYTE *ptr = m_Exe->getContentAt(offset, aT, static_cast<bufsize_t>(ptrLen()));
+
280 Executable::addr_type aT = m_Exe->detectAddrType(offset, Executable::RVA);
+
281 BYTE *ptr = m_Exe->getContentAt(offset, aT, static_cast<bufsize_t>(ptrLen()));
282 return ptr;
283 }
-
284 return NULL;
+
284 return NULL;
285}
+
286
+
287offset_t DelayImpFuncWrapper::callVia()
288{
-
289 bool isOk = false;
-
290 uint64_t offset = parentDir->getNumValue(DelayImpEntryWrapper::IAT, &isOk);
-
291 if (isOk && offset != INVALID_ADDR && offset != 0) {
+
289 bool isOk = false;
+
290 uint64_t offset = parentDir->getNumValue(DelayImpEntryWrapper::IAT, &isOk);
+
291 if (isOk && offset != INVALID_ADDR && offset != 0) {
292 offset += (this->entryNum * ptrLen());
293 return offset;
294 }
295 return INVALID_ADDR;
296}
+
297
-
298QString DelayImpFuncWrapper::getFieldName(size_t fId)
+
+
298QString DelayImpFuncWrapper::getFieldName(size_t fId)
299{
-
300 switch (fId) {
+
300 switch (fId) {
301 case NAMETHUNK_ADDR : return "Name Addr.";
302 case IAT_ADDR : return "IAT Addr.";
303 case BOUND_IAT_ADDR : return "Bound IAT";
@@ -384,43 +432,49 @@ $(function() {
305 }
306 return "";
307}
+
308
-
309bufsize_t DelayImpFuncWrapper::getFieldSize(size_t fieldId, size_t subField)
+
+
309bufsize_t DelayImpFuncWrapper::getFieldSize(size_t fieldId, size_t subField)
310{
311 if (!m_Exe) return 0;
312 if (m_Exe->getBitMode() == Executable::BITS_64) {
-
313 return sizeof (ULONGLONG);
+
313 return sizeof (ULONGLONG);
314 }
-
315 return sizeof (DWORD);
+
315 return sizeof (DWORD);
316}
+
317
-
318Executable::addr_type DelayImpFuncWrapper::containsAddrType(size_t fId, size_t subField)
+
+
318Executable::addr_type DelayImpFuncWrapper::containsAddrType(size_t fId, size_t subField)
319{
-
320 bool isOk = false;
-
321 uint64_t offset = this->getNumValue(fId, &isOk);
-
322 if (!isOk || offset == INVALID_ADDR || offset == 0) return Executable::NOT_ADDR;
+
320 bool isOk = false;
+
321 uint64_t offset = this->getNumValue(fId, &isOk);
+
322 if (!isOk || offset == INVALID_ADDR || offset == 0) return Executable::NOT_ADDR;
323
-
324 Executable::addr_type aT = m_Exe->detectAddrType(offset, Executable::RVA);
-
325 switch (fId) {
+
324 Executable::addr_type aT = m_Exe->detectAddrType(offset, Executable::RVA);
+
325 switch (fId) {
326 case IAT_ADDR :
327 case NAMETHUNK_ADDR :
328 case BOUND_IAT_ADDR :
329 case UNLOAD_IAT_ADDR :
-
330 return aT;
+
330 return aT;
331 }
332 return Executable::NOT_ADDR;
333}
+
334
-
335IMAGE_IMPORT_BY_NAME* DelayImpFuncWrapper::getImportByNamePtr()
+
335IMAGE_IMPORT_BY_NAME* DelayImpFuncWrapper::getImportByNamePtr()
336{
-
337 bool isOk = false;
-
338 uint64_t addr = this->getNumValue(NAMETHUNK_ADDR, &isOk);
-
339 if (!isOk || addr == INVALID_ADDR) return NULL;
+
337 bool isOk = false;
+
338 uint64_t addr = this->getNumValue(NAMETHUNK_ADDR, &isOk);
+
339 if (!isOk || addr == INVALID_ADDR) return NULL;
340
-
341 Executable::addr_type aT = m_Exe->detectAddrType(addr, Executable::RVA);
-
342 BYTE *ptr = m_Exe->getContentAt(addr, aT, sizeof(IMAGE_IMPORT_BY_NAME));
-
343 return (IMAGE_IMPORT_BY_NAME*) ptr;
+
341 Executable::addr_type aT = m_Exe->detectAddrType(addr, Executable::RVA);
+
342 BYTE *ptr = m_Exe->getContentAt(addr, aT, sizeof(IMAGE_IMPORT_BY_NAME));
+
343 return (IMAGE_IMPORT_BY_NAME*) ptr;
344}
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -492,7 +546,7 @@ $(function() { diff --git a/_delay_imp_dir_wrapper_8h.html b/_delay_imp_dir_wrapper_8h.html index 638cc089..c364a934 100644 --- a/_delay_imp_dir_wrapper_8h.html +++ b/_delay_imp_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/DelayImpDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
5
6class DelayImpFuncWrapper;
7
+
8class DelayImpDirWrapper : public ImportBaseDirWrapper
9{
10public:
+
-
12 : ImportBaseDirWrapper(pe, pe::DIR_DELAY_IMPORT) { wrap(); }
+ +
13
14 virtual void* getPtr();
15 virtual bufsize_t getSize();
-
16 virtual QString getName() { return "DelayImports"; }
+
16 virtual QString getName() { return "DelayImports"; }
17
18protected:
-
19 virtual bool loadNextEntry(size_t cntr);
+
19 virtual bool loadNextEntry(size_t cntr);
20
21 bool is64(); // autodetect! 64bit PE may use IMAGE_DELAY_LOAD32!
22 bool is32() { return !is64(); }
@@ -106,10 +114,13 @@ $(function() {
27
28friend class DelayImpEntryWrapper;
29};
+
30
+
31class DelayImpEntryWrapper : public ImportBaseEntryWrapper
32{
33public:
+
@@ -122,35 +133,41 @@ $(function() {
45 };
+
46
-
47 DelayImpEntryWrapper(PEFile *pe, DelayImpDirWrapper *importsDir, size_t entryNumber)
-
48 : ImportBaseEntryWrapper(pe, importsDir, entryNumber) { wrap(); }
+
+ + +
49
50 //bool wrap();
51
52 virtual void* getPtr();
53 virtual bufsize_t getSize();
-
54 virtual QString getName();
+
54 virtual QString getName();
55 virtual char* getLibraryName();
56 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
57
-
58 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
59 virtual QString getFieldName(size_t fieldId);
-
60 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
58 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
59 virtual QString getFieldName(size_t fieldId);
+
60 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
61
62protected:
63 bool loadNextEntry(size_t entryNum);
64
-
65 virtual IMAGE_IMPORT_BY_NAME* getFirstImpByNamePtr();
+
65 virtual IMAGE_IMPORT_BY_NAME* getFirstImpByNamePtr();
66
67friend class DelayImpFuncWrapper;
68friend class DelayImpDirWrapper;
69};
+
70
+
71class DelayImpFuncWrapper : public ImportBaseFuncWrapper
72{
73public:
74 // fields :
+
75 enum FieldID {
@@ -159,35 +176,40 @@ $(function() {
82 };
+
83
-
84 DelayImpFuncWrapper(PEFile *pe, DelayImpEntryWrapper *parentDir, size_t entryNumber)
-
85 : ImportBaseFuncWrapper(pe, parentDir, entryNumber) { this->parentDir = parentDir; }
+
+ +
85 : ImportBaseFuncWrapper(pe, parentDir, entryNumber) { this->parentDir = parentDir; }
+
86
87 // full structure boundaries
88 virtual void* getPtr() { return getFieldPtr(IAT_ADDR); }
-
89 virtual bufsize_t getSize() { return sizeof(DWORD); }
+
89 virtual bufsize_t getSize() { return sizeof(DWORD); }
90
91 //virtual QString getName();
92 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
93 virtual size_t getSubFieldsCount() { return 1; }
94
95 // specific field boundaries
-
96 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
97 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
-
98 virtual QString getFieldName(size_t fieldId);
-
99 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField);
+
96 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
97 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
+
98 virtual QString getFieldName(size_t fieldId);
+
99 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField);
100
101 char* getFunctionName();
-
102 uint16_t getHint();
+
102 uint16_t getHint();
103 bool isByOrdinal();
-
104 virtual uint64_t getOrdinal();
+
104 virtual uint64_t getOrdinal();
105 offset_t callVia();
106
107private:
-
108 size_t ptrLen() { return (m_Exe->getBitMode() == Executable::BITS_64) ? sizeof(uint64_t) : sizeof(uint32_t); }
-
109 virtual IMAGE_IMPORT_BY_NAME* getImportByNamePtr();
+
108 size_t ptrLen() { return (m_Exe->getBitMode() == Executable::BITS_64) ? sizeof(uint64_t) : sizeof(uint32_t); }
+
109 virtual IMAGE_IMPORT_BY_NAME* getImportByNamePtr();
110 DelayImpEntryWrapper* parentDir;
111};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -261,7 +283,7 @@ $(function() { diff --git a/_dos_hdr_wrapper_8cpp.html b/_dos_hdr_wrapper_8cpp.html index 99d18777..e424f3a5 100644 --- a/_dos_hdr_wrapper_8cpp.html +++ b/_dos_hdr_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/DosHdrWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "pe/DosHdrWrapper.h"
2#include "pe/DOSExe.h"
3
-
4void* DosHdrWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
5{
6/*
7 DOSExe *dosExe = dynamic_cast<DOSExe*> (m_Exe);
8 if (dosExe == NULL) return NULL;
9*/
-
10 offset_t myOff = 0;//dosExe->dosHeaderOffset();
-
11 IMAGE_DOS_HEADER* dosHdr = (IMAGE_DOS_HEADER*) m_Exe->getContentAt(myOff, sizeof(IMAGE_DOS_HEADER));
-
12 if (dosHdr == NULL) return NULL; //error
+
10 offset_t myOff = 0;//dosExe->dosHeaderOffset();
+ +
12 if (dosHdr == NULL) return NULL; //error
13
-
14 switch (fieldId) {
-
15 case MAGIC: return (void*) &dosHdr->e_magic;
-
16 case CBLP: return (void*) &dosHdr->e_cblp;
-
17 case CP: return (void*) &dosHdr->e_cp;
-
18 case CRLC: return (void*) &dosHdr->e_crlc;
-
19 case CPARHDR: return (void*) &dosHdr->e_cparhdr;
-
20 case MINALLOC: return (void*) &dosHdr->e_minalloc;
-
21 case MAXALLOC: return (void*) &dosHdr->e_maxalloc;
-
22 case SS: return (void*) &dosHdr->e_ss;
-
23 case SP: return (void*) &dosHdr->e_sp;
-
24 case CSUM: return (void*) &dosHdr->e_csum;
-
25 case IP: return (void*) &dosHdr->e_ip;
-
26 case CS: return (void*) &dosHdr->e_cs;
-
27 case LFARLC: return (void*) &dosHdr->e_lfarlc;
-
28 case OVNO: return (void*) &dosHdr->e_ovno;
-
29 case RES: return (void*) &dosHdr->e_res[0];
-
30 case OEMID: return (void*) &dosHdr->e_oemid;
-
31 case OEMINFO: return (void*) &dosHdr->e_oeminfo;
-
32 case RES2: return (void*) &dosHdr->e_res2[0];
-
33 case LFNEW: return (void*) &dosHdr->e_lfanew;
-
34 case FIELD_COUNTER: return (void*) (&dosHdr->e_lfanew + 1);
+
14 switch (fieldId) {
+
15 case MAGIC: return (void*) &dosHdr->e_magic;
+
16 case CBLP: return (void*) &dosHdr->e_cblp;
+
17 case CP: return (void*) &dosHdr->e_cp;
+
18 case CRLC: return (void*) &dosHdr->e_crlc;
+
19 case CPARHDR: return (void*) &dosHdr->e_cparhdr;
+
20 case MINALLOC: return (void*) &dosHdr->e_minalloc;
+
21 case MAXALLOC: return (void*) &dosHdr->e_maxalloc;
+
22 case SS: return (void*) &dosHdr->e_ss;
+
23 case SP: return (void*) &dosHdr->e_sp;
+
24 case CSUM: return (void*) &dosHdr->e_csum;
+
25 case IP: return (void*) &dosHdr->e_ip;
+
26 case CS: return (void*) &dosHdr->e_cs;
+
27 case LFARLC: return (void*) &dosHdr->e_lfarlc;
+
28 case OVNO: return (void*) &dosHdr->e_ovno;
+
29 case RES: return (void*) &dosHdr->e_res[0];
+
30 case OEMID: return (void*) &dosHdr->e_oemid;
+
31 case OEMINFO: return (void*) &dosHdr->e_oeminfo;
+
32 case RES2: return (void*) &dosHdr->e_res2[0];
+
33 case LFNEW: return (void*) &dosHdr->e_lfanew;
+
34 case FIELD_COUNTER: return (void*) (&dosHdr->e_lfanew + 1);
35 }
-
36 return (void*)dosHdr;
+
36 return (void*)dosHdr;
37}
+
38
-
39QString DosHdrWrapper::getFieldName(size_t fieldId)
+
+
40{
-
41 switch (fieldId) {
+
41 switch (fieldId) {
42 case MAGIC: return "Magic number";
43 case CBLP: return "Bytes on last page of file";
44 case CP: return "Pages in file";
@@ -140,16 +148,20 @@ $(function() {
61 }
62 return "";
63}
+
64
- +
+
66{
-
67 switch (fieldId) {
+
67 switch (fieldId) {
68 case LFARLC: return Executable::RAW;
69 case LFNEW: return Executable::RAW;
70 }
72}
+
73
+
INT_TYPE _getNumValue(void *ptr)
uint64_t offset_t
@@ -184,7 +196,7 @@ $(function() {
diff --git a/_dos_hdr_wrapper_8h.html b/_dos_hdr_wrapper_8h.html index 5336f932..e1a78c49 100644 --- a/_dos_hdr_wrapper_8h.html +++ b/_dos_hdr_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/DosHdrWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
5
6#include "pe_formats.h"
7
+
8class DosHdrWrapper : public ExeElementWrapper
9{
10public:
11 /* fields :*/
+
14 MAGIC = 0,
@@ -111,21 +118,24 @@ $(function() {
34 };
+
35
-
36 DosHdrWrapper(Executable *dosExe) : ExeElementWrapper(dosExe) { }
+
36 DosHdrWrapper(Executable *dosExe) : ExeElementWrapper(dosExe) { }
37
38 /* full structure boundaries */
39 virtual void* getPtr() { return m_Exe->getContent(); }
-
40 virtual bufsize_t getSize() { return sizeof(IMAGE_DOS_HEADER); }
-
41 virtual QString getName() { return "DOS Hdr"; }
+
40 virtual bufsize_t getSize() { return sizeof(IMAGE_DOS_HEADER); }
+
41 virtual QString getName() { return "DOS Hdr"; }
42 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
43
44 /* specific field boundaries */
-
45 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
46 virtual QString getFieldName(size_t fieldId);
-
47 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
45 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
46 virtual QString getFieldName(size_t fieldId);
+
47 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
48};
+
49
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
DosHdrWrapper
Definition DosHdrWrapper.h:9
@@ -167,7 +177,7 @@ $(function() { diff --git a/_exception_dir_wrapper_8cpp.html b/_exception_dir_wrapper_8cpp.html index a5546ebe..f21d592b 100644 --- a/_exception_dir_wrapper_8cpp.html +++ b/_exception_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/ExceptionDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
9} IMAGE_IA64_RUNTIME_FUNCTION_ENTRY, *PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY;
10*/
11
+
12bool ExceptionDirWrapper::wrap()
13{
14 clear();
15 parsedSize = 0;
-
16 bufsize_t maxSize = getDirEntrySize(true);
-
17 if (maxSize == 0) return false; // nothing to parse
+
16 bufsize_t maxSize = getDirEntrySize(true);
+
17 if (maxSize == 0) return false; // nothing to parse
18
19 if (!exceptFunc64()) return false;
20
-
21 const size_t ENTRY_SIZE = sizeof(IMAGE_IA64_RUNTIME_FUNCTION_ENTRY);
-
22 size_t entryId = 0;
-
23 while (parsedSize < maxSize) {
-
24 ExceptionEntryWrapper* entry = new ExceptionEntryWrapper(this->m_Exe, this, entryId++);
+
21 const size_t ENTRY_SIZE = sizeof(IMAGE_IA64_RUNTIME_FUNCTION_ENTRY);
+
22 size_t entryId = 0;
+
23 while (parsedSize < maxSize) {
+
24 ExceptionEntryWrapper* entry = new ExceptionEntryWrapper(this->m_Exe, this, entryId++);
25
-
26 if (entry->getPtr() == NULL) {
-
27 delete entry;
+
26 if (entry->getPtr() == NULL) {
+
27 delete entry;
28 break;
29 }
-
30 this->parsedSize += ENTRY_SIZE;
+
30 this->parsedSize += ENTRY_SIZE;
31 this->entries.push_back(entry);
32 }
33 Logger::append(Logger::D_INFO,
@@ -116,68 +122,80 @@ $(function() {
37 );
38 return true;
39}
+
40
-
41IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* ExceptionDirWrapper::exceptFunc64()
+
+
41IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* ExceptionDirWrapper::exceptFunc64()
42{
-
43 offset_t rva = getDirEntryAddress();
-
44 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_IA64_RUNTIME_FUNCTION_ENTRY));
-
45 if (ptr == NULL) return NULL;
+
43 offset_t rva = getDirEntryAddress();
+
44 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_IA64_RUNTIME_FUNCTION_ENTRY));
+
45 if (ptr == NULL) return NULL;
46
-
47 IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* exc = (IMAGE_IA64_RUNTIME_FUNCTION_ENTRY*) ptr;
-
48 return exc;
+
47 IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* exc = (IMAGE_IA64_RUNTIME_FUNCTION_ENTRY*) ptr;
+
48 return exc;
49}
+
50
51//----------------
52
+
53void* ExceptionEntryWrapper::getPtr()
54{
-
55 if (this->parentDir == NULL) return NULL;
-
56 IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* first = this->parentDir->exceptFunc64();
-
57 if (!first) return NULL;
+
55 if (this->parentDir == NULL) return NULL;
+
56 IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* first = this->parentDir->exceptFunc64();
+
57 if (!first) return NULL;
58
-
59 const size_t ENTRY_SIZE = sizeof(IMAGE_IA64_RUNTIME_FUNCTION_ENTRY);
+
59 const size_t ENTRY_SIZE = sizeof(IMAGE_IA64_RUNTIME_FUNCTION_ENTRY);
60
-
61 uint64_t firstOffset = this->getOffset(first);
-
62 uint64_t myOffset = firstOffset + this->entryNum * ENTRY_SIZE;
+
61 uint64_t firstOffset = this->getOffset(first);
+
62 uint64_t myOffset = firstOffset + this->entryNum * ENTRY_SIZE;
63
-
64 BYTE *ptr = m_Exe->getContentAt(myOffset, Executable::RAW, ENTRY_SIZE);
+
64 BYTE *ptr = m_Exe->getContentAt(myOffset, Executable::RAW, ENTRY_SIZE);
65 return ptr;
66}
+
67
+
68bufsize_t ExceptionEntryWrapper::getSize()
69{
-
70 if (this->parentDir == NULL) return 0;
-
71 if (this->getPtr() == NULL) return 0;
+
70 if (this->parentDir == NULL) return 0;
+
71 if (this->getPtr() == NULL) return 0;
72
-
73 return sizeof(IMAGE_IA64_RUNTIME_FUNCTION_ENTRY);
+
73 return sizeof(IMAGE_IA64_RUNTIME_FUNCTION_ENTRY);
74}
+
75
-
76void* ExceptionEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
76void* ExceptionEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
77{
-
78 IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* exc = (IMAGE_IA64_RUNTIME_FUNCTION_ENTRY*) this->getPtr();
-
79 if (!exc) return NULL;
+
78 IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* exc = (IMAGE_IA64_RUNTIME_FUNCTION_ENTRY*) this->getPtr();
+
79 if (!exc) return NULL;
80
-
81 switch (fieldId) {
-
82 case BEGIN_ADDR : return &exc->BeginAddress;
-
83 case END_ADDR : return &exc->EndAddress;
-
84 case UNWIND_INFO_ADDR : return &exc->UnwindInfoAddress;
+
81 switch (fieldId) {
+
82 case BEGIN_ADDR : return &exc->BeginAddress;
+
83 case END_ADDR : return &exc->EndAddress;
+
84 case UNWIND_INFO_ADDR : return &exc->UnwindInfoAddress;
85 }
86 return getPtr();
87}
+
88
-
89QString ExceptionEntryWrapper::getFieldName(size_t fieldId)
+
+
89QString ExceptionEntryWrapper::getFieldName(size_t fieldId)
90{
-
91 switch (fieldId) {
+
91 switch (fieldId) {
92 case BEGIN_ADDR : return "BeginAddress";
93 case END_ADDR : return "EndAddress";
94 case UNWIND_INFO_ADDR : return "UnwindInfoAddress";
95 }
96 return getName();
97}
+
98
-
99Executable::addr_type ExceptionEntryWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
99Executable::addr_type ExceptionEntryWrapper::containsAddrType(size_t fieldId, size_t subField)
100{
-
101 switch (fieldId) {
+
101 switch (fieldId) {
102 case BEGIN_ADDR :
103 case END_ADDR :
104 case UNWIND_INFO_ADDR :
@@ -185,7 +203,9 @@ $(function() {
106 }
107 return Executable::NOT_ADDR;
108}
+
109
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
ExceptionDirWrapper.h
@@ -220,7 +240,7 @@ $(function() { diff --git a/_exception_dir_wrapper_8h.html b/_exception_dir_wrapper_8h.html index 110c5a58..8d732cf2 100644 --- a/_exception_dir_wrapper_8h.html +++ b/_exception_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/ExceptionDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
5class ExceptionEntryWrapper;
6class ExceptionDirWrapper;
7
+
8class ExceptionDirWrapper : public DataDirEntryWrapper
9{
10public:
+
-
12 : DataDirEntryWrapper(pe, pe::DIR_EXCEPTION), parsedSize(0) { wrap(); }
+
12 : DataDirEntryWrapper(pe, pe::DIR_EXCEPTION), parsedSize(0) { wrap(); }
+
13
14 bool wrap();
15
16 virtual void* getPtr() { return exceptFunc64(); }
17 virtual bufsize_t getSize() { return parsedSize; }
18
-
19 virtual QString getName() { return "Exceptions Dir."; }
+
19 virtual QString getName() { return "Exceptions Dir."; }
20 virtual size_t getFieldsCount() { return entries.size(); }
21
-
22 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField); }
-
23 virtual QString getFieldName(size_t fieldId) { return "Exceptions Block"; }
-
24 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField); }
+
22 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField); }
+
23 virtual QString getFieldName(size_t fieldId) { return "Exceptions Block"; }
+
24 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField); }
25
26protected:
-
27 IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* exceptFunc64();
+
27 IMAGE_IA64_RUNTIME_FUNCTION_ENTRY* exceptFunc64();
28
29private:
30 bufsize_t parsedSize;
31
32friend class ExceptionEntryWrapper;
33};
+
34
35
+
36class ExceptionEntryWrapper : public ExeNodeWrapper
37{
38public:
39 // fields :
+
@@ -123,9 +134,12 @@ $(function() {
46 };
+
47
-
48 ExceptionEntryWrapper(Executable *pe, ExceptionDirWrapper *parentDir, size_t entryNumber)
-
49 : ExeNodeWrapper(pe, parentDir, entryNumber), cachedRaw(INVALID_ADDR) { this->parentDir = parentDir;}
+
+ +
49 : ExeNodeWrapper(pe, parentDir, entryNumber), cachedRaw(INVALID_ADDR) { this->parentDir = parentDir;}
+
50
51 bool wrap() { return true; }
52
@@ -133,20 +147,22 @@ $(function() {
54 virtual void* getPtr();
55
56 virtual bufsize_t getSize();
-
57 virtual QString getName() { return "Exceptions Block"; }
+
57 virtual QString getName() { return "Exceptions Block"; }
58 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
59 virtual size_t getSubFieldsCount() { return 1; }
60
61 // specific field boundaries
-
62 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
63 virtual QString getFieldName(size_t fieldId);
-
64 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField);
+
62 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
63 virtual QString getFieldName(size_t fieldId);
+
64 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField);
65
66private:
67 offset_t cachedRaw;
68 ExceptionDirWrapper* parentDir;
69};
+
70
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -191,7 +207,7 @@ $(function() { diff --git a/_exe_element_wrapper_8cpp.html b/_exe_element_wrapper_8cpp.html index 11358b6e..40bed26c 100644 --- a/_exe_element_wrapper_8cpp.html +++ b/_exe_element_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/ExeElementWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "ExeElementWrapper.h"
2
- +
+
4{
-
5 if (v_exe == NULL) {
+
5 if (v_exe == NULL) {
6 Logger::append(Logger::D_ERROR, "Cannot initialize with Exe == NULL!");
7 throw CustomException("Cannot initialize with Exe == NULL!");
8 }
-
9 this->m_Exe = v_exe;
+
9 this->m_Exe = v_exe;
10}
+
11
-
12bufsize_t ExeElementWrapper::getFieldSize(size_t fieldId, size_t subField)
+
+
13{
-
14 size_t fieldsCount = getFieldsCount();
-
15 if (fieldId >= fieldsCount) return this->getSize();
+
14 size_t fieldsCount = getFieldsCount();
+
15 if (fieldId >= fieldsCount) return this->getSize();
16
-
17 void *ptr = this->getFieldPtr(fieldId, subField);
-
18 if (ptr == NULL) return 0;
+
17 void *ptr = this->getFieldPtr(fieldId, subField);
+
18 if (ptr == NULL) return 0;
19
-
20 void *nextPtr = NULL;
-
21 size_t nextFID = fieldId + 1;
+
20 void *nextPtr = NULL;
+
21 size_t nextFID = fieldId + 1;
22
-
23 if (nextFID < fieldsCount ) nextPtr = this->getFieldPtr(nextFID, subField);
-
24 if (nextPtr != NULL) {
-
25 int64_t dif = offset_t (nextPtr) - offset_t (ptr);
-
26 if (dif < 0) return 0;
+
23 if (nextFID < fieldsCount ) nextPtr = this->getFieldPtr(nextFID, subField);
+
24 if (nextPtr != NULL) {
+ +
26 if (dif < 0) return 0;
27
-
28 return (bufsize_t) dif;
+
28 return (bufsize_t) dif;
29 }
30
-
31 offset_t fullSize = this->getSize();
-
32 BYTE *bgnPtr = (BYTE*) getPtr();
-
33 BYTE *endPtr = bgnPtr + fullSize;
-
34 offset_t dif = offset_t (endPtr) - offset_t (ptr);
+
31 offset_t fullSize = this->getSize();
+
32 BYTE *bgnPtr = (BYTE*) getPtr();
+
33 BYTE *endPtr = bgnPtr + fullSize;
+
35
-
36 return (bufsize_t) dif;
+
36 return (bufsize_t) dif;
37}
+
38
+
40{
-
41 BYTE *ptr = (BYTE*)this->getPtr();
+
41 BYTE *ptr = (BYTE*)this->getPtr();
42 return getOffset(ptr);
43}
+
44
-
45offset_t ExeElementWrapper::getOffset(void *ptr, bool allowExceptions)
+
+
46{
47 if (!m_Exe) return INVALID_ADDR;
-
48 return m_Exe->getOffset(ptr, allowExceptions);
+
48 return m_Exe->getOffset(ptr, allowExceptions);
49}
+
50
-
51offset_t ExeElementWrapper::getFieldOffset(size_t fieldId, size_t subField)
+
+
52{
-
53 void* ptr = getFieldPtr(fieldId, subField);
+
53 void* ptr = getFieldPtr(fieldId, subField);
54 return getOffset(ptr);
55}
+
56
-
57WrappedValue ExeElementWrapper::getWrappedValue(size_t fieldId, size_t subFieldId)
+
+
58{
-
59 if (fieldId == -1) return WrappedValue(); //EMPTY
-
60 void* ptr = getFieldPtr(fieldId, subFieldId);
-
61 if (ptr == NULL) return WrappedValue(); //EMPTY
+
59 if (fieldId == -1) return WrappedValue(); //EMPTY
+
60 void* ptr = getFieldPtr(fieldId, subFieldId);
+
61 if (ptr == NULL) return WrappedValue(); //EMPTY
62
-
63 bufsize_t fieldSize = getFieldSize(fieldId, subFieldId);
-
64 if (fieldSize == BUFSIZE_MAX || fieldSize == 0) return WrappedValue(); //EMPTY
+ +
64 if (fieldSize == BUFSIZE_MAX || fieldSize == 0) return WrappedValue(); //EMPTY
65
66 offset_t offset = this->getOffset(ptr);
67 if (offset == INVALID_ADDR) return WrappedValue(); //EMPTY
68
-
69 WrappedValue::data_type dataType = this->containsDataType(fieldId, subFieldId);
-
70 return WrappedValue(this->m_Exe, offset, fieldSize, dataType);
+ +
70 return WrappedValue(this->m_Exe, offset, fieldSize, dataType);
71}
+
72
-
73uint64_t ExeElementWrapper::getNumValue(size_t fId, size_t subField, bool* isOk)
+
+
74{
-
75 if (isOk) (*isOk) = false;
-
76 if (this->m_Exe == NULL) return (-1);
+
75 if (isOk) (*isOk) = false;
+
76 if (this->m_Exe == NULL) return (-1);
77
-
78 offset_t offset = this->getFieldOffset(fId, subField);
-
79 bufsize_t size = this->getFieldSize(fId, subField);
-
80 return this->m_Exe->getNumValue(offset, size, isOk);
+
78 offset_t offset = this->getFieldOffset(fId, subField);
+
79 bufsize_t size = this->getFieldSize(fId, subField);
+
80 return this->m_Exe->getNumValue(offset, size, isOk);
81}
+
82
-
83bool ExeElementWrapper::setNumValue(size_t fId, size_t subField, uint64_t newVal)
+
+
84{
-
85 if (this->m_Exe == NULL) return false;
+
85 if (this->m_Exe == NULL) return false;
86
-
87 offset_t offset = this->getFieldOffset(fId, subField);
-
88 bufsize_t size = this->getFieldSize(fId, subField);
-
89 return this->m_Exe->setNumValue(offset, size, newVal);
+
87 offset_t offset = this->getFieldOffset(fId, subField);
+
88 bufsize_t size = this->getFieldSize(fId, subField);
+
89 return this->m_Exe->setNumValue(offset, size, newVal);
90}
+
91
- +
+
93{
-
94 if (this->m_Exe == NULL) return false;
+
94 if (this->m_Exe == NULL) return false;
95
96 if (this->m_Exe->isAreaEmpty(rawOffset, getSize()) == false) {
97 return false;
98 }
99 return true;
100}
+
101
- +
+
103{
-
104 if (this->m_Exe == NULL) return false;
+
104 if (this->m_Exe == NULL) return false;
105
106 if (canCopyToOffset(rawOffset) == false) {
107 Logger::append(Logger::D_ERROR,"The area is not empty!");
108 return false;
109 }
-
110 if (m_Exe->pasteBuffer(rawOffset, this, false) == false) {
+
110 if (m_Exe->pasteBuffer(rawOffset, this, false) == false) {
111 Logger::append(Logger::D_ERROR,"Cannot paste the buffer!");
112 return false;
113 }
114 return true;
115}
+
+
INT_TYPE _getNumValue(void *ptr)
const bufsize_t BUFSIZE_MAX
uint32_t bufsize_t
const offset_t INVALID_ADDR
@@ -226,7 +252,7 @@ $(function() {
diff --git a/_exe_element_wrapper_8h.html b/_exe_element_wrapper_8h.html index 9a543540..4545c238 100644 --- a/_exe_element_wrapper_8h.html +++ b/_exe_element_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/ExeElementWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
8
9#define FIELD_NONE (-1)
10
+
11class ExeElementWrapper : public AbstractByteBuffer
12{
13public:
-
14 ExeElementWrapper(Executable *exe);
+
14 ExeElementWrapper(Executable *exe);
15 virtual ~ExeElementWrapper() {}
16
17 virtual bool wrap() { return true; }
18
19 /* inherited from: AbstractByteBuffer */
20 virtual bufsize_t getContentSize() { return getSize(); }
-
21 virtual BYTE* getContent() { return static_cast<BYTE*>(getPtr()); }
+
21 virtual BYTE* getContent() { return static_cast<BYTE*>(getPtr()); }
22
23 /* full structure boundaries */
24 virtual void* getPtr() = 0;
25 virtual bufsize_t getSize() = 0;
-
26 virtual QString getName() = 0;
+
26 virtual QString getName() = 0;
27
28 virtual size_t getFieldsCount() = 0;
29 virtual size_t getSubFieldsCount() { return 1; }
30
31 virtual offset_t getOffset();
-
32 virtual offset_t getOffset(void *ptr, bool allowExceptions = false);
+
32 virtual offset_t getOffset(void *ptr, bool allowExceptions = false);
33
34 /* specific field boundaries */
-
35 virtual void* getFieldPtr(size_t fieldId, size_t subField) = 0;
-
36 void* getFieldPtr(size_t fieldId) { return getFieldPtr(fieldId, FIELD_NONE); }
-
37 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
-
38 virtual offset_t getFieldOffset(size_t fieldId, size_t subField = FIELD_NONE);
+
35 virtual void* getFieldPtr(size_t fieldId, size_t subField) = 0;
+
36 void* getFieldPtr(size_t fieldId) { return getFieldPtr(fieldId, FIELD_NONE); }
+
37 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
+
38 virtual offset_t getFieldOffset(size_t fieldId, size_t subField = FIELD_NONE);
39
-
40 virtual QString translateFieldContent(size_t fieldId) { return ""; }
-
41 virtual bool hasSubfieldWrapper(size_t parentType) { return false; }
+
40 virtual QString translateFieldContent(size_t fieldId) { return ""; }
+
41 virtual bool hasSubfieldWrapper(size_t parentType) { return false; }
42
-
43 virtual QString getFieldName(size_t fieldId) = 0;
-
44 virtual WrappedValue getWrappedValue(size_t fieldId, size_t subField);
-
45 virtual WrappedValue getWrappedValue(size_t fieldId) { return getWrappedValue(fieldId, FIELD_NONE); }
+
43 virtual QString getFieldName(size_t fieldId) = 0;
+
44 virtual WrappedValue getWrappedValue(size_t fieldId, size_t subField);
+
45 virtual WrappedValue getWrappedValue(size_t fieldId) { return getWrappedValue(fieldId, FIELD_NONE); }
46
-
47 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE) { return Executable::NOT_ADDR; }
-
48 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE) { return WrappedValue::INT; }
+
47 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE) { return Executable::NOT_ADDR; }
+
48 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE) { return WrappedValue::INT; }
49
-
50 virtual uint64_t getNumValue(size_t fieldId, size_t subField, bool* isOk);
-
51 uint64_t getNumValue(size_t fieldId, bool* isOk) { return getNumValue(fieldId, FIELD_NONE, isOk); }
+
50 virtual uint64_t getNumValue(size_t fieldId, size_t subField, bool* isOk);
+
51 uint64_t getNumValue(size_t fieldId, bool* isOk) { return getNumValue(fieldId, FIELD_NONE, isOk); }
52
-
53 virtual bool setNumValue(size_t fieldId, size_t subField, uint64_t val);
-
54 bool setNumValue(size_t fieldId, uint64_t val) { return setNumValue(fieldId, FIELD_NONE, val); }
+
53 virtual bool setNumValue(size_t fieldId, size_t subField, uint64_t val);
+
54 bool setNumValue(size_t fieldId, uint64_t val) { return setNumValue(fieldId, FIELD_NONE, val); }
55
56 Executable* getExe() { return m_Exe; }
57
@@ -138,14 +144,16 @@ $(function() {
59 inline bool isBit32() { return Executable::isBit32(m_Exe); }
60
61protected:
-
62 virtual bool canCopyToOffset(offset_t rawOffset);
-
63 bool copyToOffset(offset_t rawOffset);
+
62 virtual bool canCopyToOffset(offset_t rawOffset);
+
63 bool copyToOffset(offset_t rawOffset);
64
65 Executable *m_Exe;
66
67friend class Executable;
68};
+
69
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
CustomException.h
@@ -196,7 +204,7 @@ $(function() { diff --git a/_exe_factory_8cpp.html b/_exe_factory_8cpp.html index b0eaa95c..b23faf7e 100644 --- a/_exe_factory_8cpp.html +++ b/_exe_factory_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/ExeFactory.cpp File Reference @@ -30,7 +30,7 @@ - + +
5
6std::map<ExeFactory::exe_type, ExeBuilder*> ExeFactory::builders;
7
+
8void ExeFactory::init()
9{
10 if (builders.size() > 0) {
@@ -92,60 +98,70 @@ $(function() {
13 builders[MZ] = new DOSExeBuilder();
14 builders[PE] = new PEFileBuilder();
15}
+
16
+
17void ExeFactory::destroy()
18{
-
19 std::map<exe_type, ExeBuilder*>::iterator itr;
-
20 for (itr = builders.begin(); itr != builders.end(); ++itr) {
-
21 ExeBuilder* builder = itr->second;
-
22 delete builder;
+
19 std::map<exe_type, ExeBuilder*>::iterator itr;
+
20 for (itr = builders.begin(); itr != builders.end(); ++itr) {
+
21 ExeBuilder* builder = itr->second;
+
22 delete builder;
23 }
24 builders.clear();
25}
+
26
+
27ExeFactory::exe_type ExeFactory::findMatching(AbstractByteBuffer *buf)
28{
29 if (!buf) return NONE;
30
31 ExeFactory::init(); //ensue that the builders are initialized
32
-
33 std::map<exe_type, ExeBuilder*>::iterator itr;
-
34 for (itr = builders.begin(); itr != builders.end(); ++itr) {
+
33 std::map<exe_type, ExeBuilder*>::iterator itr;
+
34 for (itr = builders.begin(); itr != builders.end(); ++itr) {
35
-
36 ExeBuilder* builder = itr->second;
-
37 if (builder == NULL) continue;
+
36 ExeBuilder* builder = itr->second;
+
37 if (builder == NULL) continue;
38
-
39 if (builder->signatureMatches(buf)) {
-
40 return itr->first;
+
39 if (builder->signatureMatches(buf)) {
+
40 return itr->first;
41 }
42 }
43 return NONE;
44}
+
45
-
46Executable* ExeFactory::build(AbstractByteBuffer *buf, exe_type type)
+
+
46Executable* ExeFactory::build(AbstractByteBuffer *buf, exe_type type)
47{
48 ExeFactory::init(); //ensue that the builders are initialized
49
-
50 if (builders.find(type) == builders.end()) {
-
51 return NULL;
+
50 if (builders.find(type) == builders.end()) {
+
51 return NULL;
52 }
-
53 ExeBuilder* builder = builders[type];
-
54 if (!builder) return NULL;
+
53 ExeBuilder* builder = builders[type];
+
54 if (!builder) return NULL;
55
-
56 return builder->build(buf);
+
56 return builder->build(buf);
57}
+
58
-
59QString ExeFactory::getTypeName(exe_type type)
+
+
59QString ExeFactory::getTypeName(exe_type type)
60{
61 ExeFactory::init(); //ensue that the builders are initialized
62
-
63 if (builders.find(type) == builders.end()) return "Not supported";
+
63 if (builders.find(type) == builders.end()) return "Not supported";
64
-
65 ExeBuilder* builder = builders[type];
-
66 if (builder == NULL) return "Not supported";
+
65 ExeBuilder* builder = builders[type];
+
66 if (builder == NULL) return "Not supported";
67
-
68 return builder->typeName();
+
68 return builder->typeName();
69}
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
DOSExe.h
ExeFactory.h
PEFile.h
@@ -153,7 +169,6 @@ $(function() {
DOSExeBuilder
Definition DOSExe.h:8
ExeBuilder
Definition Executable.h:14
ExeBuilder::build
virtual Executable * build(AbstractByteBuffer *buf)=0
-
ExeBuilder::signatureMatches
virtual bool signatureMatches(AbstractByteBuffer *buf)=0
ExeBuilder::typeName
virtual QString typeName()=0
ExeFactory::findMatching
static exe_type findMatching(AbstractByteBuffer *buf)
Definition ExeFactory.cpp:27
ExeFactory::builders
static std::map< exe_type, ExeBuilder * > builders
Definition ExeFactory.h:29
@@ -170,7 +185,7 @@ $(function() { diff --git a/_exe_factory_8h.html b/_exe_factory_8h.html index aa4cb29a..d1db5942 100644 --- a/_exe_factory_8h.html +++ b/_exe_factory_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/ExeFactory.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include "Executable.h"
4
+
5class ExeFactoryException : public CustomException
6{
7public:
-
8 ExeFactoryException(const QString info) : CustomException(info) {}
+
8 ExeFactoryException(const QString info) : CustomException(info) {}
9};
+
10
+
11class ExeFactory
12{
13public:
+
14 enum exe_type {
15 NONE = 0,
16 PE = 1,
19 };
+
20
21 static void init();
22 static void destroy();
23
24 static exe_type findMatching(AbstractByteBuffer *buf);
-
25 static Executable* build(AbstractByteBuffer *buf, exe_type type);
-
26 static QString getTypeName(exe_type type);
+
25 static Executable* build(AbstractByteBuffer *buf, exe_type type);
+
26 static QString getTypeName(exe_type type);
27
28protected:
29 static std::map<exe_type, ExeBuilder*> builders;
30};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
Executable.h
AbstractByteBuffer
Definition AbstractByteBuffer.h:32
CustomException
Definition CustomException.h:12
@@ -128,7 +140,7 @@ $(function() { diff --git a/_exe_node_wrapper_8cpp.html b/_exe_node_wrapper_8cpp.html index e7031825..9980cad5 100644 --- a/_exe_node_wrapper_8cpp.html +++ b/_exe_node_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/ExeNodeWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "ExeNodeWrapper.h"
2
- -
4 : ExeElementWrapper(exec), parentNode(parent), entryNum(0)
+
+ +
4 : ExeElementWrapper(exec), parentNode(parent), entryNum(0)
5{
6 wrap();
7}
+
8
-
9ExeNodeWrapper::ExeNodeWrapper(Executable *exec, ExeNodeWrapper* parent, size_t entryNumber)
-
10 : ExeElementWrapper(exec), parentNode(parent), entryNum(entryNumber)
+
+ +
10 : ExeElementWrapper(exec), parentNode(parent), entryNum(entryNumber)
11{
12 wrap();
13}
+
14
- +
+
16{
17 return this->getEntryAt(this->entries, fieldId);
18}
+
19
-
20ExeNodeWrapper* ExeNodeWrapper::getEntryAt(std::vector<ExeNodeWrapper*> &_entries, size_t fieldId)
+
+
20ExeNodeWrapper* ExeNodeWrapper::getEntryAt(std::vector<ExeNodeWrapper*> &_entries, size_t fieldId)
21{
-
22 return (fieldId < _entries.size()) ? _entries[fieldId] : NULL;
+
22 return (fieldId < _entries.size()) ? _entries[fieldId] : NULL;
23}
+
24
-
25size_t ExeNodeWrapper::getEntriesCount(std::vector<ExeNodeWrapper*> &_entries)
+
+
25size_t ExeNodeWrapper::getEntriesCount(std::vector<ExeNodeWrapper*> &_entries)
26{
-
27 return _entries.size();
+
27 return _entries.size();
28}
+
29
+
31{
32 size_t entriesCount = this->entries.size();
-
33 for (size_t i = 0; i < entriesCount; i++) {
-
34 delete this->entries[i];
+
33 for (size_t i = 0; i < entriesCount; i++) {
+
34 delete this->entries[i];
35 }
-
36 this->entries.clear();
+
36 this->entries.clear();
37}
+
38
-
39void* ExeNodeWrapper::getSubfieldPtr(size_t fieldId, size_t subField)
+
+
40{
-
41 ExeNodeWrapper* entry = this->getEntryAt(fieldId);
-
42 if (!entry) return NULL;
+
41 ExeNodeWrapper* entry = this->getEntryAt(fieldId);
+
42 if (!entry) return NULL;
43 //---
-
44 return entry->getFieldPtr(subField);
+
44 return entry->getFieldPtr(subField);
45}
+
46
-
47bufsize_t ExeNodeWrapper::getSubfieldSize(size_t fieldId, size_t subField)
+
+
48{
-
49 ExeNodeWrapper* entry = this->getEntryAt(fieldId);
-
50 if (!entry) return 0;
+
49 ExeNodeWrapper* entry = this->getEntryAt(fieldId);
+
50 if (!entry) return 0;
51 //---
-
52 return entry->getFieldSize(subField);
+
52 return entry->getFieldSize(subField);
53}
+
54
-
55QString ExeNodeWrapper::getSubfieldName(size_t fieldId, size_t subField)
+
+
56{
-
57 ExeNodeWrapper* entry = this->getEntryAt(fieldId);
-
58 if (!entry) return "";
+
57 ExeNodeWrapper* entry = this->getEntryAt(fieldId);
+
58 if (!entry) return "";
59 //---
-
60 return entry->getFieldName(subField);
+
60 return entry->getFieldName(subField);
61}
+
62
+
64{
-
65 offset_t nextOffset = getNextEntryOffset();
-
66 bufsize_t entrySize = geEntrySize();
-
67 if (entrySize == 0) return false;
+ + +
67 if (entrySize == 0) return false;
68
-
69 bufsize_t paddedSize = entrySize * 2;
-
70 bool haveSpace = this->m_Exe->isAreaEmpty(nextOffset, paddedSize);
+ +
70 bool haveSpace = this->m_Exe->isAreaEmpty(nextOffset, paddedSize);
72 "NextOffset = %llX size = %lX, canAdd: %u",
-
73 static_cast<unsigned long long>(nextOffset),
-
74 static_cast<unsigned long>(entrySize),
-
75 static_cast<unsigned int>(haveSpace)
+
73 static_cast<unsigned long long>(nextOffset),
+
74 static_cast<unsigned long>(entrySize),
+
75 static_cast<unsigned int>(haveSpace)
76 );
-
77 return haveSpace;
+
77 return haveSpace;
78}
+
79
- +
+
81{
-
82 if (!entry) return false;
+
82 if (!entry) return false;
83 return true; //type cast check in inherited wrappers
84}
+
85
+
87{
-
88 size_t lastId = this->getEntriesCount() - 1;
+
88 size_t lastId = this->getEntriesCount() - 1;
89 return this->getEntryAt(lastId);
90}
+
91
+
93{
-
94 ExeNodeWrapper *lastEntry = getLastEntry();
-
95 if (lastEntry == NULL) return INVALID_ADDR;
+ +
95 if (lastEntry == NULL) return INVALID_ADDR;
96
-
97 offset_t lastOffset = lastEntry->getOffset();
-
98 if (lastOffset == INVALID_ADDR) return INVALID_ADDR;
+
97 offset_t lastOffset = lastEntry->getOffset();
+
99
-
100 bufsize_t entrySize = lastEntry->getSize();
-
101 offset_t nextOffset = lastOffset + entrySize;
-
102 return nextOffset;
+
100 bufsize_t entrySize = lastEntry->getSize();
+ +
102 return nextOffset;
103}
+
104
+
106{
-
107 ExeNodeWrapper *lastEntry = getLastEntry();
-
108 if (lastEntry == NULL) return 0;
+ +
108 if (lastEntry == NULL) return 0;
109
-
110 bufsize_t entrySize = lastEntry->getSize();
-
111 return entrySize;
+
110 bufsize_t entrySize = lastEntry->getSize();
+
111 return entrySize;
112}
+
113
- +
+
115{
-
116 if (canAddEntry() == false) return NULL;
+
116 if (canAddEntry() == false) return NULL;
117
118 size_t entryNum = this->getEntriesCount();
119
-
120 if (nextOffset == INVALID_ADDR) return NULL;
-
121 if (entry == NULL) {
+
120 if (nextOffset == INVALID_ADDR) return NULL;
+
121 if (entry == NULL) {
122 // if no entry supplied, duplicate the last entry...
-
123 entry = this->getLastEntry();
+
123 entry = this->getLastEntry();
124 }
125
-
126 if (isMyEntryType(entry) == false) return NULL;
+
126 if (isMyEntryType(entry) == false) return NULL;
127// if (entrySize != entry->getSize()) return NULL;
-
128 if (m_Exe->pasteBuffer(nextOffset, entry, false) == false) {
-
129 return NULL;
+
128 if (m_Exe->pasteBuffer(nextOffset, entry, false) == false) {
+
129 return NULL;
130 }
-
131 if (loadNextEntry(entryNum) == false) return NULL;
+
131 if (loadNextEntry(entryNum) == false) return NULL;
134 "Entries count: %lu",
@@ -215,13 +249,17 @@ $(function() {
136 );
137 return getLastEntry();
138}
+
139
- +
+
141{
142 offset_t offset = getNextEntryOffset();
-
143 return addEntryAt(entry, offset);
+
143 return addEntryAt(entry, offset);
144}
+
145
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -229,13 +267,8 @@ $(function() {
bool pasteBuffer(offset_t rawOffset, AbstractByteBuffer *buf, bool allowTrunc)
bool isAreaEmpty(offset_t rawOffset, bufsize_t size)
-
virtual bufsize_t getSize()=0
-
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
-
virtual void * getFieldPtr(size_t fieldId, size_t subField)=0
-
virtual offset_t getOffset()
-
virtual QString getFieldName(size_t fieldId)=0
virtual bool isMyEntryType(ExeNodeWrapper *entry)
virtual void * getSubfieldPtr(size_t fieldId, size_t subField)
virtual ExeNodeWrapper * addEntryAt(ExeNodeWrapper *entry, offset_t nextOffset)
@@ -261,7 +294,7 @@ $(function() {
diff --git a/_exe_node_wrapper_8h.html b/_exe_node_wrapper_8h.html index 8f15c2b6..e0bd70a3 100644 --- a/_exe_node_wrapper_8h.html +++ b/_exe_node_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/ExeNodeWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
5
6const size_t INVALID_ENTRYNUM = (-1);
7
+
8class ExeNodeWrapper : public ExeElementWrapper
9{
10public:
-
11 ExeNodeWrapper(Executable *pe, ExeNodeWrapper* parent = NULL);
-
12 ExeNodeWrapper(Executable *pe, ExeNodeWrapper* parent, size_t entryNumber);
+
11 ExeNodeWrapper(Executable *pe, ExeNodeWrapper* parent = NULL);
+
12 ExeNodeWrapper(Executable *pe, ExeNodeWrapper* parent, size_t entryNumber);
13
14 virtual ~ExeNodeWrapper() { clear(); }
15
16 virtual bool wrap() { return true; }
17 virtual void reloadMapping() {}
18
-
19 virtual ExeNodeWrapper* getEntryAt(size_t fieldId);
+
19 virtual ExeNodeWrapper* getEntryAt(size_t fieldId);
20 virtual size_t getEntriesCount() { return getEntriesCount(this->entries); }
21 virtual size_t getEntriesNum() { return getEntriesCount(this->entries); }
22 virtual size_t getSubFieldsCount() { return (this->entries.size() == 0) ? 0 : this->entries[0]->getFieldsCount(); }
@@ -103,15 +109,15 @@ $(function() {
24 virtual ExeNodeWrapper* getParentNode() { return parentNode; }
25 size_t getEntryId() { return entryNum; }
26
-
27 virtual void* getSubfieldPtr(size_t fieldId, size_t subField);
-
28 virtual bufsize_t getSubfieldSize(size_t fieldId, size_t subField);
-
29 virtual QString getSubfieldName(size_t fieldId, size_t subField);
+
27 virtual void* getSubfieldPtr(size_t fieldId, size_t subField);
+
28 virtual bufsize_t getSubfieldSize(size_t fieldId, size_t subField);
+
29 virtual QString getSubfieldName(size_t fieldId, size_t subField);
30
-
31 virtual QString getFieldName(size_t fieldId) = 0;
+
31 virtual QString getFieldName(size_t fieldId) = 0;
32 //---
33 virtual bool canAddEntry();
34
-
35 virtual ExeNodeWrapper* addEntry(ExeNodeWrapper *entry);
+
35 virtual ExeNodeWrapper* addEntry(ExeNodeWrapper *entry);
36 ExeNodeWrapper* getLastEntry();
37 virtual offset_t getNextEntryOffset();
38 virtual bufsize_t geEntrySize();
@@ -119,22 +125,24 @@ $(function() {
40 virtual bool isValid() { return true; }
41
42protected:
-
43 size_t getEntriesCount(std::vector<ExeNodeWrapper*> &_entries);
-
44 ExeNodeWrapper* getEntryAt(std::vector<ExeNodeWrapper*> &_entries, size_t fieldId);
+
43 size_t getEntriesCount(std::vector<ExeNodeWrapper*> &_entries);
+
44 ExeNodeWrapper* getEntryAt(std::vector<ExeNodeWrapper*> &_entries, size_t fieldId);
45
46 virtual void clear();
-
47 virtual void addMapping(ExeNodeWrapper *entry) {}
+
47 virtual void addMapping(ExeNodeWrapper *entry) {}
48 virtual bool loadNextEntry(size_t entryNum) { return false; } //TODO!
-
49 virtual ExeNodeWrapper* addEntryAt(ExeNodeWrapper *entry, offset_t nextOffset);
+
49 virtual ExeNodeWrapper* addEntryAt(ExeNodeWrapper *entry, offset_t nextOffset);
50
-
51 virtual bool isMyEntryType(ExeNodeWrapper *entry); // is it an entry of appropriate type
+
51 virtual bool isMyEntryType(ExeNodeWrapper *entry); // is it an entry of appropriate type
52
53 ExeNodeWrapper* parentNode;
54 size_t entryNum;
55
56 std::vector<ExeNodeWrapper*> entries; // children
57};
+
58
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
ExeElementWrapper.h
@@ -172,7 +180,7 @@ $(function() { diff --git a/_executable_8cpp.html b/_executable_8cpp.html index ba41b6d7..cbe9b064 100644 --- a/_executable_8cpp.html +++ b/_executable_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/Executable.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "Executable.h"
2#include "FileBuffer.h"
3
- -
5 : buf(v_buf), bitMode(v_bitMode)
+
+ +
5 : buf(v_buf), bitMode(v_bitMode)
6{
-
7 if (!v_buf) throw ExeException("Cannot make an Exe from NULL buffer");
+
7 if (!v_buf) throw ExeException("Cannot make an Exe from NULL buffer");
8}
+
9
-
10BYTE* Executable::getContentAt(offset_t offset, Executable::addr_type aType, bufsize_t size, bool allowExceptions)
+
+
11{
-
12 offset_t raw = this->toRaw(offset, aType, allowExceptions);
-
13 if (raw == INVALID_ADDR) {
-
14 return NULL;
+
12 offset_t raw = this->toRaw(offset, aType, allowExceptions);
+
13 if (raw == INVALID_ADDR) {
+
14 return NULL;
15 }
-
16 return AbstractByteBuffer::getContentAt(raw, size, allowExceptions);
+
17}
+
18
- +
+
20{
-
21 if (addr == INVALID_ADDR || addrType == Executable::NOT_ADDR) {
+
22 return false;
23 }
-
24 offset_t mappedFrom = (addrType == Executable::VA) ? this->getImageBase() : 0;
-
25 offset_t mappedTo = mappedFrom + this->getMappedSize(addrType);
+ +
25 offset_t mappedTo = mappedFrom + this->getMappedSize(addrType);
26
-
27 return (addr >= mappedFrom && addr < mappedTo) ? true : false;
+
27 return (addr >= mappedFrom && addr < mappedTo) ? true : false;
28}
+
29
- +
+
31{
-
32 if (va == INVALID_ADDR) return INVALID_ADDR;
+
32 if (va == INVALID_ADDR) return INVALID_ADDR;
33
-
34 const offset_t mappedFrom = this->getImageBase();
-
35 const offset_t mappedTo = mappedFrom + this->getMappedSize(Executable::RVA);
+
34 const offset_t mappedFrom = this->getImageBase();
+
36
-
37 if (autodetect && !isValidAddr(va, Executable::VA)) {
-
38 return va;
+
37 if (autodetect && !isValidAddr(va, Executable::VA)) {
+
38 return va;
39 }
-
40 if (va < mappedFrom) return va;
+
40 if (va < mappedFrom) return va;
41
-
42 offset_t rva = va - mappedFrom;
-
43 return rva;
+ +
43 return rva;
44}
+
45
- +
+
47{
-
48 if (inType == Executable::NOT_ADDR || outType == Executable::NOT_ADDR ) {
+
49 return INVALID_ADDR;
50 }
-
51 if (!isValidAddr(inAddr, inType)) {
+
51 if (!isValidAddr(inAddr, inType)) {
52 return INVALID_ADDR;
53 }
-
54 if (inType == outType) return inAddr;
+
54 if (inType == outType) return inAddr;
55
-
56 const offset_t imgBase = this->getImageBase();
+
56 const offset_t imgBase = this->getImageBase();
57
58 if (outType == Executable::RAW) {
-
59 if (inType == Executable::VA) {
-
60 if (inAddr < imgBase) return INVALID_ADDR;
-
61 inAddr = inAddr - imgBase;
-
62 inType = Executable::RVA;
+
59 if (inType == Executable::VA) {
+
60 if (inAddr < imgBase) return INVALID_ADDR;
+ +
63 }
64 return this->rvaToRaw(inAddr);
65 }
-
66 if (inType == Executable::RAW) {
-
67 offset_t out = this->rawToRva(inAddr);
-
68 if (out == INVALID_ADDR) return INVALID_ADDR;
+
66 if (inType == Executable::RAW) {
+
67 offset_t out = this->rawToRva(inAddr);
+
68 if (out == INVALID_ADDR) return INVALID_ADDR;
69
-
70 if (outType == Executable::VA) {
-
71 return out + imgBase;
+
70 if (outType == Executable::VA) {
+
71 return out + imgBase;
72 }
-
73 return out;
+
73 return out;
74 }
-
75 if (outType == Executable::RVA) {
-
76 if (inAddr < imgBase) return INVALID_ADDR;
-
77 return inAddr - imgBase;
+
75 if (outType == Executable::RVA) {
+
76 if (inAddr < imgBase) return INVALID_ADDR;
+
77 return inAddr - imgBase;
78 }
-
79 if (outType == Executable::VA) {
-
80 return inAddr + imgBase;
+
79 if (outType == Executable::VA) {
+
80 return inAddr + imgBase;
81 }
82 return INVALID_ADDR;
83}
+
84
-
85offset_t Executable::toRaw(offset_t offset, addr_type aT, bool allowExceptions)
+
+
86{
87 if (offset == INVALID_ADDR) {
88 return INVALID_ADDR;
89 }
90
-
91 if (aT == Executable::RAW) {
+
91 if (aT == Executable::RAW) {
92 if (offset >= this->getRawSize()) {
93 return INVALID_ADDR;
94 }
@@ -175,86 +191,96 @@ $(function() {
96 return offset;
97 }
98
-
99 if (aT == Executable::VA) {
+
99 if (aT == Executable::VA) {
100 offset = VaToRva(offset, false);
-
101 aT = Executable::RVA;
+
102 }
103
-
104 offset_t convertedOffset = INVALID_ADDR;
-
105 if (aT == Executable::RVA){
+ +
105 if (aT == Executable::RVA){
106 try {
-
107 convertedOffset = this->rvaToRaw(offset);
-
108 } catch (CustomException &e) {
-
109 if (allowExceptions) throw e;
+
107 convertedOffset = this->rvaToRaw(offset);
+
108 } catch (CustomException &e) {
+
109 if (allowExceptions) throw e;
110 }
111 }
112 //---
-
113 if (convertedOffset == INVALID_ADDR) {
+
115 "Address out of bounds: offset = %llX addrType = %u",
116 static_cast<unsigned long long>(offset),
-
117 static_cast<unsigned int>(aT)
+
117 static_cast<unsigned int>(aT)
118 );
-
119 if (allowExceptions) throw CustomException("Address out of bounds!");
+
119 if (allowExceptions) throw CustomException("Address out of bounds!");
120 }
121 //---
-
122 return convertedOffset;
+
122 return convertedOffset;
123}
+
124
- +
+
126{
-
127 if (hintType == Executable::RAW) {
-
128 if (this->isValidAddr(offset, hintType) == false) {
+
127 if (hintType == Executable::RAW) {
+
128 if (this->isValidAddr(offset, hintType) == false) {
-
130 } else return hintType; // it is RAW
+
130 } else return hintType; // it is RAW
131 }
132
-
133 if (hintType == Executable::NOT_ADDR) {
-
134 hintType = Executable::RVA; // check RVA by default
+ +
134 hintType = Executable::RVA; // check RVA by default
135 }
-
136 if (this->isValidAddr(offset, hintType) == false) {
-
137 if (hintType == Executable::RVA) {
-
138 hintType = Executable::VA; // if not RVA, try VA
+
136 if (this->isValidAddr(offset, hintType) == false) {
+
137 if (hintType == Executable::RVA) {
+
138 hintType = Executable::VA; // if not RVA, try VA
139 } else {
-
140 hintType = Executable::RVA; // if not VA, try RVA
+
140 hintType = Executable::RVA; // if not VA, try RVA
141 }
142 }
-
143 if (this->isValidAddr(offset, hintType) == false) {
+
143 if (this->isValidAddr(offset, hintType) == false) {
144 return Executable::NOT_ADDR; //every attempt failed! it's invalid!
145 }
-
146 return hintType;
+
146 return hintType;
147}
+
148
- +
+
150{
-
151 FileBuffer* fBuf = dynamic_cast<FileBuffer*>(buf);
-
152 if (fBuf) {
-
153 return fBuf->getFileName();
+
151 FileBuffer* fBuf = dynamic_cast<FileBuffer*>(buf);
+
152 if (fBuf) {
+
153 return fBuf->getFileName();
154 }
155 return "";
156}
+
157
+
159{
160 if (!buf) return 0;
161
-
162 FileBuffer* fBuf = dynamic_cast<FileBuffer*>(buf);
-
163 if (fBuf) {
-
164 return fBuf->getFileSize();
+
162 FileBuffer* fBuf = dynamic_cast<FileBuffer*>(buf);
+
163 if (fBuf) {
+
164 return fBuf->getFileSize();
165 }
166 return buf->getContentSize();
167}
+
168
-
169bool Executable::dumpFragment(offset_t offset, bufsize_t size, QString fileName)
+
+
170{
-
171 BufferView *view = new BufferView(this, offset, size);
-
172 if (!view) return false;
+
171 BufferView *view = new BufferView(this, offset, size);
+
172 if (!view) return false;
173
-
174 bufsize_t dumpedSize = FileBuffer::dump(fileName, *view, false);
-
175 delete view;
+
174 bufsize_t dumpedSize = FileBuffer::dump(fileName, *view, false);
+
175 delete view;
176
-
177 return dumpedSize ? true : false;
+
177 return dumpedSize ? true : false;
178}
+
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -297,7 +323,7 @@ $(function() {
diff --git a/_executable_8h.html b/_executable_8h.html index 7159b4bb..e5bd2962 100644 --- a/_executable_8h.html +++ b/_executable_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/Executable.h File Reference @@ -30,7 +30,7 @@ - + +
5#include "AbstractByteBuffer.h"
6class Executable;
7
+
8class ExeException : public CustomException
9{
10public:
-
11 ExeException(const QString info) : CustomException(info) {}
+
11 ExeException(const QString info) : CustomException(info) {}
12};
+
13
+
14class ExeBuilder {
15public:
16 ExeBuilder() {}
@@ -97,28 +105,34 @@ $(function() {
18
19 virtual bool signatureMatches(AbstractByteBuffer *buf) = 0;
20 virtual Executable* build(AbstractByteBuffer *buf) = 0;
-
21 virtual QString typeName() = 0;
+
21 virtual QString typeName() = 0;
22};
+
23
24//-------------------------------------------------------------
25
+
26class Executable : public AbstractByteBuffer {
27public:
+
28 enum exe_bits {
30 BITS_16 = 16,
31 BITS_32 = 32,
32 BITS_64 = 64,
33 };
+
34
+
35 enum addr_type {
37 RAW = 1,
38 RVA = 2,
39 VA = 3
40 };
-
41 static bool isBit64(Executable *exe) { return (!exe || exe->getBitMode() != Executable::BITS_64) ? false: true; }
-
42 static bool isBit32(Executable *exe) { return (!exe || exe->getBitMode() != Executable::BITS_32) ? false: true; }
+
+
41 static bool isBit64(Executable *exe) { return (!exe || exe->getBitMode() != Executable::BITS_64) ? false: true; }
+
42 static bool isBit32(Executable *exe) { return (!exe || exe->getBitMode() != Executable::BITS_32) ? false: true; }
43
44 bool isBit64() { return isBit64(this); }
45 bool isBit32() { return isBit32(this); }
@@ -128,64 +142,70 @@ $(function() {
49 virtual exe_bits getBitMode() { return this->bitMode; }
50
51 virtual bufsize_t getContentSize() { return buf->getContentSize(); }
-
52 virtual BYTE* getContent() { return buf->getContent(); }
+
52 virtual BYTE* getContent() { return buf->getContent(); }
53 //wrapper:
54 virtual offset_t getRawSize() const { return static_cast<offset_t>(buf->getContentSize()); }
55
-
56 BYTE* getContentAtPtr(BYTE* ptr, bufsize_t size, bool allowExceptions = false) { return AbstractByteBuffer::getContentAtPtr(ptr, size, allowExceptions); }
-
57 BYTE* getContentAt(offset_t offset, bufsize_t size, bool allowExceptions = false) { return AbstractByteBuffer::getContentAt(offset, size, allowExceptions); }
+
56 BYTE* getContentAtPtr(BYTE* ptr, bufsize_t size, bool allowExceptions = false) { return AbstractByteBuffer::getContentAtPtr(ptr, size, allowExceptions); }
+
57 BYTE* getContentAt(offset_t offset, bufsize_t size, bool allowExceptions = false) { return AbstractByteBuffer::getContentAt(offset, size, allowExceptions); }
58
-
59 virtual BYTE* getContentAt(offset_t offset, Executable::addr_type aType, bufsize_t size, bool allowExceptions = false);
+
59 virtual BYTE* getContentAt(offset_t offset, Executable::addr_type aType, bufsize_t size, bool allowExceptions = false);
60//------------------------------
-
61 virtual bufsize_t getMappedSize(Executable::addr_type aType) = 0;
-
62 virtual bufsize_t getAlignment(Executable::addr_type aType) const = 0;
-
63 virtual offset_t getImageBase(bool recalculate = false) = 0;
-
64 virtual offset_t getEntryPoint(Executable::addr_type aType = Executable::RVA) = 0;
+
61 virtual bufsize_t getMappedSize(Executable::addr_type aType) = 0;
+
62 virtual bufsize_t getAlignment(Executable::addr_type aType) const = 0;
+
63 virtual offset_t getImageBase(bool recalculate = false) = 0;
+
64 virtual offset_t getEntryPoint(Executable::addr_type aType = Executable::RVA) = 0;
65
66 virtual bufsize_t getImageSize() { return getMappedSize(Executable::VA); }
67
68 /* All Entry Points of the application, including: main EP, Exports, TLS Callbacks */
-
69 virtual size_t getAllEntryPoints(QMap<offset_t,QString> &entrypoints, Executable::addr_type aType = Executable::RVA)
+
+
70 {
-
71 offset_t mainEP = getEntryPoint(aType);
-
72 entrypoints.insert(mainEP, "_start");
+ +
72 entrypoints.insert(mainEP, "_start");
73 return 1;
74 }
+
75
76 /* conversions */
-
77 virtual bool isValidAddr(offset_t addr, addr_type addrType);
-
78 virtual bool isValidVA(offset_t va) { return isValidAddr(va, Executable::VA); }
+
77 virtual bool isValidAddr(offset_t addr, addr_type addrType);
+
78 virtual bool isValidVA(offset_t va) { return isValidAddr(va, Executable::VA); }
79
-
80 virtual offset_t convertAddr(offset_t inAddr, Executable::addr_type inType, Executable::addr_type outType);
+
80 virtual offset_t convertAddr(offset_t inAddr, Executable::addr_type inType, Executable::addr_type outType);
81
-
82 virtual offset_t toRaw(offset_t offset, addr_type addrType, bool allowExceptions = false); //any type of offset to raw
-
83 Executable::addr_type detectAddrType(offset_t addr, Executable::addr_type hintType); //TODO
+
82 virtual offset_t toRaw(offset_t offset, addr_type addrType, bool allowExceptions = false); //any type of offset to raw
+
83 Executable::addr_type detectAddrType(offset_t addr, Executable::addr_type hintType); //TODO
84
85 // returns INVALID_ADDR if failed
86 // FileAddr <-> RVA
-
87 virtual offset_t rawToRva(offset_t raw) = 0;
-
88 virtual offset_t rvaToRaw(offset_t rva) = 0;
+
87 virtual offset_t rawToRva(offset_t raw) = 0;
+
88 virtual offset_t rvaToRaw(offset_t rva) = 0;
89
90 // VA <-> RVA
-
91 virtual offset_t VaToRva(offset_t va, bool autodetect = false);
+
91 virtual offset_t VaToRva(offset_t va, bool autodetect = false);
92
-
93 virtual offset_t rvaToVa(offset_t rva)
+
+
94 {
-
95 return (rva == INVALID_ADDR) ? INVALID_ADDR : (rva + this->getImageBase());
+
95 return (rva == INVALID_ADDR) ? INVALID_ADDR : (rva + this->getImageBase());
96 }
+
97
98 // VA -> FileAddr
-
99 virtual offset_t vaToRaw(offset_t va)
+
+
100 {
-
101 if (va == INVALID_ADDR) return INVALID_ADDR;
+
101 if (va == INVALID_ADDR) return INVALID_ADDR;
102
-
103 offset_t rva = this->VaToRva(va, true);
-
104 return rvaToRaw(rva);
+
103 offset_t rva = this->VaToRva(va, true);
+
104 return rvaToRaw(rva);
105 }
+
106
-
107 QString getFileName();
+
107 QString getFileName();
108
-
109 virtual bool resize(bufsize_t newSize) { return buf->resize(newSize); }
+
109 virtual bool resize(bufsize_t newSize) { return buf->resize(newSize); }
110
111 virtual bool isResized() { return buf ? buf->isResized() : false; }
112
@@ -195,15 +215,17 @@ $(function() {
116 AbstractByteBuffer* getFileBuffer() const { return buf; }
117 bufsize_t getFileSize() const;
118
-
119 virtual bool dumpFragment(offset_t offset, bufsize_t size, QString fileName);
+
119 virtual bool dumpFragment(offset_t offset, bufsize_t size, QString fileName);
120
121protected:
-
122 Executable(AbstractByteBuffer *v_buf, exe_bits v_bitMode);
+
122 Executable(AbstractByteBuffer *v_buf, exe_bits v_bitMode);
123
124 exe_bits bitMode;
125 AbstractByteBuffer *buf;
126};
+
127
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
AbstractByteBuffer.h
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
@@ -275,7 +297,7 @@ $(function() { diff --git a/_export_dir_wrapper_8cpp.html b/_export_dir_wrapper_8cpp.html index c0da675d..effc6c26 100644 --- a/_export_dir_wrapper_8cpp.html +++ b/_export_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/ExportDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
20} IMAGE_EXPORT_DIRECTORY, *PIMAGE_EXPORT_DIRECTORY;
21*/
22
-
23IMAGE_EXPORT_DIRECTORY* ExportDirWrapper::exportDir()
+
+
23IMAGE_EXPORT_DIRECTORY* ExportDirWrapper::exportDir()
24{
-
25 offset_t rva = getDirEntryAddress();
-
26 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_EXPORT_DIRECTORY));
-
27 if (ptr == NULL) return NULL;
+
25 offset_t rva = getDirEntryAddress();
+
26 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_EXPORT_DIRECTORY));
+
27 if (ptr == NULL) return NULL;
28
-
29 return (IMAGE_EXPORT_DIRECTORY*) ptr;
+
29 return (IMAGE_EXPORT_DIRECTORY*) ptr;
30}
+
31
+
32void ExportDirWrapper::clear()
33{
34 ExeNodeWrapper::clear();
35 this->ordToNameId.clear();
36}
+
37
+
38size_t ExportDirWrapper::mapNames()
39{
-
40 IMAGE_EXPORT_DIRECTORY* exp = exportDir();
-
41 if (exp == NULL) return 0;
+
40 IMAGE_EXPORT_DIRECTORY* exp = exportDir();
+
41 if (exp == NULL) return 0;
42
-
43 size_t maxNames = exp->NumberOfNames;
+
43 size_t maxNames = exp->NumberOfNames;
44
-
45 offset_t nameOrdRVA = exp->AddressOfNameOrdinals;
+
45 offset_t nameOrdRVA = exp->AddressOfNameOrdinals;
46 //uint64_t nameRVA = exp->AddressOfNames;
-
47 size_t i = 0;
-
48 for (i = 0; i < maxNames; i++) {
+
47 size_t i = 0;
+
48 for (i = 0; i < maxNames; i++) {
49
-
50 WORD* nameOrd = (WORD*) this->m_Exe->getContentAt(nameOrdRVA, Executable::RVA, sizeof(WORD));
+
50 WORD* nameOrd = (WORD*) this->m_Exe->getContentAt(nameOrdRVA, Executable::RVA, sizeof(WORD));
51 //DWORD* name = (DWORD*) this->m_Exe->getContentAt(nameRVA, Executable::RVA, sizeof(DWORD));
-
52 if (nameOrd == NULL) break;
+
52 if (nameOrd == NULL) break;
53
-
54 this->ordToNameId[*nameOrd] = i;//*name;
+
54 this->ordToNameId[*nameOrd] = i;//*name;
55
-
56 nameOrdRVA += sizeof(WORD);
+
56 nameOrdRVA += sizeof(WORD);
57 //nameRVA += sizeof(DWORD);
58 }
59 //printf("parsed num: %d\n", this->ordToNameRVA.size());
-
60 return i;
+
60 return i;
61}
+
62
+
63bool ExportDirWrapper::wrap()
64{
65 clear();
-
66 size_t mapNum = mapNames();
+
66 size_t mapNum = mapNames();
67
-
68 IMAGE_EXPORT_DIRECTORY* exp = exportDir();
-
69 if (exp == NULL) return 0;
+
68 IMAGE_EXPORT_DIRECTORY* exp = exportDir();
+
69 if (exp == NULL) return 0;
70
-
71 size_t maxFunc = exp->NumberOfFunctions;
+
71 size_t maxFunc = exp->NumberOfFunctions;
72
-
73 for (size_t i = 0; i < maxFunc; i++) {
+
73 for (size_t i = 0; i < maxFunc; i++) {
74 //TODO: build entries...
-
75 ExportEntryWrapper *entry = new ExportEntryWrapper(m_Exe, this, i);
-
76 if (entry->getPtr() == NULL) {
-
77 delete entry;
+
75 ExportEntryWrapper *entry = new ExportEntryWrapper(m_Exe, this, i);
+
76 if (entry->getPtr() == NULL) {
+
77 delete entry;
78 break;
79 }
80 this->entries.push_back(entry);
81 }
82 return true;
83}
+
84
+
85bufsize_t ExportDirWrapper::getSize()
86{
-
87 if (getPtr() == NULL) return 0;
-
88 return sizeof(IMAGE_EXPORT_DIRECTORY);
+
87 if (getPtr() == NULL) return 0;
+
88 return sizeof(IMAGE_EXPORT_DIRECTORY);
89}
+
90
-
91QString ExportDirWrapper::getName()
+
+
91QString ExportDirWrapper::getName()
92{
-
93 QString infoName = "Export";
-
94 QString libName = this->getLibraryName();
+
93 QString infoName = "Export";
+
94 QString libName = this->getLibraryName();
95 if (libName.length() >= 0) {
-
96 infoName += ": "+ libName;
+
96 infoName += ": "+ libName;
97 }
-
98 return infoName;
+
98 return infoName;
99}
+
100
-
101void* ExportDirWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
101void* ExportDirWrapper::getFieldPtr(size_t fId, size_t subField)
102{
-
103 IMAGE_EXPORT_DIRECTORY* d = exportDir();
-
104 if (d == NULL) return NULL;
+
103 IMAGE_EXPORT_DIRECTORY* d = exportDir();
+
104 if (d == NULL) return NULL;
105
-
106 switch (fId) {
-
107 case CHARACTERISTIC: return &d->Characteristics;
-
108 case TIMESTAMP: return &d->TimeDateStamp;
-
109 case MAJOR_VER: return &d->MajorVersion;
-
110 case MINOR_VER: return &d->MinorVersion;
-
111 case NAME_RVA: return &d->Name;
-
112 case BASE: return &d->Base;
-
113 case FUNCTIONS_NUM: return &d->NumberOfFunctions;
-
114 case NAMES_NUM: return &d->NumberOfNames;
-
115 case FUNCTIONS_RVA: return &d->AddressOfFunctions;
-
116 case FUNC_NAMES_RVA: return &d->AddressOfNames;
-
117 case NAMES_ORDINALS_RVA: return &d->AddressOfNameOrdinals;
+
106 switch (fId) {
+
107 case CHARACTERISTIC: return &d->Characteristics;
+
108 case TIMESTAMP: return &d->TimeDateStamp;
+
109 case MAJOR_VER: return &d->MajorVersion;
+
110 case MINOR_VER: return &d->MinorVersion;
+
111 case NAME_RVA: return &d->Name;
+
112 case BASE: return &d->Base;
+
113 case FUNCTIONS_NUM: return &d->NumberOfFunctions;
+
114 case NAMES_NUM: return &d->NumberOfNames;
+
115 case FUNCTIONS_RVA: return &d->AddressOfFunctions;
+
116 case FUNC_NAMES_RVA: return &d->AddressOfNames;
+
117 case NAMES_ORDINALS_RVA: return &d->AddressOfNameOrdinals;
118 }
119 return this->getPtr();
120}
+
121
-
122QString ExportDirWrapper::getFieldName(size_t fieldId)
+
+
122QString ExportDirWrapper::getFieldName(size_t fieldId)
123{
124 switch (fieldId) {
125 case CHARACTERISTIC: return "Characteristics";
126 case TIMESTAMP: {
-
127 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
-
128 if (myPe && myPe->isReproBuild()) {
+
127 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
+
128 if (myPe && myPe->isReproBuild()) {
129 return "ReproChecksum";
130 }
131 return "TimeDateStamp";
@@ -221,10 +241,12 @@ $(function() {
142 }
143 return getName();
144}
+
145
-
146Executable::addr_type ExportDirWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
146Executable::addr_type ExportDirWrapper::containsAddrType(size_t fieldId, size_t subField)
147{
-
148 switch (fieldId) {
+
148 switch (fieldId) {
149 case NAME_RVA:
150 case FUNCTIONS_RVA:
151 case FUNC_NAMES_RVA:
@@ -233,23 +255,27 @@ $(function() {
154 }
155 return Executable::NOT_ADDR;
156}
+
157
+
158char* ExportDirWrapper::_getLibraryName()
159{
-
160 bool isOk = false;
+
160 bool isOk = false;
161 offset_t offset = this->getNumValue(NAME_RVA, &isOk);
-
162 if (!isOk) return NULL;
+
162 if (!isOk) return NULL;
163
-
164 Executable::addr_type aT = containsAddrType(NAME_RVA);
-
165 if (aT == Executable::NOT_ADDR) return NULL;
+
164 Executable::addr_type aT = containsAddrType(NAME_RVA);
+
165 if (aT == Executable::NOT_ADDR) return NULL;
166
-
167 char *ptr = (char*) m_Exe->getContentAt(offset, aT, 1);
-
168 if (!ptr) return NULL;
+
167 char *ptr = (char*) m_Exe->getContentAt(offset, aT, 1);
+
168 if (!ptr) return NULL;
169
170 return ptr;
171}
+
172
-
173QString ExportDirWrapper::getLibraryName()
+
+
173QString ExportDirWrapper::getLibraryName()
174{
175 char *name = this->_getLibraryName();
176 if (!name) return name;
@@ -257,155 +283,177 @@ $(function() {
178 if (pe_util::isStrLonger(name, 100)) {
179 return INVALID_NAME;
180 }
-
181 return QString(name);
+
181 return QString(name);
182}
+
183
184//----------------------------------------------------------------------------------------------------
-
185void* ExportEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
185void* ExportEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
186{
-
187 switch (fieldId) {
+
187 switch (fieldId) {
188 case FUNCTION_RVA: return getFuncRvaPtr();
189 case NAME_RVA: return getFuncNameRvaPtr();
190 }
191 return getPtr();
192}
+
193
-
194DWORD* ExportEntryWrapper::getFuncRvaPtr()
+
194DWORD* ExportEntryWrapper::getFuncRvaPtr()
195{
-
196 if (this->parentDir == NULL) return NULL;
-
197 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
-
198 if (exp == NULL) return NULL;
+
196 if (this->parentDir == NULL) return NULL;
+
197 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
198 if (exp == NULL) return NULL;
199
-
200 uint64_t funcRva = exp->AddressOfFunctions;
-
201 funcRva += (this->entryNum * sizeof(DWORD));
+
200 uint64_t funcRva = exp->AddressOfFunctions;
+
201 funcRva += (this->entryNum * sizeof(DWORD));
202
-
203 DWORD *ptr = (DWORD*) m_Exe->getContentAt(funcRva, Executable::RVA, sizeof(DWORD));
+
203 DWORD *ptr = (DWORD*) m_Exe->getContentAt(funcRva, Executable::RVA, sizeof(DWORD));
204 return ptr;
205}
206
+
207bufsize_t ExportEntryWrapper::getSize()
208{
-
209 if (this->parentDir == NULL || parentDir->exportDir() == NULL) {
+
209 if (this->parentDir == NULL || parentDir->exportDir() == NULL) {
210 return 0;
211 }
-
212 return sizeof(DWORD);
+
212 return sizeof(DWORD);
213}
+
214
+
215bool ExportEntryWrapper::isByOrdinal()
216{
-
217 if (getFuncName() == NULL) return true;
+
217 if (getFuncName() == NULL) return true;
218 return false;
219}
+
220
-
221QString ExportEntryWrapper::getName()
+
+
221QString ExportEntryWrapper::getName()
222{
223 if (isByOrdinal()) {
-
224 uint32_t val = getOrdinal();
-
225 QString ordStr;
-
226 QTextStream(&ordStr) << "<ord: " << QString::number(val, 16) << ">";
-
227 return ordStr;
+
224 uint32_t val = getOrdinal();
+
225 QString ordStr;
+
226 QTextStream(&ordStr) << "<ord: " << QString::number(val, 16) << ">";
+
227 return ordStr;
228 }
229 char* name = getFuncName();
-
230 if (name == NULL) return "";
-
231 return QString(name);
+
230 if (name == NULL) return "";
+
231 return QString(name);
232}
+
233
-
234QString ExportEntryWrapper::getFieldName(size_t fieldId)
+
+
234QString ExportEntryWrapper::getFieldName(size_t fieldId)
235{
-
236 switch (fieldId) {
+
236 switch (fieldId) {
237 case FUNCTION_RVA: return "FuncRva";
238 case NAME_RVA: return "FuncNameRva";
239 }
240 return "";
241}
+
242
+
243offset_t ExportEntryWrapper::getFuncRva()
244{
-
245 DWORD *ptr = this->getFuncRvaPtr();
-
246 if (ptr == NULL) return INVALID_ADDR;
-
247 offset_t addr = static_cast<offset_t>(*ptr);
-
248 return addr;
+
245 DWORD *ptr = this->getFuncRvaPtr();
+
246 if (ptr == NULL) return INVALID_ADDR;
+
247 offset_t addr = static_cast<offset_t>(*ptr);
+
248 return addr;
249}
+
250
-
251uint32_t ExportEntryWrapper::getOrdinal()
+
+
251uint32_t ExportEntryWrapper::getOrdinal()
252{
-
253 if (this->parentDir == NULL) return 0;
-
254 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
-
255 if (exp == NULL) return 0;
+
253 if (this->parentDir == NULL) return 0;
+
254 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
255 if (exp == NULL) return 0;
256
-
257 uint32_t ordinal = static_cast<uint32_t>(this->entryNum) + exp->Base;
-
258 return ordinal;
+
257 uint32_t ordinal = static_cast<uint32_t>(this->entryNum) + exp->Base;
+
258 return ordinal;
259}
+
260
-
261uint32_t ExportEntryWrapper::getFuncNameId()
+
261uint32_t ExportEntryWrapper::getFuncNameId()
262{
-
263 if (this->parentDir == NULL) return INVALID_ID;
+
263 if (this->parentDir == NULL) return INVALID_ID;
264
-
265 WORD ord = static_cast<WORD>(this->entryNum);
-
266 std::map<WORD, DWORD>::iterator found = parentDir->ordToNameId.find(ord);
-
267 if (found == parentDir->ordToNameId.end()) {
+
265 WORD ord = static_cast<WORD>(this->entryNum);
+
266 std::map<WORD, DWORD>::iterator found = parentDir->ordToNameId.find(ord);
+
267 if (found == parentDir->ordToNameId.end()) {
268 return INVALID_ID;
269 }
-
270 return found->second;
+
270 return found->second;
271}
272
273void* ExportEntryWrapper::getFuncNameRvaPtr()
274{
-
275 uint32_t nameId = getFuncNameId();
-
276 if (nameId == INVALID_ID) return NULL;
+
275 uint32_t nameId = getFuncNameId();
+
276 if (nameId == INVALID_ID) return NULL;
277
-
278 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
-
279 if (exp == NULL) return NULL;
+
278 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
279 if (exp == NULL) return NULL;
280
-
281 if (nameId >= exp->NumberOfNames) return NULL;
+
281 if (nameId >= exp->NumberOfNames) return NULL;
282
-
283 uint64_t nameAddrRVA = exp->AddressOfNames + (nameId * sizeof(DWORD));
-
284 DWORD* valuePtr = (DWORD*) this->m_Exe->getContentAt(nameAddrRVA, Executable::RVA, sizeof(DWORD));
-
285 return valuePtr;
+
283 uint64_t nameAddrRVA = exp->AddressOfNames + (nameId * sizeof(DWORD));
+
284 DWORD* valuePtr = (DWORD*) this->m_Exe->getContentAt(nameAddrRVA, Executable::RVA, sizeof(DWORD));
+
285 return valuePtr;
286}
287
+
288offset_t ExportEntryWrapper::getFuncNameRva()
289{
-
290 DWORD* valuePtr = (DWORD*) getFuncNameRvaPtr();
-
291 if (valuePtr == NULL) return INVALID_ADDR;
-
292 DWORD value = (*valuePtr);
-
293 return static_cast<offset_t>(value);
+
290 DWORD* valuePtr = (DWORD*) getFuncNameRvaPtr();
+
291 if (valuePtr == NULL) return INVALID_ADDR;
+
292 DWORD value = (*valuePtr);
+
293 return static_cast<offset_t>(value);
294}
+
295
+
296char* ExportEntryWrapper::getFuncName()
297{
-
298 uint64_t funcRva = getFuncNameRva();
-
299 if (funcRva == INVALID_ADDR) return NULL;
+
298 uint64_t funcRva = getFuncNameRva();
+
299 if (funcRva == INVALID_ADDR) return NULL;
300
301 char* name = (char*) this->m_Exe->getContentAt(funcRva, Executable::RVA, 1);
-
302 if (name == NULL) return NULL;
+
302 if (name == NULL) return NULL;
303 //TODO.... verify
304 return name;
305}
+
306
+
307char* ExportEntryWrapper::getForwarder()
308{
-
309 if (this->parentDir == NULL) return NULL;
-
310 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
-
311 if (exp == NULL) return NULL;
+
309 if (this->parentDir == NULL) return NULL;
+
310 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
311 if (exp == NULL) return NULL;
312
-
313 DWORD* funcRvaPtr = (DWORD*) this->getFuncRvaPtr();
-
314 if (funcRvaPtr == NULL) return NULL;
+
313 DWORD* funcRvaPtr = (DWORD*) this->getFuncRvaPtr();
+
314 if (funcRvaPtr == NULL) return NULL;
315
-
316 char* strPtr = (char*) m_Exe->getContentAt( (*funcRvaPtr), Executable::RVA, 1);
-
317 if (strPtr == NULL) return NULL;
+
316 char* strPtr = (char*) m_Exe->getContentAt( (*funcRvaPtr), Executable::RVA, 1);
+
317 if (strPtr == NULL) return NULL;
318
-
319 uint64_t offset = m_Exe->getOffset((BYTE*) strPtr);
-
320 if (offset == INVALID_ADDR) return NULL;
+
319 uint64_t offset = m_Exe->getOffset((BYTE*) strPtr);
+
320 if (offset == INVALID_ADDR) return NULL;
321
-
322 size_t maxLen = m_Exe->getRawSize() - offset;
-
323 size_t forwarderNameLen = pe_util::forwarderNameLen(strPtr, maxLen);
+
322 size_t maxLen = m_Exe->getRawSize() - offset;
+
323 size_t forwarderNameLen = pe_util::forwarderNameLen(strPtr, maxLen);
324 if (forwarderNameLen > 0) {
-
325 return strPtr;
+
325 return strPtr;
326 }
-
327 return NULL;
+
327 return NULL;
328}
+
329
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -471,7 +519,7 @@ $(function() { diff --git a/_export_dir_wrapper_8h.html b/_export_dir_wrapper_8h.html index bf0cbf40..7de328ba 100644 --- a/_export_dir_wrapper_8h.html +++ b/_export_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/ExportDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include "DataDirEntryWrapper.h"
4
+
5class ExportDirWrapper : public DataDirEntryWrapper
6{
7public:
8
+
@@ -100,84 +107,95 @@ $(function() {
23 };
+
24
+
-
26 : DataDirEntryWrapper(pe, pe::DIR_EXPORT) { wrap(); }
+
26 : DataDirEntryWrapper(pe, pe::DIR_EXPORT) { wrap(); }
+
27
28 bool wrap();
29
30 virtual void* getPtr() { return exportDir(); }
31 virtual bufsize_t getSize();
-
32 virtual QString getName();
+
32 virtual QString getName();
33 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
34 virtual size_t getSubFieldsCount() { return 1; }
35
-
36 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
37 virtual QString getFieldName(size_t fieldId);
-
38 virtual QString getLibraryName();
+
36 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
37 virtual QString getFieldName(size_t fieldId);
+
38 virtual QString getLibraryName();
39
-
40 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
40 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
41
42protected:
43 char* _getLibraryName();
44 void clear();
45 size_t mapNames();
46
-
47 IMAGE_EXPORT_DIRECTORY* exportDir();
+
47 IMAGE_EXPORT_DIRECTORY* exportDir();
48 std::map<WORD, DWORD> ordToNameId;
49
50friend class ExportEntryWrapper;
51};
+
52
53
+
54class ExportEntryWrapper : public ExeNodeWrapper
55{
56public:
57 // fields :
+
58 enum FieldID {
63 };
+
64
-
65 ExportEntryWrapper(Executable *pe, ExportDirWrapper *parentDir, size_t entryNumber)
-
66 : ExeNodeWrapper(pe, parentDir, entryNumber) { this->parentDir = parentDir; }
+
+ +
66 : ExeNodeWrapper(pe, parentDir, entryNumber) { this->parentDir = parentDir; }
+
67
68 // full structure boundaries
69 virtual void* getPtr() { return getFuncRvaPtr(); }
70 virtual bufsize_t getSize();
-
71 virtual QString getName();
+
71 virtual QString getName();
72
73 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
74 virtual size_t getSubFieldsCount() { return 1; }
75
76 // specific field boundaries
-
77 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);// { return getPtr(); }
-
78 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE) { return sizeof(DWORD); }
+
77 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);// { return getPtr(); }
+
78 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE) { return sizeof(DWORD); }
79
-
80 virtual QString getFieldName(size_t fieldId);
-
81 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::RVA; }
+
80 virtual QString getFieldName(size_t fieldId);
+
81 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::RVA; }
82
83 bool isByOrdinal();
-
84 uint32_t getOrdinal();
+
84 uint32_t getOrdinal();
85
86 offset_t getFuncRva();
87 offset_t getFuncNameRva();
88
89 char* getFuncName();
-
90 QString getuncNameStr() { char* name = getFuncName(); return name ? name : ""; }
+
90 QString getuncNameStr() { char* name = getFuncName(); return name ? name : ""; }
91 char* getForwarder(); // NULL if not forwarded
-
92 QString getForwarderStr() { char* forwarder = getForwarder(); return forwarder ? forwarder : ""; }
+
92 QString getForwarderStr() { char* forwarder = getForwarder(); return forwarder ? forwarder : ""; }
93
94private:
-
95 DWORD* getFuncRvaPtr();
-
96 uint32_t getFuncNameId();
+
95 DWORD* getFuncRvaPtr();
+
96 uint32_t getFuncNameId();
97 void* getFuncNameRvaPtr();
98
99 ExportDirWrapper* parentDir;
100};
+
101
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
DataDirEntryWrapper.h
@@ -246,7 +264,7 @@ $(function() { diff --git a/_file_buffer_8cpp.html b/_file_buffer_8cpp.html index be043ed5..d60e0ab8 100644 --- a/_file_buffer_8cpp.html +++ b/_file_buffer_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/FileBuffer.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "FileBuffer.h"
2
3
-
4FileView::FileView(QString &path, bufsize_t maxSize)
-
5 : AbstractFileBuffer(path), fIn (path)
+
+ +
6{
7 if (fIn.open(QIODevice::ReadOnly) == false) {
-
8 throw FileBufferException("Cannot open the file: " + path);
+
8 throw FileBufferException("Cannot open the file: " + path);
9 }
10 this->fileSize = fIn.size();
11 if (fileSize == 0) {
12 std::cerr << fIn.errorString().toStdString() << std::endl;
13 throw FileBufferException("The file is empty");
14 }
-
15 bufsize_t readableSize = getMappableSize(fIn);
-
16 this->mappedSize = (readableSize > maxSize) ? maxSize : readableSize;
+ +
16 this->mappedSize = (readableSize > maxSize) ? maxSize : readableSize;
17
-
18 uchar *pData = fIn.map(0, this->mappedSize);
+
18 uchar *pData = fIn.map(0, this->mappedSize);
19 if (!pData) {
-
20 throw BufferException("Cannot map the file: " + path + " of size: 0x" + QString::number(this->mappedSize, 16));
+
20 throw BufferException("Cannot map the file: " + path + " of size: 0x" + QString::number(this->mappedSize, 16));
21 }
-
22 this->mappedContent = (BYTE*) pData;
+
22 this->mappedContent = (BYTE*) pData;
23}
+
24
+
26{
-
27 fIn.unmap((uchar*)this->mappedContent);
+
27 fIn.unmap((uchar*)this->mappedContent);
28 fIn.close();
29}
+
30
- +
+
32{
34 if (size > FILEVIEW_MAXSIZE) {
@@ -115,107 +125,117 @@ $(function() {
36 }
37 return size;
38}
+
39//----------------------------------------------------------------
40
-
41ByteBuffer* AbstractFileBuffer::read(QString &path, bufsize_t minBufSize, const bool allowTruncate)
+
+
42{
-
43 QFile fIn(path);
+
43 QFile fIn(path);
44 if (fIn.open(QIODevice::ReadOnly) == false) {
-
45 throw FileBufferException("Cannot open the file: " + path);
+
45 throw FileBufferException("Cannot open the file: " + path);
46 }
-
47 ByteBuffer *bufferedFile = read(fIn, minBufSize, allowTruncate);
+
48 fIn.close();
-
49 return bufferedFile;
+
49 return bufferedFile;
50}
+
51
-
52ByteBuffer* AbstractFileBuffer::read(QFile &fIn, bufsize_t minBufSize, const bool allowTruncate) //throws exceptions
+
+
53{
-
54 bufsize_t readableSize = getReadableSize(fIn);
-
55 bufsize_t allocSize = (readableSize < minBufSize) ? minBufSize : readableSize;
+ +
56
-
57 ByteBuffer *bufferedFile = NULL;
+
58 do {
59 try {
-
60 bufferedFile = new ByteBuffer(allocSize); //throws exceptions
+
60 bufferedFile = new ByteBuffer(allocSize); //throws exceptions
61 }
-
62 catch (CustomException &e)
+
62 catch (CustomException &e)
63 {
-
64 if (!allowTruncate) throw;
-
65 allocSize /= 2;
+
64 if (!allowTruncate) throw;
+
65 allocSize /= 2;
66 }
-
67 } while(!bufferedFile && allocSize);
+
67 } while(!bufferedFile && allocSize);
68
-
69 char *content = (char*) bufferedFile->getContent();
-
70 bufsize_t contentSize = bufferedFile->getContentSize();
+
69 char *content = (char*) bufferedFile->getContent();
+
70 bufsize_t contentSize = bufferedFile->getContentSize();
71
72 if (!content || !contentSize) throw FileBufferException("Cannot allocate buffer");
73 //printf("Reading...%lx , BUFSIZE_MAX = %lx\n", allocSize, BUFSIZE_MAX);
74
-
75 bufsize_t readSize = 0;
-
76 offset_t prevOffset = 0;
-
77 offset_t maxOffset = contentSize - 1;
+ + +
77 offset_t maxOffset = contentSize - 1;
78
-
79 while (offset_t(fIn.pos()) < maxOffset) {
+
79 while (offset_t(fIn.pos()) < maxOffset) {
80
-
81 bufsize_t maxSize = contentSize - readSize;
-
82 if (maxSize > FILEVIEW_MAXSIZE) maxSize = FILEVIEW_MAXSIZE;
+
81 bufsize_t maxSize = contentSize - readSize;
+
83
-
84 readSize += fIn.read(content + readSize, maxSize);
-
85 if (prevOffset == fIn.pos()) break; //cannot read more!
-
86 prevOffset = fIn.pos();
+
84 readSize += fIn.read(content + readSize, maxSize);
+
85 if (prevOffset == fIn.pos()) break; //cannot read more!
+
86 prevOffset = fIn.pos();
87 }
89 "Read size: %lX",
-
90 static_cast<unsigned long>(readSize)
+
90 static_cast<unsigned long>(readSize)
91 );
-
92 return bufferedFile;
+
92 return bufferedFile;
93}
+
94
- +
+
96{
-
97 qint64 fileSize = fIn.size();
-
98 if (fileSize > qint64(FILE_MAXSIZE)) {
-
99 fileSize = qint64(FILE_MAXSIZE);
+
97 qint64 fileSize = fIn.size();
+ +
100 }
101 return static_cast<bufsize_t>(fileSize);
102}
+
103
- +
+
105{
-
106 if (!path.length()) return 0;
-
107 QFile fIn(path);
+
106 if (!path.length()) return 0;
+
107 QFile fIn(path);
108 if (!fIn.open(QIODevice::ReadOnly)) return 0;
109 const bufsize_t size = getReadableSize(fIn);
110 fIn.close();
111 return size;
112}
+
113
-
114bufsize_t AbstractFileBuffer::dump(const QString &path, AbstractByteBuffer &bBuf, bool allowExceptions)
+
+
115{
-
116 BYTE* buf = bBuf.getContent();
-
117 bufsize_t bufSize = bBuf.getContentSize();
-
118 if (buf == NULL) {
-
119 if (allowExceptions) throw FileBufferException("Buffer is empty");
+
116 BYTE* buf = bBuf.getContent();
+
117 bufsize_t bufSize = bBuf.getContentSize();
+
118 if (buf == NULL) {
+
119 if (allowExceptions) throw FileBufferException("Buffer is empty");
120 return 0;
121 }
-
122 QFile fOut(path);
-
123 if (fOut.open(QFile::WriteOnly) == false) {
-
124 if (allowExceptions) throw FileBufferException("Cannot open the file: " + path + " for writing");
+
122 QFile fOut(path);
+
123 if (fOut.open(QFile::WriteOnly) == false) {
+
124 if (allowExceptions) throw FileBufferException("Cannot open the file: " + path + " for writing");
125 return 0;
126 }
-
127 bufsize_t wrote = static_cast<bufsize_t> (fOut.write((char*)buf, bufSize));
-
128 fOut.close();
-
129 return wrote;
+
127 bufsize_t wrote = static_cast<bufsize_t> (fOut.write((char*)buf, bufSize));
+
128 fOut.close();
+
129 return wrote;
130}
+
131
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
uint64_t offset_t
const bufsize_t FILEVIEW_MAXSIZE
Definition FileBuffer.h:7
const bufsize_t FILE_MAXSIZE
Definition FileBuffer.h:6
-
virtual bufsize_t getContentSize()=0
-
virtual BYTE * getContent()=0
static bufsize_t getReadableSize(QFile &fIn)
static bufsize_t dump(const QString &fileName, AbstractByteBuffer &buf, bool allowExceptions=false)
@@ -223,8 +243,6 @@ $(function() { -
virtual BYTE * getContent()
Definition ByteBuffer.h:16
-
virtual bufsize_t getContentSize()
Definition ByteBuffer.h:15
virtual ~FileView()
@@ -238,7 +256,7 @@ $(function() {
diff --git a/_file_buffer_8h.html b/_file_buffer_8h.html index 1c48a87f..c4df2e08 100644 --- a/_file_buffer_8h.html +++ b/_file_buffer_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/FileBuffer.h File Reference @@ -30,7 +30,7 @@ - + +
6const bufsize_t FILE_MAXSIZE = BUFSIZE_MAX;
7const bufsize_t FILEVIEW_MAXSIZE = (1024*1024*400); //419mb
8
+
9class FileBufferException : public BufferException
10{
11public:
-
12 FileBufferException(const QString info) : BufferException(info) {}
+
12 FileBufferException(const QString info) : BufferException(info) {}
13};
+
14
15
+
16class AbstractFileBuffer {
17public:
-
18 static ByteBuffer* read(QString &file, bufsize_t minBufSize, const bool allowTruncate); //throws exceptions
-
19 static bufsize_t getReadableSize(QFile &fIn);
+
18 static ByteBuffer* read(QString &file, bufsize_t minBufSize, const bool allowTruncate); //throws exceptions
+
19 static bufsize_t getReadableSize(QFile &fIn);
20
-
21 static bufsize_t getReadableSize(const QString &path);
-
22 static bufsize_t dump(const QString &fileName, AbstractByteBuffer &buf, bool allowExceptions = false);
-
23 QString getFileName() { return this->fileName; }
+
21 static bufsize_t getReadableSize(const QString &path);
+
22 static bufsize_t dump(const QString &fileName, AbstractByteBuffer &buf, bool allowExceptions = false);
+
23 QString getFileName() { return this->fileName; }
24
25protected:
-
26 static ByteBuffer* read(QFile &fIn, bufsize_t minBufSize, const bool allowTruncate); //throws exceptions
+
26 static ByteBuffer* read(QFile &fIn, bufsize_t minBufSize, const bool allowTruncate); //throws exceptions
27
-
28 AbstractFileBuffer(QString v_fileName) :fileName(v_fileName) {}
+
28 AbstractFileBuffer(QString v_fileName) :fileName(v_fileName) {}
29
-
30 QString fileName;
-
31 qint64 fileSize; // real size of the file
+
30 QString fileName;
+
31 qint64 fileSize; // real size of the file
32};
+
33
34
+
35class FileView : public AbstractByteBuffer, public AbstractFileBuffer
36{
37public:
-
38 static bufsize_t getMappableSize(QFile &fIn);
+
38 static bufsize_t getMappableSize(QFile &fIn);
39
-
40 FileView(QString &fileName, bufsize_t maxSize = FILE_MAXSIZE); //throws exceptions
+
40 FileView(QString &fileName, bufsize_t maxSize = FILE_MAXSIZE); //throws exceptions
41 virtual ~FileView();
42
43 virtual bufsize_t getContentSize() { return mappedSize; }
-
44 virtual BYTE* getContent() { return mappedContent; }
+
44 virtual BYTE* getContent() { return mappedContent; }
45 bufsize_t getMappableSize() { return FileView::getMappableSize(fIn); }
46 virtual bool isTruncated() { return fIn.size() > mappedSize; }
47
48protected:
-
49 BYTE *mappedContent;
+
49 BYTE *mappedContent;
50 bufsize_t mappedSize;
-
51 QFile fIn;
+
51 QFile fIn;
52};
+
53
54
+
55class FileBuffer : public AbstractByteBuffer, public AbstractFileBuffer
56{
57public:
-
58 FileBuffer(QString &fileName, bufsize_t minSize, bool allowTruncate) //throws exceptions
+
+
60 {
-
61 QFile fIn(fileName);
+
61 QFile fIn(fileName);
62 if (fIn.open(QFile::ReadOnly) == false) {
63 throw FileBufferException("Cannot open the file: " + fileName);
64 }
65 fileSize = fIn.size();
-
66 this->m_Buf = read(fIn, minSize, allowTruncate);//throws exceptions
+
66 this->m_Buf = read(fIn, minSize, allowTruncate);//throws exceptions
67 fIn.close();
68 }
+
69
70 virtual ~FileBuffer() { delete m_Buf; }
71
-
72 virtual bufsize_t getContentSize() { return (m_Buf == NULL) ? 0 : m_Buf->getContentSize(); }
-
73 virtual BYTE* getContent() { return (m_Buf == NULL) ? NULL : m_Buf->getContent(); }
+
72 virtual bufsize_t getContentSize() { return (m_Buf == NULL) ? 0 : m_Buf->getContentSize(); }
+
73 virtual BYTE* getContent() { return (m_Buf == NULL) ? NULL : m_Buf->getContent(); }
74 offset_t getFileSize() { return static_cast<offset_t>(fileSize); }
-
75 bool resize(bufsize_t newSize) { return m_Buf->resize(newSize); }
+
75 bool resize(bufsize_t newSize) { return m_Buf->resize(newSize); }
76
77 virtual bool isResized() { return m_Buf ? m_Buf->isResized() : false; }
78
+
79 virtual bool isTruncated()
80 {
81 if (!m_Buf) return false;
82 return fileSize > this->m_Buf->getContentSize();
83 }
+
84
85protected:
86 ByteBuffer* m_Buf;
87};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
BUFSIZE_MAX
const bufsize_t BUFSIZE_MAX
Definition AbstractByteBuffer.h:15
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -209,7 +227,7 @@ $(function() { diff --git a/_file_hdr_wrapper_8cpp.html b/_file_hdr_wrapper_8cpp.html index cc9a1e29..a2a303fb 100644 --- a/_file_hdr_wrapper_8cpp.html +++ b/_file_hdr_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/FileHdrWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
4#include <time.h>
5#include <QDateTime>
6
+
7namespace util {
-
8 QString getDateString(const quint64 timestamp)
+
+
9 {
-
10 const time_t rawtime = (const time_t)timestamp;
-
11 QString format = "dddd, dd.MM.yyyy hh:mm:ss";
-
12 QDateTime date1(QDateTime(QDateTime::fromTime_t(rawtime)));
-
13 return date1.toUTC().toString(format) + " UTC";
+
10 const time_t rawtime = (const time_t)timestamp;
+
11 QString format = "dddd, dd.MM.yyyy hh:mm:ss";
+
12 QDateTime date1(QDateTime(QDateTime::fromTime_t(rawtime)));
+
13 return date1.toUTC().toString(format) + " UTC";
14 }
+
15};
+
16
17
18std::map<DWORD, QString> FileHdrWrapper::s_fHdrCharact;
19std::map<DWORD, QString> FileHdrWrapper::s_machine;
20
+
21void FileHdrWrapper::initCharact()
22{
23 if (s_fHdrCharact.size() != 0) {
24 return; //already initialized
25 }
-
26 s_fHdrCharact[F_RELOCS_STRIPPED] = "Relocation info stripped from file.";
-
27 s_fHdrCharact[F_EXECUTABLE_IMAGE] = "File is executable (i.e. no unresolved external references).";
-
28 s_fHdrCharact[F_LINE_NUMS_STRIPPED] = "Line numbers stripped from file.";
-
29 s_fHdrCharact[F_LOCAL_SYMS_STRIPPED] = "Local symbols stripped from file.";
-
30 s_fHdrCharact[F_AGGRESIVE_WS_TRIM] = "Aggressively trim working set";
-
31 s_fHdrCharact[F_LARGE_ADDRESS_AWARE] = "App can handle >2gb addresses";
-
32 s_fHdrCharact[F_BYTES_REVERSED_LO] = "Bytes of machine word are reversed.";
-
33 s_fHdrCharact[F_MACHINE_32BIT] = "32 bit word machine.";
-
34 s_fHdrCharact[F_DEBUG_STRIPPED] = "Debugging info stripped from file in .DBG file";
-
35 s_fHdrCharact[F_REMOVABLE_RUN_FROM_SWAP] = "If Image is on removable media, copy and run from the swap file.";
-
36 s_fHdrCharact[F_NET_RUN_FROM_SWAP] = "If Image is on Net, copy and run from the swap file.";
-
37 s_fHdrCharact[F_SYSTEM] = "System File.";
-
38 s_fHdrCharact[F_DLL] = "File is a DLL.";
-
39 s_fHdrCharact[F_UP_SYSTEM_ONLY] = "File should only be run on a UP machine";
-
40 s_fHdrCharact[F_BYTES_REVERSED_HI] = "Bytes of machine word are reversed.";
+
26 s_fHdrCharact[F_RELOCS_STRIPPED] = "Relocation info stripped from file.";
+
27 s_fHdrCharact[F_EXECUTABLE_IMAGE] = "File is executable (i.e. no unresolved external references).";
+
28 s_fHdrCharact[F_LINE_NUMS_STRIPPED] = "Line numbers stripped from file.";
+
29 s_fHdrCharact[F_LOCAL_SYMS_STRIPPED] = "Local symbols stripped from file.";
+
30 s_fHdrCharact[F_AGGRESIVE_WS_TRIM] = "Aggressively trim working set";
+
31 s_fHdrCharact[F_LARGE_ADDRESS_AWARE] = "App can handle >2gb addresses";
+
32 s_fHdrCharact[F_BYTES_REVERSED_LO] = "Bytes of machine word are reversed.";
+
33 s_fHdrCharact[F_MACHINE_32BIT] = "32 bit word machine.";
+
34 s_fHdrCharact[F_DEBUG_STRIPPED] = "Debugging info stripped from file in .DBG file";
+
35 s_fHdrCharact[F_REMOVABLE_RUN_FROM_SWAP] = "If Image is on removable media, copy and run from the swap file.";
+
36 s_fHdrCharact[F_NET_RUN_FROM_SWAP] = "If Image is on Net, copy and run from the swap file.";
+
37 s_fHdrCharact[F_SYSTEM] = "System File.";
+
38 s_fHdrCharact[F_DLL] = "File is a DLL.";
+
39 s_fHdrCharact[F_UP_SYSTEM_ONLY] = "File should only be run on a UP machine";
+
40 s_fHdrCharact[F_BYTES_REVERSED_HI] = "Bytes of machine word are reversed.";
41}
+
42
-
43std::vector<DWORD> FileHdrWrapper::splitCharact(DWORD characteristics)
+
+
43std::vector<DWORD> FileHdrWrapper::splitCharact(DWORD characteristics)
44{
45 if (s_fHdrCharact.size() == 0) initCharact();
46
-
47 std::vector<DWORD> chSet;
-
48 for (std::map<DWORD, QString>::iterator iter = s_fHdrCharact.begin(); iter != s_fHdrCharact.end(); ++iter) {
-
49 if (characteristics & iter->first) {
-
50 chSet.push_back(iter->first);
+
47 std::vector<DWORD> chSet;
+
48 for (std::map<DWORD, QString>::iterator iter = s_fHdrCharact.begin(); iter != s_fHdrCharact.end(); ++iter) {
+
49 if (characteristics & iter->first) {
+
50 chSet.push_back(iter->first);
51 }
52 }
-
53 return chSet;
+
53 return chSet;
54}
+
55
-
56QString FileHdrWrapper::translateCharacteristics(DWORD charact)
+
+
56QString FileHdrWrapper::translateCharacteristics(DWORD charact)
57{
58 if (s_fHdrCharact.size() == 0)
59 initCharact();
60
-
61 if (s_fHdrCharact.find(charact) == s_fHdrCharact.end()) return "";
-
62 return s_fHdrCharact[charact];
+
61 if (s_fHdrCharact.find(charact) == s_fHdrCharact.end()) return "";
+
62 return s_fHdrCharact[charact];
63}
+
64
+
65void FileHdrWrapper::initMachine()
66{
-
67 s_machine[M_UNKNOWN] = "s_machine unknown";
+
67 s_machine[M_UNKNOWN] = "s_machine unknown";
68
-
69 s_machine[M_I386] = "Intel 386";
-
70 s_machine[M_R3000] = "MIPS little-endian, 0x160 big-endian";
-
71 s_machine[M_R4000] = "MIPS little-endian";
-
72 s_machine[M_R10000] = "MIPS little-endian";
-
73 s_machine[M_WCEMIPSV2] = " MIPS little-endian WCE v2";
-
74 s_machine[M_ALPHA] = "Alpha_AXP";
-
75 s_machine[M_SH3] = "SH3 little-endian";
-
76 s_machine[M_SH3DSP] = "SH3DSP";
-
77 s_machine[M_SH3E] = "SH3E little-endian";
-
78 s_machine[M_SH4] = "SH4 little-endian";
-
79 s_machine[M_SH5] = "SH5";
-
80 s_machine[M_ARM] = "ARM Little-Endian";
-
81 s_machine[M_THUMB] = "Thumb";
-
82 s_machine[M_THUMB2] = "Thumb2";
-
83 s_machine[M_AM33] = "AM33";
-
84 s_machine[M_POWERPC] = "IBM PowerPC Little-Endian";
-
85 s_machine[M_POWERPCFP] = "PowerRPCFP";
-
86 s_machine[M_IA64] = "Intel 64";
-
87 s_machine[M_MIPS16] = "MIPS";
-
88 s_machine[M_ALPHA64] = "ALPHA64";
-
89 s_machine[M_MIPSFPU] = "MIPS";
-
90 s_machine[M_MIPSFPU16] = "MIPS";
-
91 s_machine[M_AXP64] = "M_ALPHA64";
-
92 s_machine[M_TRICORE] = " Infineon";
-
93 s_machine[M_CEF] = "CEF";
-
94 s_machine[M_EBC] = "EFI Byte Code";
-
95 s_machine[M_AMD64] = "AMD64 (K8)";
-
96 s_machine[M_M32R] = "M32R little-endian";
-
97 s_machine[M_CEE] = "CEE";
+
69 s_machine[M_I386] = "Intel 386";
+
70 s_machine[M_R3000] = "MIPS little-endian, 0x160 big-endian";
+
71 s_machine[M_R4000] = "MIPS little-endian";
+
72 s_machine[M_R10000] = "MIPS little-endian";
+
73 s_machine[M_WCEMIPSV2] = " MIPS little-endian WCE v2";
+
74 s_machine[M_ALPHA] = "Alpha_AXP";
+
75 s_machine[M_SH3] = "SH3 little-endian";
+
76 s_machine[M_SH3DSP] = "SH3DSP";
+
77 s_machine[M_SH3E] = "SH3E little-endian";
+
78 s_machine[M_SH4] = "SH4 little-endian";
+
79 s_machine[M_SH5] = "SH5";
+
80 s_machine[M_ARM] = "ARM Little-Endian";
+
81 s_machine[M_THUMB] = "Thumb";
+
82 s_machine[M_THUMB2] = "Thumb2";
+
83 s_machine[M_AM33] = "AM33";
+
84 s_machine[M_POWERPC] = "IBM PowerPC Little-Endian";
+
85 s_machine[M_POWERPCFP] = "PowerRPCFP";
+
86 s_machine[M_IA64] = "Intel 64";
+
87 s_machine[M_MIPS16] = "MIPS";
+
88 s_machine[M_ALPHA64] = "ALPHA64";
+
89 s_machine[M_MIPSFPU] = "MIPS";
+
90 s_machine[M_MIPSFPU16] = "MIPS";
+
91 s_machine[M_AXP64] = "M_ALPHA64";
+
92 s_machine[M_TRICORE] = " Infineon";
+
93 s_machine[M_CEF] = "CEF";
+
94 s_machine[M_EBC] = "EFI Byte Code";
+
95 s_machine[M_AMD64] = "AMD64 (K8)";
+
96 s_machine[M_M32R] = "M32R little-endian";
+
97 s_machine[M_CEE] = "CEE";
98}
+
99
-
100QString FileHdrWrapper::translateMachine(DWORD val)
+
+
100QString FileHdrWrapper::translateMachine(DWORD val)
101{
102 if (s_machine.size() == 0)
103 initMachine();
104
-
105 if (s_machine.find(val) == s_machine.end()) return "";
-
106 return s_machine[val];
+
105 if (s_machine.find(val) == s_machine.end()) return "";
+
106 return s_machine[val];
107}
+
108
+
109void* FileHdrWrapper::getPtr()
110{
111 if (this->hdr) {
112 // use cached if exists
113 return (void*) hdr;
114 }
-
115 if (m_PE == NULL) return NULL;
+
115 if (m_PE == NULL) return NULL;
116
-
117 offset_t myOff = m_PE->peFileHdrOffset();
-
118 IMAGE_FILE_HEADER* hdr = (IMAGE_FILE_HEADER*) m_Exe->getContentAt(myOff, sizeof(IMAGE_FILE_HEADER));
-
119 if (!hdr) return NULL; //error
+
117 offset_t myOff = m_PE->peFileHdrOffset();
+
118 IMAGE_FILE_HEADER* hdr = (IMAGE_FILE_HEADER*) m_Exe->getContentAt(myOff, sizeof(IMAGE_FILE_HEADER));
+
119 if (!hdr) return NULL; //error
120
121 return (void*) hdr;
122}
+
123
-
124void* FileHdrWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
124void* FileHdrWrapper::getFieldPtr(size_t fieldId, size_t subField)
125{
-
126 IMAGE_FILE_HEADER * hdr = reinterpret_cast<IMAGE_FILE_HEADER*>(getPtr());
-
127 if (!hdr) return NULL;
+
126 IMAGE_FILE_HEADER * hdr = reinterpret_cast<IMAGE_FILE_HEADER*>(getPtr());
+
127 if (!hdr) return NULL;
128
-
129 IMAGE_FILE_HEADER &fileHeader = (*hdr);
-
130 switch (fieldId) {
-
131 case MACHINE: return (void*) &fileHeader.Machine;
-
132 case SEC_NUM: return (void*) &fileHeader.NumberOfSections;
-
133 case TIMESTAMP: return (void*) &fileHeader.TimeDateStamp;
-
134 case SYMBOL_PTR: return (void*) &fileHeader.PointerToSymbolTable;
-
135 case SYMBOL_NUM: return (void*) &fileHeader.NumberOfSymbols;
-
136 case OPTHDR_SIZE: return (void*) &fileHeader.SizeOfOptionalHeader;
-
137 case CHARACT: return (void*) &fileHeader.Characteristics;
+
129 IMAGE_FILE_HEADER &fileHeader = (*hdr);
+
130 switch (fieldId) {
+
131 case MACHINE: return (void*) &fileHeader.Machine;
+
132 case SEC_NUM: return (void*) &fileHeader.NumberOfSections;
+
133 case TIMESTAMP: return (void*) &fileHeader.TimeDateStamp;
+
134 case SYMBOL_PTR: return (void*) &fileHeader.PointerToSymbolTable;
+
135 case SYMBOL_NUM: return (void*) &fileHeader.NumberOfSymbols;
+
136 case OPTHDR_SIZE: return (void*) &fileHeader.SizeOfOptionalHeader;
+
137 case CHARACT: return (void*) &fileHeader.Characteristics;
138 }
-
139 return (void*) &fileHeader;
+
139 return (void*) &fileHeader;
140}
+
141
-
142QString FileHdrWrapper::getFieldName(size_t fieldId)
+
+
142QString FileHdrWrapper::getFieldName(size_t fieldId)
143{
-
144 switch (fieldId) {
+
144 switch (fieldId) {
145 case MACHINE: return("Machine");
146 case SEC_NUM: return ("Sections Count");
147 case TIMESTAMP: {
-
148 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
-
149 if (myPe && myPe->isReproBuild()) {
+
148 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
+
149 if (myPe && myPe->isReproBuild()) {
150 return "ReproChecksum";
151 }
152 return("Time Date Stamp");
@@ -237,31 +261,37 @@ $(function() {
158 }
159 return "";
160}
+
161
-
162Executable::addr_type FileHdrWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
162Executable::addr_type FileHdrWrapper::containsAddrType(size_t fieldId, size_t subField)
163{
164 return Executable::NOT_ADDR;
165}
+
166
-
167QString FileHdrWrapper::translateFieldContent(size_t fieldId)
+
+
167QString FileHdrWrapper::translateFieldContent(size_t fieldId)
168{
-
169 IMAGE_FILE_HEADER * hdr = reinterpret_cast<IMAGE_FILE_HEADER*>(getPtr());
+
169 IMAGE_FILE_HEADER * hdr = reinterpret_cast<IMAGE_FILE_HEADER*>(getPtr());
170 if (!hdr) return "";
171
-
172 IMAGE_FILE_HEADER &fileHeader = (*hdr);
-
173 switch (fieldId) {
-
174 case MACHINE: return FileHdrWrapper::translateMachine(fileHeader.Machine);
+
172 IMAGE_FILE_HEADER &fileHeader = (*hdr);
+
173 switch (fieldId) {
+
174 case MACHINE: return FileHdrWrapper::translateMachine(fileHeader.Machine);
175 case TIMESTAMP: {
-
176 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
-
177 if (myPe && myPe->isReproBuild()) {
+
176 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
+
177 if (myPe && myPe->isReproBuild()) {
178 return ""; // This is not a real timestamp
179 }
-
180 return util::getDateString(fileHeader.TimeDateStamp);
+
180 return util::getDateString(fileHeader.TimeDateStamp);
181 }
182 }
183 return "";
184}
+
185
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
FileHdrWrapper.h
PEFile.h
@@ -297,7 +327,7 @@ $(function() { diff --git a/_file_hdr_wrapper_8h.html b/_file_hdr_wrapper_8h.html index 961fdb47..3e4bf8e3 100644 --- a/_file_hdr_wrapper_8h.html +++ b/_file_hdr_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/FileHdrWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
7#include <map>
8#include <vector>
9
+
10class FileHdrWrapper : public PEElementWrapper
11{
12public:
13 /* fields :*/
+
14 enum FieldID {
15 NONE = -1,
@@ -101,36 +108,39 @@ $(function() {
24 };
+
25
26 static std::map<DWORD, QString> s_fHdrCharact;
27 static std::map<DWORD, QString> s_machine;
28
29 static void initCharact();
-
30 static std::vector<DWORD> splitCharact(DWORD characteristics);
-
31 static QString translateCharacteristics(DWORD charact);
+
30 static std::vector<DWORD> splitCharact(DWORD characteristics);
+
31 static QString translateCharacteristics(DWORD charact);
32
33 static void initMachine();
-
34 static QString translateMachine(DWORD val);
+
34 static QString translateMachine(DWORD val);
35
-
36 FileHdrWrapper(PEFile *pe) : PEElementWrapper(pe), hdr(NULL) {}
-
37 bool wrap() { hdr = NULL; getPtr(); return true; }
+
36 FileHdrWrapper(PEFile *pe) : PEElementWrapper(pe), hdr(NULL) {}
+
37 bool wrap() { hdr = NULL; getPtr(); return true; }
38
39 /* full structure boundaries */
40 virtual void* getPtr();
-
41 virtual bufsize_t getSize() { return sizeof(IMAGE_FILE_HEADER); }
-
42 virtual QString getName() { return "File Hdr"; }
+
41 virtual bufsize_t getSize() { return sizeof(IMAGE_FILE_HEADER); }
+
42 virtual QString getName() { return "File Hdr"; }
43 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
44
45 /* specific field boundaries */
-
46 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
47 virtual QString getFieldName(size_t fieldId);
-
48 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
46 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
47 virtual QString getFieldName(size_t fieldId);
+
48 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
49
-
50 virtual QString translateFieldContent(size_t fieldId);
+
50 virtual QString translateFieldContent(size_t fieldId);
51private:
-
52 IMAGE_FILE_HEADER* hdr;
+
52 IMAGE_FILE_HEADER* hdr;
53};
+
54
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
PENodeWrapper.h
@@ -168,7 +178,7 @@ $(function() { diff --git a/_formatter_8cpp.html b/_formatter_8cpp.html index eddfb209..7db1fd86 100644 --- a/_formatter_8cpp.html +++ b/_formatter_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/Formatter.cpp File Reference @@ -30,7 +30,7 @@ - + +
2#include "Util.h"
3
4//----------------
-
5AbstractFormatter::AbstractFormatter(AbstractByteBuffer *v_buf)
-
6 : buf(v_buf)
+
+
5AbstractFormatter::AbstractFormatter(AbstractByteBuffer *v_buf)
+
6 : buf(v_buf)
7{
-
8 if (v_buf == NULL) throw BufferException("Cannot make HexFilter for NULL buffer!");
+
8 if (v_buf == NULL) throw BufferException("Cannot make HexFilter for NULL buffer!");
9}
+
10
11//---------------------------------------------------
-
12const QString Formatter::operator[](std::size_t idx) const
+
+
12const QString Formatter::operator[](std::size_t idx) const
13{
-
14 BYTE b = (*buf)[idx];
+
14 BYTE b = (*buf)[idx];
15 if (isHex) {
-
16 return QString::number(b, 16).leftJustified(2,'0');
+
16 return QString::number(b, 16).leftJustified(2,'0');
17 }
-
18 if (pe_util::isPrintable(b) == false) {
+
18 if (pe_util::isPrintable(b) == false) {
19 if (isSkipNonprintable) {
20 return "..";
21 }
-
22 return "\\x"+ QString::number(b, 16).leftJustified(2,'0');
+
22 return "\\x"+ QString::number(b, 16).leftJustified(2,'0');
23 }
-
24 return QString(b);
+
24 return QString(b);
25}
+
26
27/*
28
@@ -140,6 +149,7 @@ $(function() {
61 formatters.clear();
62}
63*/
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
Formatter.h
Util.h
AbstractByteBuffer
Definition AbstractByteBuffer.h:32
@@ -152,7 +162,7 @@ $(function() { diff --git a/_formatter_8h.html b/_formatter_8h.html index c574eab9..eb5b8075 100644 --- a/_formatter_8h.html +++ b/_formatter_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/Formatter.h File Reference @@ -30,7 +30,7 @@ - + +
3#include "win_hdrs/win_types.h"
4#include "AbstractByteBuffer.h"
5
+
6class AbstractFormatter
7{
8public:
-
9 AbstractFormatter(AbstractByteBuffer *v_buf);
+
9 AbstractFormatter(AbstractByteBuffer *v_buf);
10 virtual ~AbstractFormatter() {}
11
-
12 virtual const QString operator[](std::size_t idx) const = 0;
+
12 virtual const QString operator[](std::size_t idx) const = 0;
13
14protected:
15 AbstractByteBuffer *buf;
16};
+
17
+
18class Formatter : public AbstractFormatter{
19public:
-
20 Formatter(AbstractByteBuffer *buf, bool _isHex = false, bool _isSkipNonprintable = false)
+
+ -
22 isHex(_isHex),isSkipNonprintable(_isSkipNonprintable)
+
23 {
24 }
+
25
-
26 void setHex(bool isEnabled) { isHex = isEnabled; }
-
27 void setSkipNonPrintable(bool isEnabled) { isSkipNonprintable = isEnabled; }
+
26 void setHex(bool isEnabled) { isHex = isEnabled; }
+
27 void setSkipNonPrintable(bool isEnabled) { isSkipNonprintable = isEnabled; }
28
-
29 const QString operator[](std::size_t idx) const;
+
29 const QString operator[](std::size_t idx) const;
30
31protected:
32 bool isHex;
33 bool isSkipNonprintable;
34};
+
35
+
36class HexFormatter : public Formatter
37{
38public:
-
39 HexFormatter(AbstractByteBuffer *buf) : Formatter(buf, true, false) {}
+
39 HexFormatter(AbstractByteBuffer *buf) : Formatter(buf, true, false) {}
40};
+
41
42/*
43class BufferPrinter
@@ -142,6 +155,7 @@ $(function() {
63 std::map<int, AbstractFormatter> formatters;
64};
65*/
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
AbstractByteBuffer.h
AbstractByteBuffer
Definition AbstractByteBuffer.h:32
AbstractFormatter
Definition Formatter.h:7
@@ -160,7 +174,7 @@ $(function() { diff --git a/_import_base_dir_wrapper_8cpp.html b/_import_base_dir_wrapper_8cpp.html index 84b3c5b5..162e11cb 100644 --- a/_import_base_dir_wrapper_8cpp.html +++ b/_import_base_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/ImportBaseDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
4
5bufsize_t ImportBaseEntryWrapper::NameLenLimit = 0xFF;
6
-
7bool imports_util::isNameValid(Executable *pe, char* myName)
+
+
7bool imports_util::isNameValid(Executable *pe, char* myName)
8{
-
9 if (!myName) return false; // do not parse, invalid entry
-
10 bufsize_t upperLimit = pe->getMaxSizeFromPtr((BYTE*) myName);
-
11 if (upperLimit == 0) return false;
+
9 if (!myName) return false; // do not parse, invalid entry
+
10 bufsize_t upperLimit = pe->getMaxSizeFromPtr((BYTE*) myName);
+
11 if (upperLimit == 0) return false;
12
-
13 bool isInvalid = pe_util::hasNonPrintable(myName, upperLimit);
-
14 if (isInvalid) return false;
-
15 if (pe_util::noWhiteCount(myName) == 0) return false;
+
13 bool isInvalid = pe_util::hasNonPrintable(myName, upperLimit);
+
14 if (isInvalid) return false;
+
15 if (pe_util::noWhiteCount(myName) == 0) return false;
16
17 return true;
18}
+
19//---------------------------------
20
21using namespace imports_util;
22
-
23bufsize_t ImportBaseDirWrapper::thunkSize(Executable::exe_bits bits) {
-
24 if (bits == Executable::BITS_32) return sizeof (uint32_t);
-
25 else if (bits == Executable::BITS_64) return sizeof (uint64_t);
+
+
23bufsize_t ImportBaseDirWrapper::thunkSize(Executable::exe_bits bits) {
+
24 if (bits == Executable::BITS_32) return sizeof (uint32_t);
+
25 else if (bits == Executable::BITS_64) return sizeof (uint64_t);
26 return 0;
27}
+
28
29
-
30void ImportBaseDirWrapper::addMapping(ExeNodeWrapper *funcNode)
+
+
30void ImportBaseDirWrapper::addMapping(ExeNodeWrapper *funcNode)
31{
-
32 ImportBaseFuncWrapper* func = dynamic_cast<ImportBaseFuncWrapper*> (funcNode);
-
33 if (func == NULL) return;
+
32 ImportBaseFuncWrapper* func = dynamic_cast<ImportBaseFuncWrapper*> (funcNode);
+
33 if (func == NULL) return;
34
-
35 offset_t via = func->callVia();
-
36 if (via == INVALID_ADDR) return;
+
35 offset_t via = func->callVia();
+
36 if (via == INVALID_ADDR) return;
37 /*
38 if (m_Exe->isValidVA(via)) {
39 via = m_Exe->VaToRva(via);
40 }*/
-
41 ImportBaseEntryWrapper* lib = dynamic_cast<ImportBaseEntryWrapper*>(func->getParentNode());
-
42 if (!lib) return;
+
41 ImportBaseEntryWrapper* lib = dynamic_cast<ImportBaseEntryWrapper*>(func->getParentNode());
+
42 if (!lib) return;
43
44 this->thunksList.push_back(via);
-
45 size_t num = lib->getEntryId();
-
46 thunkToLibMap[via] = num;
+
45 size_t num = lib->getEntryId();
+
46 thunkToLibMap[via] = num;
47
-
48 num = func->getEntryId();
-
49 lib->thunkToFuncMap[via] = num;
+
48 num = func->getEntryId();
+
49 lib->thunkToFuncMap[via] = num;
50}
+
51
+
52void ImportBaseDirWrapper::clearMapping()
53{
54 thunksList.clear();
55 thunkToLibMap.clear();
56}
+
57
58
+
59void ImportBaseDirWrapper::reloadMapping()
60{
61 clearMapping();
62 size_t entriesCount = this->entries.size();
63
-
64 for (size_t i = 0; i < entriesCount; i++) {
-
65 ImportBaseEntryWrapper* lib = dynamic_cast<ImportBaseEntryWrapper*> (this->getEntryAt(i));
-
66 if (lib == NULL) continue;
-
67 size_t libId = lib->entryNum;
+
64 for (size_t i = 0; i < entriesCount; i++) {
+
65 ImportBaseEntryWrapper* lib = dynamic_cast<ImportBaseEntryWrapper*> (this->getEntryAt(i));
+
66 if (lib == NULL) continue;
+
67 size_t libId = lib->entryNum;
68
-
69 size_t funcCount = lib->getEntriesCount();
-
70 for (size_t fI = 0; fI < funcCount; fI++) {
-
71 addMapping(lib->getEntryAt(fI));
+
69 size_t funcCount = lib->getEntriesCount();
+
70 for (size_t fI = 0; fI < funcCount; fI++) {
+
71 addMapping(lib->getEntryAt(fI));
72 }
73 }
74}
+
75
-
76ImportBaseEntryWrapper* ImportBaseDirWrapper::thunkToLib(offset_t thunk)
+
+
76ImportBaseEntryWrapper* ImportBaseDirWrapper::thunkToLib(offset_t thunk)
77{
-
78 std::map<offset_t, size_t>::iterator libItr = thunkToLibMap.find(thunk);
-
79 if (libItr == thunkToLibMap.end()) return NULL;
+
78 std::map<offset_t, size_t>::iterator libItr = thunkToLibMap.find(thunk);
+
79 if (libItr == thunkToLibMap.end()) return NULL;
80
-
81 size_t libId = libItr->second;
-
82 ImportBaseEntryWrapper* lib = dynamic_cast<ImportBaseEntryWrapper*>(this->getEntryAt(libId));
-
83 return lib;
+
81 size_t libId = libItr->second;
+
82 ImportBaseEntryWrapper* lib = dynamic_cast<ImportBaseEntryWrapper*>(this->getEntryAt(libId));
+
83 return lib;
84}
+
85
-
86ImportBaseFuncWrapper* ImportBaseDirWrapper::thunkToFunction(offset_t thunk)
+
+
86ImportBaseFuncWrapper* ImportBaseDirWrapper::thunkToFunction(offset_t thunk)
87{
-
88 ImportBaseEntryWrapper* lib = thunkToLib(thunk);
-
89 if (!lib) return NULL;
+
88 ImportBaseEntryWrapper* lib = thunkToLib(thunk);
+
89 if (!lib) return NULL;
90
-
91 std::map<offset_t, size_t>::iterator funcItr = lib->thunkToFuncMap.find(thunk);
-
92 if (funcItr == lib->thunkToFuncMap.end()) return NULL;
+
91 std::map<offset_t, size_t>::iterator funcItr = lib->thunkToFuncMap.find(thunk);
+
92 if (funcItr == lib->thunkToFuncMap.end()) return NULL;
93
-
94 ImportBaseFuncWrapper* func = dynamic_cast<ImportBaseFuncWrapper*>(lib->getEntryAt(funcItr->second));
-
95 return func;
+
94 ImportBaseFuncWrapper* func = dynamic_cast<ImportBaseFuncWrapper*>(lib->getEntryAt(funcItr->second));
+
95 return func;
96}
+
97
-
98QString ImportBaseDirWrapper::thunkToFuncName(offset_t thunk, bool shortName)
+
+
98QString ImportBaseDirWrapper::thunkToFuncName(offset_t thunk, bool shortName)
99{
-
100 ImportBaseFuncWrapper* func = thunkToFunction(thunk);
-
101 if (func == NULL) return "";
-
102 if (shortName) {
-
103 return func->getShortName();
+
100 ImportBaseFuncWrapper* func = thunkToFunction(thunk);
+
101 if (func == NULL) return "";
+
102 if (shortName) {
+
103 return func->getShortName();
104 }
-
105 return func->getName();
+
105 return func->getName();
106}
+
107
-
108QString ImportBaseDirWrapper::thunkToLibName(offset_t thunk)
+
+
108QString ImportBaseDirWrapper::thunkToLibName(offset_t thunk)
109{
-
110 ImportBaseEntryWrapper* lib = thunkToLib(thunk);
-
111 if (!lib) return "";
-
112 return lib->getName();
+
110 ImportBaseEntryWrapper* lib = thunkToLib(thunk);
+
111 if (!lib) return "";
+
112 return lib->getName();
113}
+
114
+
115bool ImportBaseDirWrapper::wrap()
116{
117 clearMapping();
118 clear();
119
-
120 size_t oldCount = this->importsCount;
+
120 size_t oldCount = this->importsCount;
121 this->importsCount = 0;
122
123 if (!getDataDirectory()) {
124 return (oldCount != this->importsCount); //has count changed
125 }
126
-
127 const size_t LIMIT = (-1);
-
128 const size_t INVALID_LIMIT = 100;
-
129 size_t cntr = 0;
-
130 size_t invalidSeries = 0;
-
131 for (cntr = 0; cntr < LIMIT; cntr++) {
-
132 if (loadNextEntry(cntr) == false) break;
-
133 ExeNodeWrapper* entry = this->entries.at(cntr);
-
134 if (!entry) break;
-
135 if (entry->isValid()) {
-
136 invalidSeries = 0;
+
127 const size_t LIMIT = (-1);
+
128 const size_t INVALID_LIMIT = 100;
+
129 size_t cntr = 0;
+
130 size_t invalidSeries = 0;
+
131 for (cntr = 0; cntr < LIMIT; cntr++) {
+
132 if (loadNextEntry(cntr) == false) break;
+
133 ExeNodeWrapper* entry = this->entries.at(cntr);
+
134 if (!entry) break;
+
135 if (entry->isValid()) {
+
136 invalidSeries = 0;
137 }
138 else {
-
139 invalidSeries++;
-
140 if (invalidSeries >= INVALID_LIMIT) break;
+
139 invalidSeries++;
+
140 if (invalidSeries >= INVALID_LIMIT) break;
141 }
142 }
143
-
144 this->importsCount = cntr;
+
144 this->importsCount = cntr;
145 return (oldCount != this->importsCount); //has count changed
146}
+
147
148//--------------------------------------------------------------------------------------------------------------
149
+
150bool ImportBaseEntryWrapper::isValid()
151{
-
152 char *libName = this->getLibraryName();
+
152 char *libName = this->getLibraryName();
153 bool isValid = imports_util::isNameValid(m_Exe, libName);
154 return isValid;
155}
+
156
+
157bool ImportBaseEntryWrapper::wrap()
158{
159 clear();
160 thunkToFuncMap.clear();
161
-
162 const size_t LIMIT = (-1);
-
163 const size_t INVALID_LIMIT = 100;
+
162 const size_t LIMIT = (-1);
+
163 const size_t INVALID_LIMIT = 100;
164 if (!isValid()) {
165 return false;
166 }
167
-
168 if (this->getPtr() == NULL) {
+
168 if (this->getPtr() == NULL) {
169 return false;
170 }
171
-
172 size_t cntr = 0;
-
173 size_t invalidSeries = 0;
+
172 size_t cntr = 0;
+
173 size_t invalidSeries = 0;
174
-
175 for (cntr = 0; cntr < LIMIT; cntr++) {
-
176 if (loadNextEntry(cntr) == false) break;
-
177 ExeNodeWrapper* entry = this->entries.at(cntr);
-
178 if (!entry) break;
-
179 if (entry->isValid()) {
-
180 invalidSeries = 0;
+
175 for (cntr = 0; cntr < LIMIT; cntr++) {
+
176 if (loadNextEntry(cntr) == false) break;
+
177 ExeNodeWrapper* entry = this->entries.at(cntr);
+
178 if (!entry) break;
+
179 if (entry->isValid()) {
+
180 invalidSeries = 0;
181 }
182 else {
-
183 invalidSeries++;
-
184 if (invalidSeries >= INVALID_LIMIT) break;
+
183 invalidSeries++;
+
184 if (invalidSeries >= INVALID_LIMIT) break;
185 }
186 }
187 //printf("Entries: %d\n", entries.size());
188 return true;
189}
+
190
191//--------------------------------------------------------------------------------------------------------------
-
192QString ImportBaseFuncWrapper::getShortName()
+
+
192QString ImportBaseFuncWrapper::getShortName()
193{
-
194 QString functionName;
+
194 QString functionName;
195 if (isByOrdinal()) {
-
196 uint64_t val = getOrdinal();
-
197 QString out;
+
196 uint64_t val = getOrdinal();
+
197 QString out;
198#if QT_VERSION >= 0x050000
-
199 out = QString::asprintf("<ord: %llX>", static_cast<unsigned long long>(val));
+
199 out = QString::asprintf("<ord: %llX>", static_cast<unsigned long long>(val));
200#else
-
201 out.sprintf("<ord: %llX>", static_cast<unsigned long long>(val));
+
201 out.sprintf("<ord: %llX>", static_cast<unsigned long long>(val));
202#endif
-
203 functionName = out;
+
203 functionName = out;
204 } else {
-
205 char *fName = this->getFunctionName();
+
205 char *fName = this->getFunctionName();
206 if (!fName) return "";
-
207 functionName = fName;
+
207 functionName = fName;
208 }
-
209 return functionName;
+
209 return functionName;
210}
+
211
-
212QString ImportBaseFuncWrapper::getLibName()
+
+
212QString ImportBaseFuncWrapper::getLibName()
213{
-
214 ImportBaseEntryWrapper *p = dynamic_cast<ImportBaseEntryWrapper*>(this->getParentNode());
+
214 ImportBaseEntryWrapper *p = dynamic_cast<ImportBaseEntryWrapper*>(this->getParentNode());
215 if (!p) return "";
216
-
217 char *libName = p->getLibraryName();
-
218 if (!libName) return "";
+
217 char *libName = p->getLibraryName();
+
218 if (!libName) return "";
219
-
220 return QString(libName);
+
220 return QString(libName);
221}
+
222
-
223QString ImportBaseFuncWrapper::getName()
+
+
223QString ImportBaseFuncWrapper::getName()
224{
-
225 QString libName = getLibName();
-
226 QString functionName = getShortName();
+
225 QString libName = getLibName();
+
226 QString functionName = getShortName();
227
-
228 if (!libName.length()) return functionName;
+
228 if (!libName.length()) return functionName;
229
-
230 return "[" + QString(libName) + "]." + functionName;
+
230 return "[" + QString(libName) + "]." + functionName;
231}
+
232
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -317,14 +353,11 @@ $(function() {
DataDirEntryWrapper::getDataDirectory
IMAGE_DATA_DIRECTORY * getDataDirectory()
Definition DataDirEntryWrapper.cpp:10
ExeElementWrapper::getPtr
virtual void * getPtr()=0
ExeElementWrapper::m_Exe
Executable * m_Exe
Definition ExeElementWrapper.h:65
-
ExeElementWrapper::getName
virtual QString getName()=0
ExeNodeWrapper
Definition ExeNodeWrapper.h:9
ExeNodeWrapper::getEntryAt
virtual ExeNodeWrapper * getEntryAt(size_t fieldId)
Definition ExeNodeWrapper.cpp:15
ExeNodeWrapper::entries
std::vector< ExeNodeWrapper * > entries
Definition ExeNodeWrapper.h:56
ExeNodeWrapper::getEntryId
size_t getEntryId()
Definition ExeNodeWrapper.h:25
ExeNodeWrapper::loadNextEntry
virtual bool loadNextEntry(size_t entryNum)
Definition ExeNodeWrapper.h:48
-
ExeNodeWrapper::isValid
virtual bool isValid()
Definition ExeNodeWrapper.h:40
-
ExeNodeWrapper::getEntriesCount
virtual size_t getEntriesCount()
Definition ExeNodeWrapper.h:20
ExeNodeWrapper::entryNum
size_t entryNum
Definition ExeNodeWrapper.h:54
ExeNodeWrapper::clear
virtual void clear()
Definition ExeNodeWrapper.cpp:30
Executable
Definition Executable.h:26
@@ -365,7 +398,7 @@ $(function() { diff --git a/_import_base_dir_wrapper_8h.html b/_import_base_dir_wrapper_8h.html index e62d5514..e6a7b3c9 100644 --- a/_import_base_dir_wrapper_8h.html +++ b/_import_base_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/ImportBaseDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
7class ImportBaseEntryWrapper;
8class ImportBaseFuncWrapper;
9
+
10namespace imports_util {
11// inline uint64_t getUpperLimit(Executable *pe, void* fieldPtr);
-
12 inline bool isNameValid(Executable *pe, char* myName);
+
12 inline bool isNameValid(Executable *pe, char* myName);
13};
+
14
+
15class ImportBaseDirWrapper : public DataDirEntryWrapper
16{
17public:
-
18 static bufsize_t thunkSize(Executable::exe_bits bits);
+
18 static bufsize_t thunkSize(Executable::exe_bits bits);
19
20 virtual bool wrap();
21 virtual void clearMapping();
22 virtual void reloadMapping();
23 virtual size_t getFieldsCount() { return this->importsCount; }
24
-
25 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
-
26 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField ); }
-
27 virtual QString getFieldName(size_t fieldId) { return getFieldName(fieldId, FIELD_NONE); }
-
28 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE) { return getSubfieldSize(fieldId, subField); }
+
25 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
+
26 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField ); }
+
27 virtual QString getFieldName(size_t fieldId) { return getFieldName(fieldId, FIELD_NONE); }
+
28 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE) { return getSubfieldSize(fieldId, subField); }
29
-
30 QString thunkToFuncName(offset_t thunk, bool shortName=true);
-
31 QString thunkToLibName(offset_t thunk);
+
30 QString thunkToFuncName(offset_t thunk, bool shortName=true);
+
31 QString thunkToLibName(offset_t thunk);
32
-
33 QList<offset_t> getThunksList() { return this->thunksList; }
+
33 QList<offset_t> getThunksList() { return this->thunksList; }
34
-
35 bool hasThunk(offset_t thunk) {
-
36 std::map<offset_t, size_t>::iterator libItr = thunkToLibMap.find(thunk);
-
37 return (libItr != thunkToLibMap.end());
+
+ +
36 std::map<offset_t, size_t>::iterator libItr = thunkToLibMap.find(thunk);
+
37 return (libItr != thunkToLibMap.end());
38 }
+
39
-
40 ImportBaseFuncWrapper* thunkToFunction(offset_t thunk);
+
40 ImportBaseFuncWrapper* thunkToFunction(offset_t thunk);
41
42protected:
-
43 ImportBaseDirWrapper(PEFile *pe, pe:: dir_entry v_entryType)
-
44 : DataDirEntryWrapper(pe, v_entryType), importsCount(0) { }
+
+ + +
45
46 //virtual bool loadNextEntry(size_t entryNum) = 0;
47
-
48 void addMapping(ExeNodeWrapper *func);
-
49 ImportBaseEntryWrapper* thunkToLib(offset_t thunk);
+
48 void addMapping(ExeNodeWrapper *func);
+
49 ImportBaseEntryWrapper* thunkToLib(offset_t thunk);
50 //---
51 std::map<offset_t, size_t> thunkToLibMap;
-
52 QList<offset_t> thunksList;
+
52 QList<offset_t> thunksList;
53
54 size_t importsCount;
55
56friend class ImportBaseEntryWrapper;
57};
+
58
59
+
60class ImportBaseEntryWrapper : public PENodeWrapper
61{
62public:
@@ -147,44 +161,54 @@ $(function() {
68 virtual bool isValid();
69
70protected:
-
71 ImportBaseEntryWrapper(PEFile *pe, ImportBaseDirWrapper *importsDir, size_t entryNumber)
-
72 : PENodeWrapper(pe, importsDir, entryNumber), impDir(importsDir) { }//wrap(); }
+
+ + +
73
-
74 void addMapping(ExeNodeWrapper *func) { if (impDir) impDir->addMapping(func); }
+
74 void addMapping(ExeNodeWrapper *func) { if (impDir) impDir->addMapping(func); }
75
76 std::map<offset_t, size_t> thunkToFuncMap;
77 ImportBaseDirWrapper* impDir;
78
79friend class ImportBaseDirWrapper;
80};
+
81
+
82class ImportBaseFuncWrapper : public PENodeWrapper
83{
84public:
-
85 ImportBaseFuncWrapper(PEFile *pe, ImportBaseEntryWrapper* parentLib, size_t entryNumber)
-
86 : PENodeWrapper(pe, parentLib, entryNumber) { }
+
+ + +
87
-
88 virtual QString getName();
-
89 QString getShortName();
-
90 QString getLibName();
+
88 virtual QString getName();
+
89 QString getShortName();
+
90 QString getLibName();
91
92 virtual bool isByOrdinal() = 0;
-
93 virtual uint64_t getOrdinal() = 0;
+
93 virtual uint64_t getOrdinal() = 0;
94 virtual char* getFunctionName() = 0;
95
96 virtual offset_t callVia() = 0;
97
+
99 {
-
100 size_t val = (isBit64()) ? sizeof(uint64_t) : sizeof(uint32_t);
-
101 return static_cast<bufsize_t>(val);
+
100 size_t val = (isBit64()) ? sizeof(uint64_t) : sizeof(uint32_t);
+
101 return static_cast<bufsize_t>(val);
102 }
+
103
104 inline bufsize_t getThunkValSize() { return getAddrSize(); }
105
106friend class ImportBaseDirWrapper;
107};
+
108
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
DataDirEntryWrapper.h
@@ -246,7 +270,7 @@ $(function() { diff --git a/_import_dir_wrapper_8cpp.html b/_import_dir_wrapper_8cpp.html index 62f6ebd6..ba4b55c2 100644 --- a/_import_dir_wrapper_8cpp.html +++ b/_import_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/ImportDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
3
4using namespace imports_util;
5
+
6void* ImportedFuncWrapper::getPtr()
7{
8 void *ptr = getValuePtr(ImportEntryWrapper::ORIG_FIRST_THUNK);
9 if (!ptr) ptr = getValuePtr(ImportEntryWrapper::FIRST_THUNK);
10 return ptr;
11}
+
12
-
13IMAGE_IMPORT_BY_NAME* ImportedFuncWrapper::getImportByNamePtr()
+
+
13IMAGE_IMPORT_BY_NAME* ImportedFuncWrapper::getImportByNamePtr()
14{
-
15 bool isOk = false;
-
16 uint64_t offset = this->getNumValue(ImportedFuncWrapper::ORIG_THUNK, &isOk);
-
17 if (!isOk || offset == INVALID_ADDR) {
+
15 bool isOk = false;
+
16 uint64_t offset = this->getNumValue(ImportedFuncWrapper::ORIG_THUNK, &isOk);
+
17 if (!isOk || offset == INVALID_ADDR) {
18 offset = this->getNumValue(ImportedFuncWrapper::THUNK, &isOk);
19 }
-
20 if (!isOk) return NULL;
-
21 BYTE *ptr = this->m_Exe->getContentAt(offset, Executable::RVA, sizeof(IMAGE_IMPORT_BY_NAME));
-
22 return (IMAGE_IMPORT_BY_NAME*) ptr;
+
20 if (!isOk) return NULL;
+
21 BYTE *ptr = this->m_Exe->getContentAt(offset, Executable::RVA, sizeof(IMAGE_IMPORT_BY_NAME));
+
22 return (IMAGE_IMPORT_BY_NAME*) ptr;
23}
+
24
-
25offset_t ImportedFuncWrapper::getFieldRVA(ImportEntryWrapper::FieldID fId)
+
+
25offset_t ImportedFuncWrapper::getFieldRVA(ImportEntryWrapper::FieldID fId)
26{
27 if (!parentNode) return 0;
28 bool is32 = isBit32();
29
-
30 bool isOk;
-
31 uint64_t thunkRva = parentNode->getNumValue(fId, &isOk);
-
32 if (!isOk) return 0; //TODO
+
30 bool isOk;
+
31 uint64_t thunkRva = parentNode->getNumValue(fId, &isOk);
+
32 if (!isOk) return 0; //TODO
33
-
34 if (is32) thunkRva = (int32_t)(thunkRva);
-
35 if (thunkRva == 0 || thunkRva == (-1)) return 0; //TODO
+
34 if (is32) thunkRva = (int32_t)(thunkRva);
+
35 if (thunkRva == 0 || thunkRva == (-1)) return 0; //TODO
36
-
37 size_t thunkValSize = this->getThunkValSize();
-
38 offset_t offset = this->entryNum * thunkValSize;
+
37 size_t thunkValSize = this->getThunkValSize();
+
38 offset_t offset = this->entryNum * thunkValSize;
39
-
40 offset_t fieldRVA = thunkRva + offset;
-
41 return fieldRVA;
+
40 offset_t fieldRVA = thunkRva + offset;
+
41 return fieldRVA;
42}
+
43
-
44void* ImportedFuncWrapper::getValuePtr(ImportEntryWrapper::FieldID fId)
+
+
44void* ImportedFuncWrapper::getValuePtr(ImportEntryWrapper::FieldID fId)
45{
-
46 if (!parentNode) return NULL;
+
46 if (!parentNode) return NULL;
47 bool is64 = isBit64();
48
-
49 bool isOk;
-
50 uint64_t thunkRva = parentNode->getNumValue(fId, &isOk);
-
51 if (!isOk) {
+
49 bool isOk;
+
50 uint64_t thunkRva = parentNode->getNumValue(fId, &isOk);
+
51 if (!isOk) {
52 //printf("Failed getting value!\n");
-
53 return NULL;
+
53 return NULL;
54 }
-
55 if (!is64) thunkRva = (int32_t)(thunkRva);
-
56 if (thunkRva == 0 || thunkRva == -1) return NULL;
+
55 if (!is64) thunkRva = (int32_t)(thunkRva);
+
56 if (thunkRva == 0 || thunkRva == -1) return NULL;
57
-
58 bufsize_t thunkValSize = this->getThunkValSize();
+
58 bufsize_t thunkValSize = this->getThunkValSize();
59 offset_t offset = static_cast<offset_t>(this->entryNum) * thunkValSize;
60
-
61 offset_t thunkAddr = m_Exe->toRaw(thunkRva + offset, Executable::RVA);
-
62 void* thunkPtr = m_Exe->getContentAt(thunkAddr, thunkValSize);
-
63 return thunkPtr;
+
61 offset_t thunkAddr = m_Exe->toRaw(thunkRva + offset, Executable::RVA);
+
62 void* thunkPtr = m_Exe->getContentAt(thunkAddr, thunkValSize);
+
63 return thunkPtr;
64}
+
65
-
66uint64_t ImportedFuncWrapper::getThunkValue()
+
+
66uint64_t ImportedFuncWrapper::getThunkValue()
67{
68 bool is64 = (m_Exe->getBitMode() == Executable::BITS_64) ? true : false;
69
-
70 uint64_t ordinal = 0;
-
71 void* thunkPtr = getPtr();
-
72 if (!thunkPtr) return 0;
+
70 uint64_t ordinal = 0;
+
71 void* thunkPtr = getPtr();
+
72 if (!thunkPtr) return 0;
73
74 if (is64) {
-
75 uint64_t* ptr = (uint64_t*) thunkPtr;
-
76 ordinal = *ptr;
-
77 if (ordinal & ORDINAL_FLAG64) ordinal ^= ORDINAL_FLAG64;
+
75 uint64_t* ptr = (uint64_t*) thunkPtr;
+
76 ordinal = *ptr;
+
77 if (ordinal & ORDINAL_FLAG64) ordinal ^= ORDINAL_FLAG64;
78
79 } else {
-
80 uint32_t* ptr = (uint32_t*) thunkPtr;
-
81 ordinal = *ptr;
-
82 if (uint32_t(ordinal) & ORDINAL_FLAG32) ordinal ^= ORDINAL_FLAG32;
+
80 uint32_t* ptr = (uint32_t*) thunkPtr;
+
81 ordinal = *ptr;
+
82 if (uint32_t(ordinal) & ORDINAL_FLAG32) ordinal ^= ORDINAL_FLAG32;
83 }
84
-
85 return ordinal;
+
85 return ordinal;
86}
+
87
+
88bool ImportedFuncWrapper::isByOrdinal()
89{
-
90 bool isOk = false;
+
90 bool isOk = false;
91
-
92 void *p = getValuePtr(ImportEntryWrapper::ORIG_FIRST_THUNK);
-
93 if (!p) p = getValuePtr(ImportEntryWrapper::FIRST_THUNK);
-
94 if (!p) return false;
+
92 void *p = getValuePtr(ImportEntryWrapper::ORIG_FIRST_THUNK);
+
93 if (!p) p = getValuePtr(ImportEntryWrapper::FIRST_THUNK);
+
94 if (!p) return false;
95
96 if (isBit64()) {
-
97 uint64_t* ptr = (uint64_t*) p;
-
98 if ((*ptr) & ORDINAL_FLAG64) return true;
+
97 uint64_t* ptr = (uint64_t*) p;
+
98 if ((*ptr) & ORDINAL_FLAG64) return true;
99
100 } else {
-
101 uint32_t* ptr = (uint32_t*) p;
-
102 if ((*ptr) & ORDINAL_FLAG32) return true;
+
101 uint32_t* ptr = (uint32_t*) p;
+
102 if ((*ptr) & ORDINAL_FLAG32) return true;
103 }
104 return false;
105}
+
106
107
+
108char* ImportedFuncWrapper::getFunctionName()
109{
-
110 if (isByOrdinal()) return NULL;
+
110 if (isByOrdinal()) return NULL;
111
-
112 IMAGE_IMPORT_BY_NAME* dataPtr = this->getImportByNamePtr();
-
113 if (!dataPtr) return NULL;
-
114 char *name = (char*) dataPtr->Name;
+
112 IMAGE_IMPORT_BY_NAME* dataPtr = this->getImportByNamePtr();
+
113 if (!dataPtr) return NULL;
+
114 char *name = (char*) dataPtr->Name;
115 return name;
116}
+
117
+
118bufsize_t ImportedFuncWrapper::getSize()
119{
120 return getAddrSize();
121}
+
122
-
123void* ImportedFuncWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
123void* ImportedFuncWrapper::getFieldPtr(size_t fId, size_t subField)
124{
125 bool is64 = isBit64();
-
126 void *entryPtr = this->getPtr();
-
127 if (entryPtr == NULL) return NULL;
+
126 void *entryPtr = this->getPtr();
+
127 if (entryPtr == NULL) return NULL;
128
-
129 IMAGE_THUNK_DATA32* en32 = is64 ? NULL : (IMAGE_THUNK_DATA32*) entryPtr;
-
130 IMAGE_THUNK_DATA64* en64 = is64 ? (IMAGE_THUNK_DATA64*) entryPtr : NULL;
+
129 IMAGE_THUNK_DATA32* en32 = is64 ? NULL : (IMAGE_THUNK_DATA32*) entryPtr;
+
130 IMAGE_THUNK_DATA64* en64 = is64 ? (IMAGE_THUNK_DATA64*) entryPtr : NULL;
131
-
132 switch (fId) {
+
132 switch (fId) {
133 case ORIG_THUNK: return (void*) getValuePtr(ImportEntryWrapper::ORIG_FIRST_THUNK);
134 case THUNK: return (void*) getValuePtr(ImportEntryWrapper::FIRST_THUNK);
135 case FORWARDER: return (void*) getValuePtr(ImportEntryWrapper::FORWARDER);
136 case HINT :
137 {
-
138 if (isByOrdinal()) return NULL;
-
139 IMAGE_IMPORT_BY_NAME* dataPtr = this->getImportByNamePtr();
+
138 if (isByOrdinal()) return NULL;
+
139 IMAGE_IMPORT_BY_NAME* dataPtr = this->getImportByNamePtr();
140 return (void*) &dataPtr->Hint;
141 }
142 };
-
143 return entryPtr;
+
143 return entryPtr;
144}
+
145
-
146bufsize_t ImportedFuncWrapper::getFieldSize(size_t fieldId, size_t subField)
+
+
146bufsize_t ImportedFuncWrapper::getFieldSize(size_t fieldId, size_t subField)
147{
-
148 if (fieldId == HINT) return sizeof (WORD);
-
149 bufsize_t entrySize = (isBit64()) ? sizeof(uint64_t) : sizeof(uint32_t);
-
150 return entrySize;
+
148 if (fieldId == HINT) return sizeof (WORD);
+
149 bufsize_t entrySize = (isBit64()) ? sizeof(uint64_t) : sizeof(uint32_t);
+
150 return entrySize;
151}
+
152
-
153QString ImportedFuncWrapper::getFieldName(size_t fId)
+
+
153QString ImportedFuncWrapper::getFieldName(size_t fId)
154{
-
155 switch (fId) {
+
155 switch (fId) {
156 case ORIG_THUNK: return "Original Thunk";
157 case THUNK: return "Thunk";
158 case FORWARDER: return "Forwarder";
@@ -239,8 +265,10 @@ $(function() {
160 };
161 return "";
162}
+
163
-
164Executable::addr_type ImportedFuncWrapper::containsAddrType(size_t fId, size_t subField)
+
+
164Executable::addr_type ImportedFuncWrapper::containsAddrType(size_t fId, size_t subField)
165{
166 if (this->isByOrdinal()) {
167 return Executable::NOT_ADDR;
@@ -252,90 +280,104 @@ $(function() {
173 }
174 return Executable::NOT_ADDR;
175}
+
176//-------------------------------------------------------------------------------
177
178
+
179 bool ImportEntryWrapper::loadNextEntry(size_t entryNum)
180 {
-
181 ImportedFuncWrapper* func = new ImportedFuncWrapper(m_PE, this, entryNum);
-
182 offset_t thunk = func->getThunkValue();
+
181 ImportedFuncWrapper* func = new ImportedFuncWrapper(m_PE, this, entryNum);
+
182 offset_t thunk = func->getThunkValue();
183
-
184 if (thunk == 0 || thunk == INVALID_ADDR) {
-
185 delete func;
-
186 func = NULL;
+
184 if (thunk == 0 || thunk == INVALID_ADDR) {
+
185 delete func;
+
186 func = NULL;
187 return false;
188 } else {
-
189 entries.push_back(func);
-
190 addMapping(func);
+
189 entries.push_back(func);
+
190 addMapping(func);
191 }
192 return true;
193 }
+
194
195
+
196void* ImportEntryWrapper::getPtr()
197{
-
198 if (m_PE == NULL) return NULL;
-
199 IMAGE_DATA_DIRECTORY *d = m_PE->getDataDirectory();
-
200 if (!d) return NULL;
+
198 if (m_PE == NULL) return NULL;
+
199 IMAGE_DATA_DIRECTORY *d = m_PE->getDataDirectory();
+
200 if (!d) return NULL;
201
-
202 offset_t importRva = static_cast<offset_t>(d[pe::DIR_IMPORT].VirtualAddress);
-
203 if (importRva == 0) return NULL;
+
202 offset_t importRva = static_cast<offset_t>(d[pe::DIR_IMPORT].VirtualAddress);
+
203 if (importRva == 0) return NULL;
204
-
205 offset_t descAddr = this->m_Exe->toRaw(importRva, Executable::RVA);
-
206 if (descAddr == INVALID_ADDR) {
-
207 return NULL; // address invalid
+
205 offset_t descAddr = this->m_Exe->toRaw(importRva, Executable::RVA);
+
206 if (descAddr == INVALID_ADDR) {
+
207 return NULL; // address invalid
208 }
-
209 BYTE *dirPtr = this->m_Exe->getContentAt(descAddr, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
-
210 if (dirPtr == NULL) return NULL; // address invalid
+
209 BYTE *dirPtr = this->m_Exe->getContentAt(descAddr, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
+
210 if (dirPtr == NULL) return NULL; // address invalid
211
-
212 offset_t entryOffset = descAddr + (this->entryNum * sizeof(IMAGE_IMPORT_DESCRIPTOR));
+
212 offset_t entryOffset = descAddr + (this->entryNum * sizeof(IMAGE_IMPORT_DESCRIPTOR));
213
-
214 BYTE *content = this->m_Exe->getContentAt(entryOffset, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
-
215 if (!content) return NULL;
+
214 BYTE *content = this->m_Exe->getContentAt(entryOffset, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
+
215 if (!content) return NULL;
216 return (void*) content;
217}
+
218
+
219bufsize_t ImportEntryWrapper::getSize()
220{
-
221 return sizeof(IMAGE_IMPORT_DESCRIPTOR);
+
221 return sizeof(IMAGE_IMPORT_DESCRIPTOR);
222}
+
223
-
224QString ImportEntryWrapper::getName()
+
+
224QString ImportEntryWrapper::getName()
225{
226 char *name = getLibraryName();
227 if (!name) return "";
228 return name;
229}
+
230
+
231bool ImportEntryWrapper::isBound()
232{
233 void *ptr = this->getPtr();
-
234 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) ptr;
-
235 if (!desc) return false;
+
234 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) ptr;
+
235 if (!desc) return false;
236
-
237 if (desc->TimeDateStamp == (-1)) return true;
+
237 if (desc->TimeDateStamp == (-1)) return true;
238 return false;
239}
+
240
-
241void* ImportEntryWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
241void* ImportEntryWrapper::getFieldPtr(size_t fId, size_t subField)
242{
243 void *ptr = this->getPtr();
-
244 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) ptr;
-
245 if (!desc) return NULL;
+
244 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) ptr;
+
245 if (!desc) return NULL;
246
-
247 switch (fId) {
-
248 case ORIG_FIRST_THUNK: return (void*) &desc->OriginalFirstThunk;
-
249 case TIMESTAMP: return (void*) &desc->TimeDateStamp;
-
250 case FORWARDER: return (void*) &desc->ForwarderChain;
-
251 case NAME: return (void*) &desc->Name;
-
252 case FIRST_THUNK: return (void*) &desc->FirstThunk;
+
247 switch (fId) {
+
248 case ORIG_FIRST_THUNK: return (void*) &desc->OriginalFirstThunk;
+
249 case TIMESTAMP: return (void*) &desc->TimeDateStamp;
+
250 case FORWARDER: return (void*) &desc->ForwarderChain;
+
251 case NAME: return (void*) &desc->Name;
+
252 case FIRST_THUNK: return (void*) &desc->FirstThunk;
253 }
-
254 return desc;
+
254 return desc;
255}
+
256
-
257QString ImportEntryWrapper::getFieldName(size_t fId)
+
+
257QString ImportEntryWrapper::getFieldName(size_t fId)
258{
-
259 switch (fId) {
+
259 switch (fId) {
260 case ORIG_FIRST_THUNK: return "OriginalFirstThunk";
261 case TIMESTAMP: return "TimeDateStamp";
262 case FORWARDER: return "Forwarder";
@@ -344,10 +386,12 @@ $(function() {
265 }
266 return this->getName();
267}
+
268
-
269Executable::addr_type ImportEntryWrapper::containsAddrType(size_t fId, size_t subField)
+
+
269Executable::addr_type ImportEntryWrapper::containsAddrType(size_t fId, size_t subField)
270{
-
271 switch (fId) {
+
271 switch (fId) {
272 case ORIG_FIRST_THUNK:
273 case NAME:
274 case FIRST_THUNK:
@@ -355,94 +399,106 @@ $(function() {
276 }
277 return Executable::NOT_ADDR;
278}
+
279
+
280char* ImportEntryWrapper::getLibraryName()
281{
-
282 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) getPtr();
-
283 if (!desc) {
-
284 return NULL;
+
282 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) getPtr();
+
283 if (!desc) {
+
284 return NULL;
285 }
286
-
287 offset_t nameRVA = desc->Name;
-
288 offset_t nAddr = m_Exe->toRaw(nameRVA, Executable::RVA);
-
289 if (nAddr == INVALID_ADDR) return NULL;
+
287 offset_t nameRVA = desc->Name;
+
288 offset_t nAddr = m_Exe->toRaw(nameRVA, Executable::RVA);
+
289 if (nAddr == INVALID_ADDR) return NULL;
290
291 //TODO: reimplement it:
-
292 char *name = (char*) m_Exe->getContentAt(nAddr, sizeof(char));
-
293 offset_t peSize = m_Exe->getRawSize();
+
292 char *name = (char*) m_Exe->getContentAt(nAddr, sizeof(char));
+
293 offset_t peSize = m_Exe->getRawSize();
294
-
295 bufsize_t upperLimit = m_Exe->getMaxSizeFromPtr((BYTE*) name);
-
296 bufsize_t HARD_LIMIT = ImportEntryWrapper::NameLenLimit;
-
297 size_t limit = (size_t) upperLimit < HARD_LIMIT ? upperLimit : HARD_LIMIT;
+
295 bufsize_t upperLimit = m_Exe->getMaxSizeFromPtr((BYTE*) name);
+
296 bufsize_t HARD_LIMIT = ImportEntryWrapper::NameLenLimit;
+
297 size_t limit = (size_t) upperLimit < HARD_LIMIT ? upperLimit : HARD_LIMIT;
298
-
299 if (pe_util::isStrLonger(name, limit)) {
-
300 if (upperLimit < HARD_LIMIT) {
+
299 if (pe_util::isStrLonger(name, limit)) {
+
300 if (upperLimit < HARD_LIMIT) {
301 return name; // Name at the end of File. FileBuffer secures it with appended \0
302 }
-
303 return NULL;
+
303 return NULL;
304 }
305 return name;
306}
+
307
308//---------------------------------
309
-
310IMAGE_DATA_DIRECTORY* ImportDirWrapper::getDataDirectory()
+
+
310IMAGE_DATA_DIRECTORY* ImportDirWrapper::getDataDirectory()
311{
312 PEFile *pe = dynamic_cast<PEFile*> (this->m_Exe);
-
313 if (pe == NULL) return NULL;
+
313 if (pe == NULL) return NULL;
314
-
315 IMAGE_DATA_DIRECTORY *d = pe->getDataDirectory();
-
316 return d;
+
315 IMAGE_DATA_DIRECTORY *d = pe->getDataDirectory();
+
316 return d;
317}
+
318
-
319IMAGE_IMPORT_DESCRIPTOR* ImportDirWrapper::firstDescriptor()
+
+
319IMAGE_IMPORT_DESCRIPTOR* ImportDirWrapper::firstDescriptor()
320{
-
321 IMAGE_DATA_DIRECTORY *d = getDataDirectory();
-
322 if (!d) return NULL;
+
321 IMAGE_DATA_DIRECTORY *d = getDataDirectory();
+
322 if (!d) return NULL;
323
-
324 uint32_t importRva = d[pe::DIR_IMPORT].VirtualAddress;
-
325 if (importRva == 0) return NULL;
+
324 uint32_t importRva = d[pe::DIR_IMPORT].VirtualAddress;
+
325 if (importRva == 0) return NULL;
326
-
327 offset_t descAddr = this->m_Exe->toRaw(importRva, Executable::RVA);
-
328 if (descAddr == INVALID_ADDR) return NULL; // address invalid
+
327 offset_t descAddr = this->m_Exe->toRaw(importRva, Executable::RVA);
+
328 if (descAddr == INVALID_ADDR) return NULL; // address invalid
329
-
330 BYTE *dirPtr = this->m_Exe->getContentAt(descAddr, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
-
331 if (dirPtr == NULL) return NULL; // address invalid
-
332 return (IMAGE_IMPORT_DESCRIPTOR*) dirPtr;
+
330 BYTE *dirPtr = this->m_Exe->getContentAt(descAddr, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
+
331 if (dirPtr == NULL) return NULL; // address invalid
+
332 return (IMAGE_IMPORT_DESCRIPTOR*) dirPtr;
333}
+
334
-
335bool ImportDirWrapper::loadNextEntry(size_t cntr)
+
+
335bool ImportDirWrapper::loadNextEntry(size_t cntr)
336{
-
337 ImportEntryWrapper* imp = new ImportEntryWrapper(m_PE, this, cntr);
-
338 if (!imp || !imp->getPtr()) {
-
339 delete imp;
+
337 ImportEntryWrapper* imp = new ImportEntryWrapper(m_PE, this, cntr);
+
338 if (!imp || !imp->getPtr()) {
+
339 delete imp;
340 return false;
341 }
-
342 bool isOk = false;
-
343 uint64_t thunk = imp->getNumValue(ImportEntryWrapper::FIRST_THUNK, &isOk);
-
344 if (!isOk) {
-
345 delete imp;
+
342 bool isOk = false;
+
343 uint64_t thunk = imp->getNumValue(ImportEntryWrapper::FIRST_THUNK, &isOk);
+
344 if (!isOk) {
+
345 delete imp;
346 return false;
347 }
-
348 uint64_t oThunk = imp->getNumValue(ImportEntryWrapper::ORIG_FIRST_THUNK, &isOk);
-
349 if (!isOk) {
-
350 delete imp;
+
348 uint64_t oThunk = imp->getNumValue(ImportEntryWrapper::ORIG_FIRST_THUNK, &isOk);
+
349 if (!isOk) {
+
350 delete imp;
351 return false;
352 }
-
353 if (!thunk && !oThunk) {
-
354 delete imp;
+
353 if (!thunk && !oThunk) {
+
354 delete imp;
355 return false;
356 }
-
357 entries.push_back(imp);
+
357 entries.push_back(imp);
358 return true;
359}
+
360
+
361bufsize_t ImportDirWrapper::getSize()
362{
-
363 size_t fields = getFieldsCount() + 1; //fields + terminating field
-
364 return static_cast<bufsize_t>(fields) * sizeof(IMAGE_IMPORT_DESCRIPTOR);
+
363 size_t fields = getFieldsCount() + 1; //fields + terminating field
+
364 return static_cast<bufsize_t>(fields) * sizeof(IMAGE_IMPORT_DESCRIPTOR);
365}
+
366
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -516,7 +572,7 @@ $(function() { diff --git a/_import_dir_wrapper_8h.html b/_import_dir_wrapper_8h.html index bc931cfc..11d00455 100644 --- a/_import_dir_wrapper_8h.html +++ b/_import_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/ImportDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
27class ImportEntryWrapper;
28class ImportedFuncWrapper;
29
+
30class ImportDirWrapper : public ImportBaseDirWrapper
31{
32public:
+
-
34 : ImportBaseDirWrapper(pe, pe::DIR_IMPORT) { wrap(); }
+
34 : ImportBaseDirWrapper(pe, pe::DIR_IMPORT) { wrap(); }
+
35
36 virtual void* getPtr() { return firstDescriptor(); }
37 virtual bufsize_t getSize();
-
38 virtual QString getName() { return "Imports"; }
+
38 virtual QString getName() { return "Imports"; }
39
40protected:
-
41 virtual bool loadNextEntry(size_t cntr);
+
41 virtual bool loadNextEntry(size_t cntr);
42
-
43 IMAGE_DATA_DIRECTORY* getDataDirectory();
-
44 IMAGE_IMPORT_DESCRIPTOR *firstDescriptor();
+
43 IMAGE_DATA_DIRECTORY* getDataDirectory();
+
44 IMAGE_IMPORT_DESCRIPTOR *firstDescriptor();
45
46friend class ImportEntryWrapper;
47};
+
48
49
+
50class ImportEntryWrapper : public ImportBaseEntryWrapper
51{
52public:
53 /* fields :*/
+
54 enum FieldID {
@@ -139,9 +150,12 @@ $(function() {
62 };
+
63
-
64 ImportEntryWrapper(PEFile *pe, ImportDirWrapper *importsDir, size_t entryNumber)
-
65 : ImportBaseEntryWrapper(pe, importsDir, entryNumber) { wrap(); }
+
+ + +
66
67 //virtual bool wrap();
68 //bool isValid();
@@ -151,38 +165,42 @@ $(function() {
72
73 virtual bufsize_t getSize();
74 bool isBound();
-
75 virtual QString getName();
+
75 virtual QString getName();
76 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
77
78 /* specific field boundaries */
-
79 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
80 virtual QString getFieldName(size_t fieldId);
-
81 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
79 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
80 virtual QString getFieldName(size_t fieldId);
+
81 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
82
+
84 {
-
85 if (m_Exe == NULL) return 0;
+
85 if (m_Exe == NULL) return 0;
87 }
+
88
+
90 {
-
91 offset_t nextOffset = INVALID_ADDR;
+
92 //get after existing entries:
93 if (this->getEntriesCount() > 0) {
95 }
96 //get by thunk:
-
97 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) this->getPtr();
+
98 if (!desc) return INVALID_ADDR;
99
-
100 offset_t firstThunk = desc->FirstThunk;
-
101 if (firstThunk == 0) {
-
102 firstThunk = desc->OriginalFirstThunk;
+
100 offset_t firstThunk = desc->FirstThunk;
+
101 if (firstThunk == 0) {
+
102 firstThunk = desc->OriginalFirstThunk;
103 }
-
104 nextOffset = m_Exe->convertAddr(desc->FirstThunk, Executable::RVA, Executable::RAW);
-
105 return nextOffset;
+ +
105 return nextOffset;
106 }
+
107
108 char* getLibraryName();
109
@@ -191,11 +209,14 @@ $(function() {
112
113friend class ImportDirWrapper;
114};
+
115
+
116class ImportedFuncWrapper : public ImportBaseFuncWrapper
117{
118public:
119 /* fields :*/
+
120 enum FieldID {
@@ -204,13 +225,16 @@ $(function() {
127 };
+
128
-
129 ImportedFuncWrapper(PEFile *pe, ImportEntryWrapper* parentLib, size_t entryNumber)
-
130 : ImportBaseFuncWrapper(pe, parentLib, entryNumber) {}// this->parentLib = parentLib; }
+
+ +
130 : ImportBaseFuncWrapper(pe, parentLib, entryNumber) {}// this->parentLib = parentLib; }
+
131
132 /* full structure boundaries */
133 virtual void* getPtr();
-
134 virtual IMAGE_IMPORT_BY_NAME* getImportByNamePtr();
+
134 virtual IMAGE_IMPORT_BY_NAME* getImportByNamePtr();
135
136 virtual bufsize_t getSize();
137 //virtual QString getName();
@@ -218,24 +242,26 @@ $(function() {
139 virtual size_t getSubFieldsCount() { return 1; }
140
141 /* specific field boundaries */
-
142 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
143 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
-
144 virtual QString getFieldName(size_t fieldId);
-
145 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
142 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
143 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
+
144 virtual QString getFieldName(size_t fieldId);
+
145 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
146
-
147 uint64_t getThunkValue();
+
147 uint64_t getThunkValue();
148
-
149 offset_t getFieldRVA(ImportEntryWrapper::FieldID fId);
-
150 void* getValuePtr(ImportEntryWrapper::FieldID fId);
+
149 offset_t getFieldRVA(ImportEntryWrapper::FieldID fId);
+
150 void* getValuePtr(ImportEntryWrapper::FieldID fId);
151
152 virtual offset_t callVia() { return getFieldRVA(ImportEntryWrapper::FIRST_THUNK); }
153 bool isByOrdinal();
-
154 virtual uint64_t getOrdinal() { return getThunkValue(); }
+
154 virtual uint64_t getOrdinal() { return getThunkValue(); }
155 char* getFunctionName();
156
157friend class ImportDirWrapper;
158};
+
159
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -315,7 +341,7 @@ $(function() { diff --git a/_ld_config_dir_wrapper_8cpp.html b/_ld_config_dir_wrapper_8cpp.html index 386297e8..3e1583bb 100644 --- a/_ld_config_dir_wrapper_8cpp.html +++ b/_ld_config_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/LdConfigDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
5
6bufsize_t LdConfigDirWrapper::getLdConfigDirSize()
7{
-
8 bufsize_t dirSize = 0;
+
8 bufsize_t dirSize = 0;
9
10 if (m_Exe->getBitMode() == Executable::BITS_32) {
-
11 dirSize = sizeof(pe::IMAGE_LOAD_CONFIG_DIRECTORY32);
+
11 dirSize = sizeof(pe::IMAGE_LOAD_CONFIG_DIRECTORY32);
12 } else if (m_Exe->getBitMode() == Executable::BITS_64) {
-
13 dirSize = sizeof(pe::IMAGE_LOAD_CONFIG_DIRECTORY64);
+
13 dirSize = sizeof(pe::IMAGE_LOAD_CONFIG_DIRECTORY64);
14 }
-
15 return dirSize;
+
15 return dirSize;
16}
17
18bufsize_t LdConfigDirWrapper::getHdrDefinedSize()
19{
-
20 const offset_t rva = getDirEntryAddress();
-
21 offset_t raw = INVALID_ADDR;
+
20 const offset_t rva = getDirEntryAddress();
+
21 offset_t raw = INVALID_ADDR;
22 try {
-
23 raw = m_Exe->rvaToRaw(rva);
-
24 } catch (CustomException &e) {
-
25 raw = INVALID_ADDR;
+
23 raw = m_Exe->rvaToRaw(rva);
+
24 } catch (CustomException &e) {
+
25 raw = INVALID_ADDR;
26 }
-
27 if (raw == INVALID_ADDR) return 0;
+
27 if (raw == INVALID_ADDR) return 0;
28
29 offset_t offset = INVALID_ADDR;
30
31 if (m_Exe->getBitMode() == Executable::BITS_32) {
-
32 pe::IMAGE_LOAD_CONFIG_DIRECTORY32 ld = { 0 };
-
33 offset = getStructFieldOffset(ld, Size);
+
32 pe::IMAGE_LOAD_CONFIG_DIRECTORY32 ld = { 0 };
+
33 offset = getStructFieldOffset(ld, Size);
34
35 } else if (m_Exe->getBitMode() == Executable::BITS_64) {
-
36 pe::IMAGE_LOAD_CONFIG_DIRECTORY64 ld = { 0 };
-
37 offset = getStructFieldOffset(ld, Size);
+
36 pe::IMAGE_LOAD_CONFIG_DIRECTORY64 ld = { 0 };
+
37 offset = getStructFieldOffset(ld, Size);
38 }
-
39 DWORD* sizePtr = (DWORD*) m_Exe->getContentAt((raw + offset), sizeof(DWORD));
+
39 DWORD* sizePtr = (DWORD*) m_Exe->getContentAt((raw + offset), sizeof(DWORD));
40 if (!sizePtr) return 0;
41 return bufsize_t(*sizePtr);
42}
43
44void* LdConfigDirWrapper::getLdConfigDirPtr()
45{
-
46 offset_t rva = getDirEntryAddress();
-
47 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, this->getSize());
+
46 offset_t rva = getDirEntryAddress();
+
47 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, this->getSize());
48 return ptr;
49}
50
-
51bool LdConfigDirWrapper::wrapSubentriesTable(size_t parentFieldId, size_t counterFieldId)
+
51bool LdConfigDirWrapper::wrapSubentriesTable(size_t parentFieldId, size_t counterFieldId)
52{
-
53 bool isOk = false;
-
54 size_t count = this->getNumValue(counterFieldId, &isOk);
-
55 if (!isOk) {
+
53 bool isOk = false;
+
54 size_t count = this->getNumValue(counterFieldId, &isOk);
+
55 if (!isOk) {
56 return false;
57 }
-
58 for (size_t i = 0 ; i < count; i++) {
-
59 LdConfigEntryWrapper *entry = new LdConfigEntryWrapper(m_Exe, this, i, parentFieldId);
-
60 if (!entry || !entry->getPtr()) {
-
61 delete entry;
+
58 for (size_t i = 0 ; i < count; i++) {
+
59 LdConfigEntryWrapper *entry = new LdConfigEntryWrapper(m_Exe, this, i, parentFieldId);
+
60 if (!entry || !entry->getPtr()) {
+
61 delete entry;
62 break;
63 }
64 this->entries.push_back(entry);
-
65 this->subEntriesMap[parentFieldId].push_back(entry);
+
65 this->subEntriesMap[parentFieldId].push_back(entry);
66 }
-
67 return isOk;
+
67 return isOk;
68}
69
+
70bool LdConfigDirWrapper::wrap()
71{
72 clear();
@@ -162,238 +168,250 @@ $(function() {
83 wrapSubentriesTable(GUARD_EH_CONT_TABLE, GUARD_EH_CONT_COUNT);
84 return true;
85}
+
86
+
87void* LdConfigDirWrapper::getPtr()
88{
89 return getLdConfigDirPtr();
90}
+
91
+
92void LdConfigDirWrapper::clear()
93{
-
94 std::map<uint32_t, std::vector<ExeNodeWrapper*> >::iterator mapItr;
-
95 for (mapItr = this->subEntriesMap.begin(); mapItr != this->subEntriesMap.end(); ++mapItr) {
-
96 std::vector<ExeNodeWrapper*> &vec = mapItr->second;
-
97 vec.clear();
+
94 std::map<uint32_t, std::vector<ExeNodeWrapper*> >::iterator mapItr;
+
95 for (mapItr = this->subEntriesMap.begin(); mapItr != this->subEntriesMap.end(); ++mapItr) {
+
96 std::vector<ExeNodeWrapper*> &vec = mapItr->second;
+
97 vec.clear();
98 }
99 ExeNodeWrapper::clear();
100}
+
101
-
102void* LdConfigDirWrapper::firstSubEntryPtr(size_t parentId)
+
+
102void* LdConfigDirWrapper::firstSubEntryPtr(size_t parentId)
103{
-
104 bool isOk = false;
-
105 offset_t offset = this->getNumValue(parentId, &isOk);
-
106 if (!isOk) return NULL;
+
104 bool isOk = false;
+
105 offset_t offset = this->getNumValue(parentId, &isOk);
+
106 if (!isOk) return NULL;
107
-
108 Executable::addr_type aT = containsAddrType(parentId);
-
109 if (aT == Executable::NOT_ADDR) return NULL;
+
108 Executable::addr_type aT = containsAddrType(parentId);
+
109 if (aT == Executable::NOT_ADDR) return NULL;
110
-
111 bufsize_t handlerSize = static_cast<bufsize_t>(this->firstSubEntrySize(parentId));
-
112 char *ptr = (char*) m_Exe->getContentAt(offset, aT, handlerSize);
-
113 if (!ptr) return NULL;
+
111 bufsize_t handlerSize = static_cast<bufsize_t>(this->firstSubEntrySize(parentId));
+
112 char *ptr = (char*) m_Exe->getContentAt(offset, aT, handlerSize);
+
113 if (!ptr) return NULL;
114
115 return ptr;
116}
+
117
+
118bufsize_t LdConfigDirWrapper::getSize()
119{
120 //validate the offset
-
121 const offset_t rva = getDirEntryAddress();
-
122 if (!m_Exe->isValidAddr(rva, Executable::RVA)) {
+
121 const offset_t rva = getDirEntryAddress();
+
122 if (!m_Exe->isValidAddr(rva, Executable::RVA)) {
123 return 0;
124 }
-
125 const bufsize_t hdrSize = this->getHdrDefinedSize();
-
126 const bufsize_t structSize = getLdConfigDirSize();
-
127 const bufsize_t totalSize = (hdrSize < structSize) ? hdrSize : structSize;
+
125 const bufsize_t hdrSize = this->getHdrDefinedSize();
+
126 const bufsize_t structSize = getLdConfigDirSize();
+
127 const bufsize_t totalSize = (hdrSize < structSize) ? hdrSize : structSize;
128 // is the size correct
-
129 const offset_t rvaEnd = rva + totalSize - 1;
-
130 if (!m_Exe->isValidAddr(rvaEnd, Executable::RVA)) {
+
129 const offset_t rvaEnd = rva + totalSize - 1;
+
130 if (!m_Exe->isValidAddr(rvaEnd, Executable::RVA)) {
131 return 0;
132 }
-
133 return totalSize;
+
133 return totalSize;
134}
+
135
-
136offset_t LdConfigDirWrapper::_getFieldDelta(bool is32b, size_t fId)
+
136offset_t LdConfigDirWrapper::_getFieldDelta(bool is32b, size_t fId)
137{
-
138 static pe::IMAGE_LOAD_CONFIG_DIRECTORY32 ld32 = { 0 };
-
139 static pe::IMAGE_LOAD_CONFIG_DIRECTORY64 ld64 = { 0 };
+
138 static pe::IMAGE_LOAD_CONFIG_DIRECTORY32 ld32 = { 0 };
+
139 static pe::IMAGE_LOAD_CONFIG_DIRECTORY64 ld64 = { 0 };
140
141 //offset from the beginning of the IMAGE_LOAD_CONFIG_DIRECTORY_T strucure
-
142 offset_t fieldOffset = INVALID_ADDR;
-
143 switch (fId) {
+
142 offset_t fieldOffset = INVALID_ADDR;
+
143 switch (fId) {
144 case SIZE :
-
145 fieldOffset = (is32b) ? getStructFieldOffset(ld32, Size) : getStructFieldOffset(ld64, Size);
+
145 fieldOffset = (is32b) ? getStructFieldOffset(ld32, Size) : getStructFieldOffset(ld64, Size);
146 break;
147 case TIMEST :
-
148 fieldOffset = (is32b) ? getStructFieldOffset(ld32,TimeDateStamp) : getStructFieldOffset(ld64, TimeDateStamp);
+
148 fieldOffset = (is32b) ? getStructFieldOffset(ld32,TimeDateStamp) : getStructFieldOffset(ld64, TimeDateStamp);
149 break;
150 case MAJOR_VER :
-
151 fieldOffset = (is32b) ? getStructFieldOffset(ld32,MajorVersion) : getStructFieldOffset(ld64, MajorVersion);
+
151 fieldOffset = (is32b) ? getStructFieldOffset(ld32,MajorVersion) : getStructFieldOffset(ld64, MajorVersion);
152 break;
153 case MINOR_VER :
-
154 fieldOffset = (is32b) ? getStructFieldOffset(ld32, MinorVersion) : getStructFieldOffset(ld64, MinorVersion);
+
154 fieldOffset = (is32b) ? getStructFieldOffset(ld32, MinorVersion) : getStructFieldOffset(ld64, MinorVersion);
155 break;
156 case GLOBAL_FLAGS_CLEAR :
-
157 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GlobalFlagsClear) : getStructFieldOffset(ld64, GlobalFlagsClear);
+
157 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GlobalFlagsClear) : getStructFieldOffset(ld64, GlobalFlagsClear);
158 break;
159 case GLOBAL_FLAGS_SET :
-
160 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GlobalFlagsSet) : getStructFieldOffset(ld64, GlobalFlagsSet);
+
160 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GlobalFlagsSet) : getStructFieldOffset(ld64, GlobalFlagsSet);
161 break;
162 case CRITICAT_SEC_TIMEOUT :
-
163 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CriticalSectionDefaultTimeout) : getStructFieldOffset(ld64, CriticalSectionDefaultTimeout);
+
163 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CriticalSectionDefaultTimeout) : getStructFieldOffset(ld64, CriticalSectionDefaultTimeout);
164 break;
165 case DECOMMIT_FREE :
-
166 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DeCommitFreeBlockThreshold) : getStructFieldOffset(ld64, DeCommitFreeBlockThreshold);
+
166 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DeCommitFreeBlockThreshold) : getStructFieldOffset(ld64, DeCommitFreeBlockThreshold);
167 break;
168
169 case DECOMMIT_TOTAL :
-
170 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DeCommitTotalFreeThreshold) : getStructFieldOffset(ld64, DeCommitTotalFreeThreshold);
+
170 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DeCommitTotalFreeThreshold) : getStructFieldOffset(ld64, DeCommitTotalFreeThreshold);
171 break;
172 case LOCK_PREFIX :
-
173 fieldOffset = (is32b) ? getStructFieldOffset(ld32, LockPrefixTable) : getStructFieldOffset(ld64, LockPrefixTable);
+
173 fieldOffset = (is32b) ? getStructFieldOffset(ld32, LockPrefixTable) : getStructFieldOffset(ld64, LockPrefixTable);
174 break;
175 case MAX_ALLOC :
-
176 fieldOffset = (is32b) ? getStructFieldOffset(ld32, MaximumAllocationSize) : getStructFieldOffset(ld64, MaximumAllocationSize);
+
176 fieldOffset = (is32b) ? getStructFieldOffset(ld32, MaximumAllocationSize) : getStructFieldOffset(ld64, MaximumAllocationSize);
177 break;
178 case VIRTUAL_MEM :
-
179 fieldOffset = (is32b) ? getStructFieldOffset(ld32, VirtualMemoryThreshold) : getStructFieldOffset(ld64, VirtualMemoryThreshold);
+
179 fieldOffset = (is32b) ? getStructFieldOffset(ld32, VirtualMemoryThreshold) : getStructFieldOffset(ld64, VirtualMemoryThreshold);
180 break;
181 case PROC_HEAP_FLAGS32 : //PROC_AFF_MASK64
182 {
-
183 fieldOffset = (is32b) ? getStructFieldOffset(ld32, ProcessHeapFlags) : getStructFieldOffset(ld64, ProcessAffinityMask);
+
183 fieldOffset = (is32b) ? getStructFieldOffset(ld32, ProcessHeapFlags) : getStructFieldOffset(ld64, ProcessAffinityMask);
184 break;
185 }
186 case PROC_AFF_MASK32 : // PROC_HEAP_FLAGS64
187 {
-
188 fieldOffset = (is32b) ? getStructFieldOffset(ld32, ProcessAffinityMask) : getStructFieldOffset(ld64, ProcessHeapFlags);
+
188 fieldOffset = (is32b) ? getStructFieldOffset(ld32, ProcessAffinityMask) : getStructFieldOffset(ld64, ProcessHeapFlags);
189 break;
190 }
191 case CSD_VER :
-
192 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CSDVersion) : getStructFieldOffset(ld64, CSDVersion);
+
192 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CSDVersion) : getStructFieldOffset(ld64, CSDVersion);
193 break;
194 case DEPENDENT_LOAD_FLAGS :
-
195 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DependentLoadFlags) : getStructFieldOffset(ld64, DependentLoadFlags);
+
195 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DependentLoadFlags) : getStructFieldOffset(ld64, DependentLoadFlags);
196 break;
197 case EDIT_LIST :
-
198 fieldOffset = (is32b) ? getStructFieldOffset(ld32, EditList) : getStructFieldOffset(ld64, EditList);
+
198 fieldOffset = (is32b) ? getStructFieldOffset(ld32, EditList) : getStructFieldOffset(ld64, EditList);
199 break;
200 case SEC_COOKIE :
-
201 fieldOffset = (is32b) ? getStructFieldOffset(ld32, SecurityCookie) : getStructFieldOffset(ld64, SecurityCookie);
+
201 fieldOffset = (is32b) ? getStructFieldOffset(ld32, SecurityCookie) : getStructFieldOffset(ld64, SecurityCookie);
202 break;
203 case SEH_TABLE :
-
204 fieldOffset = (is32b) ? getStructFieldOffset(ld32, SEHandlerTable) : getStructFieldOffset(ld64, SEHandlerTable);
+
204 fieldOffset = (is32b) ? getStructFieldOffset(ld32, SEHandlerTable) : getStructFieldOffset(ld64, SEHandlerTable);
205 break;
206 case SEH_COUNT :
-
207 fieldOffset = (is32b) ? getStructFieldOffset(ld32, SEHandlerCount) : getStructFieldOffset(ld64, SEHandlerCount);
+
207 fieldOffset = (is32b) ? getStructFieldOffset(ld32, SEHandlerCount) : getStructFieldOffset(ld64, SEHandlerCount);
208 break;
209
210 // W8.1 part:
211 case GUARD_CHECK :
-
212 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardCFCheckFunctionPointer) : getStructFieldOffset(ld64, GuardCFCheckFunctionPointer);
+
212 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardCFCheckFunctionPointer) : getStructFieldOffset(ld64, GuardCFCheckFunctionPointer);
213 break;
214 case GUARD_DISPATCH :
-
215 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardCFDispatchFunctionPointer) : getStructFieldOffset(ld64, GuardCFDispatchFunctionPointer);
+
215 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardCFDispatchFunctionPointer) : getStructFieldOffset(ld64, GuardCFDispatchFunctionPointer);
216 break;
217 case GUARD_TABLE:
-
218 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardCFFunctionTable) : getStructFieldOffset(ld64, GuardCFFunctionTable);
+
218 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardCFFunctionTable) : getStructFieldOffset(ld64, GuardCFFunctionTable);
219 break;
220 case GUARD_COUNT:
-
221 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardCFFunctionCount) : getStructFieldOffset(ld64, GuardCFFunctionCount);
+
221 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardCFFunctionCount) : getStructFieldOffset(ld64, GuardCFFunctionCount);
222 break;
223 case GUARD_FLAGS:
-
224 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardFlags) : getStructFieldOffset(ld64, GuardFlags);
+
224 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardFlags) : getStructFieldOffset(ld64, GuardFlags);
225 break;
226
227 // W10 part:
228 case CODE_INTEGRITY_FLAGS:
-
229 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CodeIntegrity.Flags) : getStructFieldOffset(ld64, CodeIntegrity.Flags);
+
229 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CodeIntegrity.Flags) : getStructFieldOffset(ld64, CodeIntegrity.Flags);
230 break;
231 case CODE_INTEGRITY_CATALOG:
-
232 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CodeIntegrity.Catalog) : getStructFieldOffset(ld64, CodeIntegrity.Catalog);
+
232 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CodeIntegrity.Catalog) : getStructFieldOffset(ld64, CodeIntegrity.Catalog);
233 break;
234 case CODE_INTEGRITY_CATALOG_OFFSET:
-
235 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CodeIntegrity.CatalogOffset) : getStructFieldOffset(ld64, CodeIntegrity.CatalogOffset);
+
235 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CodeIntegrity.CatalogOffset) : getStructFieldOffset(ld64, CodeIntegrity.CatalogOffset);
236 break;
237 case CODE_INTEGRITY_RESERVED:
-
238 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CodeIntegrity.Reserved) : getStructFieldOffset(ld64, CodeIntegrity.Reserved);
+
238 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CodeIntegrity.Reserved) : getStructFieldOffset(ld64, CodeIntegrity.Reserved);
239 break;
240 case GUARD_ADDR_IAT_ENTRY_TABLE:
-
241 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardAddressTakenIatEntryTable) : getStructFieldOffset(ld64, GuardAddressTakenIatEntryTable);
+
241 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardAddressTakenIatEntryTable) : getStructFieldOffset(ld64, GuardAddressTakenIatEntryTable);
242 break;
243 case GUARD_ADDR_IAT_ENTRY_COUNT:
-
244 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardAddressTakenIatEntryCount) : getStructFieldOffset(ld64, GuardAddressTakenIatEntryCount);
+
244 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardAddressTakenIatEntryCount) : getStructFieldOffset(ld64, GuardAddressTakenIatEntryCount);
245 break;
246 case GUARD_LONG_JUMP_TABLE:
-
247 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardLongJumpTargetTable) : getStructFieldOffset(ld64, GuardLongJumpTargetTable);
+
247 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardLongJumpTargetTable) : getStructFieldOffset(ld64, GuardLongJumpTargetTable);
248 break;
249 case GUARD_LONG_JUMP_COUNT:
-
250 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardLongJumpTargetCount) : getStructFieldOffset(ld64, GuardLongJumpTargetCount);
+
250 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardLongJumpTargetCount) : getStructFieldOffset(ld64, GuardLongJumpTargetCount);
251 break;
252 case DYNAMIC_VAL_RELOC:
-
253 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DynamicValueRelocTable) : getStructFieldOffset(ld64, DynamicValueRelocTable);
+
253 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DynamicValueRelocTable) : getStructFieldOffset(ld64, DynamicValueRelocTable);
254 break;
255 case CHPE_METADATA_PTR:
-
256 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CHPEMetadataPointer) : getStructFieldOffset(ld64, CHPEMetadataPointer);
+
256 fieldOffset = (is32b) ? getStructFieldOffset(ld32, CHPEMetadataPointer) : getStructFieldOffset(ld64, CHPEMetadataPointer);
257 break;
258 case GUARD_FAILURE_ROUTINE:
-
259 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardRFFailureRoutine) : getStructFieldOffset(ld64, GuardRFFailureRoutine);
+
259 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardRFFailureRoutine) : getStructFieldOffset(ld64, GuardRFFailureRoutine);
260 break;
261 case GUARD_FAILURE_ROUTINE_FUNC_PTR:
-
262 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardRFFailureRoutineFunctionPointer) : getStructFieldOffset(ld64, GuardRFFailureRoutineFunctionPointer);
+
262 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardRFFailureRoutineFunctionPointer) : getStructFieldOffset(ld64, GuardRFFailureRoutineFunctionPointer);
263 break;
264 case DYNAMIC_VAL_RELOC_TABLE_OFFSET:
-
265 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DynamicValueRelocTableOffset) : getStructFieldOffset(ld64, DynamicValueRelocTableOffset);
+
265 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DynamicValueRelocTableOffset) : getStructFieldOffset(ld64, DynamicValueRelocTableOffset);
266 break;
267 case DYNAMIC_VAL_RELOC_TABLE_SECTION:
-
268 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DynamicValueRelocTableSection) : getStructFieldOffset(ld64, DynamicValueRelocTableSection);
+
268 fieldOffset = (is32b) ? getStructFieldOffset(ld32, DynamicValueRelocTableSection) : getStructFieldOffset(ld64, DynamicValueRelocTableSection);
269 break;
270 case RESERVED2:
-
271 fieldOffset = (is32b) ? getStructFieldOffset(ld32, Reserved2) : getStructFieldOffset(ld64, Reserved2);
+
271 fieldOffset = (is32b) ? getStructFieldOffset(ld32, Reserved2) : getStructFieldOffset(ld64, Reserved2);
272 break;
273 case GUARD_VERIFY_STACK_PTR:
-
274 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardRFVerifyStackPointerFunctionPointer) : getStructFieldOffset(ld64, GuardRFVerifyStackPointerFunctionPointer);
+
274 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardRFVerifyStackPointerFunctionPointer) : getStructFieldOffset(ld64, GuardRFVerifyStackPointerFunctionPointer);
275 break;
276 case HOT_PATCH_TABLE_OFFSET:
-
277 fieldOffset = (is32b) ? getStructFieldOffset(ld32, HotPatchTableOffset) : getStructFieldOffset(ld64, HotPatchTableOffset);
+
277 fieldOffset = (is32b) ? getStructFieldOffset(ld32, HotPatchTableOffset) : getStructFieldOffset(ld64, HotPatchTableOffset);
278 break;
279 case RESERVED3:
-
280 fieldOffset = (is32b) ? getStructFieldOffset(ld32, Reserved3) : getStructFieldOffset(ld64, Reserved3);
+
280 fieldOffset = (is32b) ? getStructFieldOffset(ld32, Reserved3) : getStructFieldOffset(ld64, Reserved3);
281 break;
282 case ENCLAVE_CONFIG_PTR:
-
283 fieldOffset = (is32b) ? getStructFieldOffset(ld32, EnclaveConfigurationPointer) : getStructFieldOffset(ld64, EnclaveConfigurationPointer);
+
283 fieldOffset = (is32b) ? getStructFieldOffset(ld32, EnclaveConfigurationPointer) : getStructFieldOffset(ld64, EnclaveConfigurationPointer);
284 break;
285 case VOLATILE_METADATA_PTR:
-
286 fieldOffset = (is32b) ? getStructFieldOffset(ld32, VolatileMetadataPointer) : getStructFieldOffset(ld64, VolatileMetadataPointer);
+
286 fieldOffset = (is32b) ? getStructFieldOffset(ld32, VolatileMetadataPointer) : getStructFieldOffset(ld64, VolatileMetadataPointer);
287 break;
288 case GUARD_EH_CONT_TABLE:
-
289 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardEHContinuationTable) : getStructFieldOffset(ld64, GuardEHContinuationTable);
+
289 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardEHContinuationTable) : getStructFieldOffset(ld64, GuardEHContinuationTable);
290 break;
291 case GUARD_EH_CONT_COUNT:
-
292 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardEHContinuationCount) : getStructFieldOffset(ld64, GuardEHContinuationCount);
+
292 fieldOffset = (is32b) ? getStructFieldOffset(ld32, GuardEHContinuationCount) : getStructFieldOffset(ld64, GuardEHContinuationCount);
293 break;
294 }
-
295 return fieldOffset;
+
295 return fieldOffset;
296}
297
-
298void* LdConfigDirWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
298void* LdConfigDirWrapper::getFieldPtr(size_t fId, size_t subField)
299{
-
300 const bool is32b = (m_Exe->getBitMode() == Executable::BITS_32) ? true : false;
+
300 const bool is32b = (m_Exe->getBitMode() == Executable::BITS_32) ? true : false;
301
-
302 offset_t fieldDelta = _getFieldDelta(is32b, fId);
-
303 if (fieldDelta != INVALID_ADDR) {
-
304 const offset_t hdrSize = this->getHdrDefinedSize();
-
305 if (fieldDelta >= hdrSize) {
-
306 return NULL;
+
302 offset_t fieldDelta = _getFieldDelta(is32b, fId);
+
303 if (fieldDelta != INVALID_ADDR) {
+
304 const offset_t hdrSize = this->getHdrDefinedSize();
+
305 if (fieldDelta >= hdrSize) {
+
306 return NULL;
307 }
308 return m_Exe->getContentAt(this->getOffset() + fieldDelta, 1);
309 }
-
310 return NULL;
+
310 return NULL;
311}
+
312
-
313QString LdConfigDirWrapper::getFieldName(size_t fieldId)
+
+
313QString LdConfigDirWrapper::getFieldName(size_t fieldId)
314{
315 if (!m_Exe) return "";
-
316 const bool is32bit = (m_Exe->getBitMode() == Executable::BITS_32);
-
317 switch (fieldId) {
+
316 const bool is32bit = (m_Exe->getBitMode() == Executable::BITS_32);
+
317 switch (fieldId) {
318 case SIZE : return "Size";
319 case TIMEST : return "TimeDateStamp";
320 case MAJOR_VER : return "MajorVersion";
@@ -408,11 +426,11 @@ $(function() {
329 case VIRTUAL_MEM : return "VirtualMemoryThreshold";
330 case PROC_HEAP_FLAGS32 : //PROC_AFF_MASK64
331 {
-
332 return (is32bit) ? "ProcessHeapFlags" : "ProcessAffinityMask";
+
332 return (is32bit) ? "ProcessHeapFlags" : "ProcessAffinityMask";
333 }
334 case PROC_AFF_MASK32 : // PROC_HEAP_FLAGS64
335 {
-
336 return (is32bit) ? "ProcessAffinityMask" : "ProcessHeapFlags";
+
336 return (is32bit) ? "ProcessAffinityMask" : "ProcessHeapFlags";
337 }
338 case CSD_VER : return "CSDVersion";
339 case DEPENDENT_LOAD_FLAGS : return "DependentLoadFlags";
@@ -454,10 +472,12 @@ $(function() {
375 }
376 return getName();
377}
+
378
-
379Executable::addr_type LdConfigDirWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
379Executable::addr_type LdConfigDirWrapper::containsAddrType(size_t fieldId, size_t subField)
380{
-
381 switch (fieldId) {
+
381 switch (fieldId) {
382 case LOCK_PREFIX :
383 case EDIT_LIST :
384 case SEC_COOKIE :
@@ -478,161 +498,179 @@ $(function() {
399 }
400 return Executable::NOT_ADDR;
401}
+
402
-
403std::set<DWORD> LdConfigDirWrapper::getGuardFlagsSet(DWORD flags)
+
+
403std::set<DWORD> LdConfigDirWrapper::getGuardFlagsSet(DWORD flags)
404{
-
405 const size_t guardFlagsCount = 13;
-
406 const DWORD guardFlags[guardFlagsCount] = {
-
407 IMAGE_GUARD_CF_INSTRUMENTED,
-
408 IMAGE_GUARD_CFW_INSTRUMENTED,
-
409 IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT,
-
410 IMAGE_GUARD_SECURITY_COOKIE_UNUSED,
-
411 IMAGE_GUARD_PROTECT_DELAYLOAD_IAT,
-
412 IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION,
-
413 IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT,
-
414 IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION,
-
415 IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT,
-
416 IMAGE_GUARD_RF_INSTRUMENTED,
-
417 IMAGE_GUARD_RF_ENABLE,
-
418 IMAGE_GUARD_RF_STRICT,
-
419 IMAGE_GUARD_RETPOLINE_PRESENT
+
405 const size_t guardFlagsCount = 13;
+
406 const DWORD guardFlags[guardFlagsCount] = {
+
407 IMAGE_GUARD_CF_INSTRUMENTED,
+
408 IMAGE_GUARD_CFW_INSTRUMENTED,
+
409 IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT,
+
410 IMAGE_GUARD_SECURITY_COOKIE_UNUSED,
+
411 IMAGE_GUARD_PROTECT_DELAYLOAD_IAT,
+
412 IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION,
+
413 IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT,
+
414 IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION,
+
415 IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT,
+
416 IMAGE_GUARD_RF_INSTRUMENTED,
+
417 IMAGE_GUARD_RF_ENABLE,
+
418 IMAGE_GUARD_RF_STRICT,
+
419 IMAGE_GUARD_RETPOLINE_PRESENT
420 };
-
421 std::set<DWORD> allFlags;
-
422 for (size_t i = 0; i < guardFlagsCount; ++i) {
-
423 const DWORD nextFlag = guardFlags[i];
-
424 if (flags & nextFlag) {
-
425 allFlags.insert(nextFlag);
+
421 std::set<DWORD> allFlags;
+
422 for (size_t i = 0; i < guardFlagsCount; ++i) {
+
423 const DWORD nextFlag = guardFlags[i];
+
424 if (flags & nextFlag) {
+
425 allFlags.insert(nextFlag);
426 }
427 }
-
428 return allFlags;
+
428 return allFlags;
429}
+
430
-
431QString LdConfigDirWrapper::translateGuardFlag(DWORD flags)
+
+
431QString LdConfigDirWrapper::translateGuardFlag(DWORD flags)
432{
-
433 if (flags & IMAGE_GUARD_CF_INSTRUMENTED) {
+
433 if (flags & IMAGE_GUARD_CF_INSTRUMENTED) {
434 return ("CF_INSTRUMENTED");
435 }
-
436 if (flags & IMAGE_GUARD_CFW_INSTRUMENTED) {
+
436 if (flags & IMAGE_GUARD_CFW_INSTRUMENTED) {
437 return ("CFW_INSTRUMENTED");
438 }
-
439 if (flags & IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT) {
+
439 if (flags & IMAGE_GUARD_CF_FUNCTION_TABLE_PRESENT) {
440 return ("CF_FUNCTION_TABLE_PRESENT");
441 }
-
442 if (flags & IMAGE_GUARD_SECURITY_COOKIE_UNUSED) {
+
442 if (flags & IMAGE_GUARD_SECURITY_COOKIE_UNUSED) {
443 return ("SECURITY_COOKIE_UNUSED");
444 }
-
445 if (flags & IMAGE_GUARD_PROTECT_DELAYLOAD_IAT) {
+
445 if (flags & IMAGE_GUARD_PROTECT_DELAYLOAD_IAT) {
446 return ("PROTECT_DELAYLOAD_IAT");
447 }
-
448 if (flags & IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION) {
+
448 if (flags & IMAGE_GUARD_DELAYLOAD_IAT_IN_ITS_OWN_SECTION) {
449 return ("DELAYLOAD_IAT_IN_ITS_OWN_SECTION");
450 }
-
451 if (flags & IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT) {
+
451 if (flags & IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT) {
452 return ("CF_EXPORT_SUPPRESSION_INFO_PRESENT");
453 }
-
454 if (flags & IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION) {
+
454 if (flags & IMAGE_GUARD_CF_ENABLE_EXPORT_SUPPRESSION) {
455 return ("CF_ENABLE_EXPORT_SUPPRESSION");
456 }
-
457 if (flags & IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT) {
+
457 if (flags & IMAGE_GUARD_CF_LONGJUMP_TABLE_PRESENT) {
458 return ("CF_LONGJUMP_TABLE_PRESENT");
459 }
-
460 if (flags & IMAGE_GUARD_RF_INSTRUMENTED) {
+
460 if (flags & IMAGE_GUARD_RF_INSTRUMENTED) {
461 return ("RF_INSTRUMENTED");
462 }
-
463 if (flags & IMAGE_GUARD_RF_ENABLE) {
+
463 if (flags & IMAGE_GUARD_RF_ENABLE) {
464 return ("RF_ENABLE");
465 }
-
466 if (flags & IMAGE_GUARD_RF_STRICT) {
+
466 if (flags & IMAGE_GUARD_RF_STRICT) {
467 return ("RF_STRICT");
468 }
-
469 if (flags & IMAGE_GUARD_RETPOLINE_PRESENT) {
+
469 if (flags & IMAGE_GUARD_RETPOLINE_PRESENT) {
470 return ("RETPOLINE_PRESENT");
471 }
472 return "";
473}
+
474
-
475QString LdConfigDirWrapper::translateGuardFlagsContent(const QString& delim)
+
+
475QString LdConfigDirWrapper::translateGuardFlagsContent(const QString& delim)
476{
-
477 bool isOk = false;
-
478 DWORD GuardFlags = this->getNumValue(GUARD_FLAGS, &isOk);
-
479 if (!isOk) {
+
477 bool isOk = false;
+
478 DWORD GuardFlags = this->getNumValue(GUARD_FLAGS, &isOk);
+
479 if (!isOk) {
480 return "-";
481 }
-
482 std::set<DWORD> flagsSet = LdConfigDirWrapper::getGuardFlagsSet(GuardFlags);
-
483 std::set<DWORD>::iterator itr;
-
484 QStringList list;
-
485 for (itr = flagsSet.begin() ; itr != flagsSet.end(); ++itr) {
-
486 const DWORD nextFlag = *itr;
-
487 const QString flagInfo = LdConfigDirWrapper::translateGuardFlag(nextFlag);
-
488 if (flagInfo.length() == 0) continue;
-
489 list.append(flagInfo);
+
482 std::set<DWORD> flagsSet = LdConfigDirWrapper::getGuardFlagsSet(GuardFlags);
+
483 std::set<DWORD>::iterator itr;
+
484 QStringList list;
+
485 for (itr = flagsSet.begin() ; itr != flagsSet.end(); ++itr) {
+
486 const DWORD nextFlag = *itr;
+
487 const QString flagInfo = LdConfigDirWrapper::translateGuardFlag(nextFlag);
+
488 if (flagInfo.length() == 0) continue;
+
489 list.append(flagInfo);
490 }
-
491 return list.join(delim);
+
491 return list.join(delim);
492}
+
493
-
494QString LdConfigDirWrapper::translateFieldContent(size_t fieldId)
+
+
494QString LdConfigDirWrapper::translateFieldContent(size_t fieldId)
495{
-
496 if (fieldId == GUARD_FLAGS) {
+
496 if (fieldId == GUARD_FLAGS) {
497 return translateGuardFlagsContent(";");;
498 }
499 return "";
500}
+
501//----------------
502
+
503void* LdConfigEntryWrapper::getPtr()
504{
-
505 if (this->parentDir == NULL) return NULL;
+
505 if (this->parentDir == NULL) return NULL;
506
-
507 void* first = parentDir->firstSubEntryPtr(this->parentFieldId);
-
508 if (first == NULL) return NULL;
-
509 bufsize_t fieldSize = static_cast<bufsize_t>(parentDir->firstSubEntrySize(this->parentFieldId));
-
510 if (fieldSize == 0) return NULL;
+
507 void* first = parentDir->firstSubEntryPtr(this->parentFieldId);
+
508 if (first == NULL) return NULL;
+
509 bufsize_t fieldSize = static_cast<bufsize_t>(parentDir->firstSubEntrySize(this->parentFieldId));
+
510 if (fieldSize == 0) return NULL;
511
512 offset_t offset = this->getOffset(first);
-
513 if (offset == INVALID_ADDR) return NULL;
+
513 if (offset == INVALID_ADDR) return NULL;
514
515 //offset from the beginning:
-
516 offset_t fieldOffset = (this->entryNum * fieldSize);
-
517 offset += fieldOffset;
-
518 void *ptr = m_Exe->getContentAt(offset, Executable::RAW, fieldSize);
+
516 offset_t fieldOffset = (this->entryNum * fieldSize);
+
517 offset += fieldOffset;
+
518 void *ptr = m_Exe->getContentAt(offset, Executable::RAW, fieldSize);
519 return ptr;
520}
+
521
+
522bufsize_t LdConfigEntryWrapper::getSize()
523{
-
524 if (this->parentDir == NULL) return 0;
+
524 if (this->parentDir == NULL) return 0;
525 if (!getPtr()) return 0;
526 bufsize_t size = static_cast<bufsize_t>(parentDir->firstSubEntrySize(this->parentFieldId));
527 return size;
528}
+
529
-
530void* LdConfigEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
530void* LdConfigEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
531{
532 void* ptr = getPtr();
-
533 if (!ptr) return NULL;
+
533 if (!ptr) return NULL;
534
-
535 if (fieldId == NONE) {
+
535 if (fieldId == NONE) {
536 return ptr;
537 }
-
538 size_t counter = getFieldsCount();
-
539 if (fieldId >= counter) return NULL;
-
540 if (fieldId == HANDLER_ADDR) {
+
538 size_t counter = getFieldsCount();
+
539 if (fieldId >= counter) return NULL;
+
540 if (fieldId == HANDLER_ADDR) {
541 return ptr;
542 }
-
543 return (void*)((ULONGLONG)ptr + sizeof(DWORD));
+
543 return (void*)((ULONGLONG)ptr + sizeof(DWORD));
544}
+
545
-
546bufsize_t LdConfigEntryWrapper::getFieldSize(size_t fieldId, size_t subField)
+
+
546bufsize_t LdConfigEntryWrapper::getFieldSize(size_t fieldId, size_t subField)
547{
548 size_t count = this->getFieldsCount();
549 if (fieldId >= count) {
550 return 0;
551 }
-
552 if (fieldId == HANDLER_ADDR) {
-
553 return sizeof(DWORD);
+
552 if (fieldId == HANDLER_ADDR) {
+
553 return sizeof(DWORD);
554 }
-
555 return sizeof(BYTE);
+
555 return sizeof(BYTE);
556}
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -730,7 +768,7 @@ $(function() { diff --git a/_ld_config_dir_wrapper_8h.html b/_ld_config_dir_wrapper_8h.html index b1999f1a..301af6e3 100644 --- a/_ld_config_dir_wrapper_8h.html +++ b/_ld_config_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/LdConfigDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
2#include "DataDirEntryWrapper.h"
3#include <set>
4
+
5class LdConfigDirWrapper : public DataDirEntryWrapper
6{
7public:
+
18 SIZE = 0,
@@ -137,109 +144,126 @@ $(function() {
67 FIELD_COUNTER //end of LoadConfigDir Win10
68 };
+
69
-
70 static std::set<DWORD> getGuardFlagsSet(DWORD flags);
-
71 static QString translateGuardFlag(DWORD flags);
+
70 static std::set<DWORD> getGuardFlagsSet(DWORD flags);
+
71 static QString translateGuardFlag(DWORD flags);
72
+
-
74 : DataDirEntryWrapper(pe, pe::DIR_LOAD_CONFIG) { wrap(); }
+ +
75
76 bool wrap();
77
78 virtual void* getPtr();
79 virtual bufsize_t getSize();
-
80 virtual QString getName() { return "LdConfig"; }
+
80 virtual QString getName() { return "LdConfig"; }
81
+
82 virtual size_t getFieldsCount()
83 {
-
84 const offset_t realSize = getSize();
-
85 const bool is32b = (m_Exe->getBitMode() == Executable::BITS_32) ? true : false;
-
86 size_t fId = FIELD_COUNTER - 1;
-
87 offset_t fieldDelta = INVALID_ADDR;
-
88 for (; fId != 0; fId--) {
-
89 fieldDelta = _getFieldDelta(is32b, fId);
-
90 if (fieldDelta < realSize) break;
+
84 const offset_t realSize = getSize();
+
85 const bool is32b = (m_Exe->getBitMode() == Executable::BITS_32) ? true : false;
+
86 size_t fId = FIELD_COUNTER - 1;
+ +
88 for (; fId != 0; fId--) {
+
89 fieldDelta = _getFieldDelta(is32b, fId);
+
90 if (fieldDelta < realSize) break;
91 }
-
92 if ((fieldDelta == INVALID_ADDR) || (fieldDelta > realSize)) {
+
93 return 0;
94 }
-
95 return (fId + 1);
+
95 return (fId + 1);
96 }
+
97
98 virtual size_t getSubFieldsCount() { return 1; }
99
-
100 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
101 virtual QString getFieldName(size_t fieldId);
-
102 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
100 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
101 virtual QString getFieldName(size_t fieldId);
+
102 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
103
-
104 virtual ExeNodeWrapper* getSubfieldWrapper(size_t parentType, size_t fieldId)
+
+
105 {
-
106 std::vector<ExeNodeWrapper*> *subList = getSubEntriesList(parentType);
-
107 if (subList == NULL) return 0;
-
108 return this->getEntryAt(*subList, fieldId);
+
106 std::vector<ExeNodeWrapper*> *subList = getSubEntriesList(parentType);
+
107 if (subList == NULL) return 0;
+
108 return this->getEntryAt(*subList, fieldId);
109 }
+
110
-
111 virtual size_t getSubfieldWrapperCount(size_t parentType)
+
+
111 virtual size_t getSubfieldWrapperCount(size_t parentType)
112 {
-
113 std::vector<ExeNodeWrapper*> *subList = getSubEntriesList(parentType);
-
114 if (subList == NULL) return 0;
-
115 return getEntriesCount(*subList);
+
113 std::vector<ExeNodeWrapper*> *subList = getSubEntriesList(parentType);
+
114 if (subList == NULL) return 0;
+
115 return getEntriesCount(*subList);
116 }
+
117
-
118 virtual bool hasSubfieldWrapper(size_t parentType)
+
+
118 virtual bool hasSubfieldWrapper(size_t parentType)
119 {
-
120 std::vector<ExeNodeWrapper*> *subList = getSubEntriesList(parentType);
-
121 if (subList == NULL) return false;
+
120 std::vector<ExeNodeWrapper*> *subList = getSubEntriesList(parentType);
+
121 if (subList == NULL) return false;
122 return true;
123 }
+
124
+
126 {
-
127 bool isOk = false;
-
128 bool isSupressed = false;
-
129 uint64_t GuardFlags = this->getNumValue(GUARD_FLAGS, &isOk);
-
130 if (isOk) {
-
131 isSupressed = (GuardFlags & IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT);
+
127 bool isOk = false;
+
128 bool isSupressed = false;
+ +
130 if (isOk) {
+
132 }
-
133 return isSupressed;
+
133 return isSupressed;
134 }
+
135
+
137 {
-
138 bool isOk = false;
-
139 uint64_t GuardFlags = this->getNumValue(GUARD_FLAGS, &isOk);
-
140 if (!isOk) {
+
138 bool isOk = false;
+ +
140 if (!isOk) {
141 return 0;
142 }
-
143 bool isSupressed = (GuardFlags & IMAGE_GUARD_CF_EXPORT_SUPPRESSION_INFO_PRESENT);
-
144 if (!isSupressed) {
+ +
144 if (!isSupressed) {
145 return 0;
146 }
-
147 const size_t metadata_fields = ((GuardFlags & IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK) >> IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_SHIFT);
-
148 return metadata_fields;
+ +
148 return metadata_fields;
149 }
+
150
-
151 QString translateGuardFlagsContent(const QString &delim);
-
152 virtual QString translateFieldContent(size_t fieldId);
+
151 QString translateGuardFlagsContent(const QString &delim);
+
152 virtual QString translateFieldContent(size_t fieldId);
153
154protected:
155 virtual void clear();
-
156 void* firstSubEntryPtr(size_t parentId);
+
156 void* firstSubEntryPtr(size_t parentId);
157
-
158 size_t firstSubEntrySize(size_t parentId)
+
+
159 {
-
160 if (parentId == LdConfigDirWrapper::SEH_TABLE) {
+
161 // SEH entries have no metadata
-
162 return sizeof(DWORD);
+
162 return sizeof(DWORD);
163 }
-
164 const size_t metadata_fields = metadataSize();
-
165 return sizeof(DWORD) + (metadata_fields * sizeof(BYTE));
+
164 const size_t metadata_fields = metadataSize();
+
165 return sizeof(DWORD) + (metadata_fields * sizeof(BYTE));
166 }
+
167
168private:
-
169 static offset_t _getFieldDelta(bool is32b, size_t fId);
+
169 static offset_t _getFieldDelta(bool is32b, size_t fId);
170
-
171 bool wrapSubentriesTable(size_t parentFieldId, size_t counterFieldId);
+
171 bool wrapSubentriesTable(size_t parentFieldId, size_t counterFieldId);
172
173 // get the size of the structure
174 inline bufsize_t getLdConfigDirSize();
@@ -249,43 +273,50 @@ $(function() {
178
179 inline void* getLdConfigDirPtr();
180
-
181 std::vector<ExeNodeWrapper*>* getSubEntriesList(size_t parentType)
+
181 std::vector<ExeNodeWrapper*>* getSubEntriesList(size_t parentType)
182 {
-
183 std::map<uint32_t, std::vector<ExeNodeWrapper*> >::iterator itr = subEntriesMap.find(parentType);
-
184 if (itr == subEntriesMap.end()){
-
185 return NULL;
+
183 std::map<uint32_t, std::vector<ExeNodeWrapper*> >::iterator itr = subEntriesMap.find(parentType);
+
184 if (itr == subEntriesMap.end()){
+
185 return NULL;
186 }
-
187 return &(itr->second);
+
187 return &(itr->second);
188 }
189
190 std::map<uint32_t, std::vector<ExeNodeWrapper*> > subEntriesMap;
191 friend class LdConfigEntryWrapper;
192};
+
193
+
194class LdConfigEntryWrapper : public ExeNodeWrapper
195{
196public:
197 // fields :
+
198 enum FieldID {
203 };
+
204
-
205 LdConfigEntryWrapper(Executable* pe, LdConfigDirWrapper *_parentDir, size_t entryNumber, size_t _parentFieldId)
-
206 : ExeNodeWrapper(pe, _parentDir, entryNumber),
-
207 parentFieldId(_parentFieldId)
+
+ + +
207 parentFieldId(_parentFieldId)
208 {
-
209 this->parentDir = _parentDir;
+
209 this->parentDir = _parentDir;
210 }
+
211
212 // full structure boundaries
213 virtual void* getPtr();
214 virtual bufsize_t getSize();
215
-
216 virtual QString getName() { return "Address"; }
+
216 virtual QString getName() { return "Address"; }
217
+
218 virtual size_t getFieldsCount()
219 {
220 if (!this->parentDir) return 1;
@@ -294,32 +325,39 @@ $(function() {
223 }
224 return 1 + this->parentDir->metadataSize();
225 }
+
226
227 // specific field boundaries
-
228 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
228 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
229
-
230 bufsize_t getFieldSize(size_t fieldId, size_t subField);
+
230 bufsize_t getFieldSize(size_t fieldId, size_t subField);
231
-
232 virtual QString getFieldName(size_t fieldId)
+
+
233 {
-
234 if (fieldId == HANDLER_ADDR) {
+
234 if (fieldId == HANDLER_ADDR) {
235 return "Address";
236 }
237 return "Metadata";
238 }
+
239
-
240 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField)
+
+
241 {
-
242 if (fieldId == HANDLER_ADDR) {
+
242 if (fieldId == HANDLER_ADDR) {
243 return Executable::RVA;
244 }
246 }
+
247
248private:
249 LdConfigDirWrapper* parentDir;
250 size_t parentFieldId;
251};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -431,7 +469,7 @@ $(function() { diff --git a/_mapped_exe_8cpp.html b/_mapped_exe_8cpp.html index e77ee83b..e17a0918 100644 --- a/_mapped_exe_8cpp.html +++ b/_mapped_exe_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/MappedExe.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "MappedExe.h"
2
+
4{
-
5 std::map<size_t, ExeElementWrapper*>::iterator itr;
-
6 for (itr = this->wrappers.begin(); itr != this->wrappers.end(); ++itr){
-
7 ExeElementWrapper* wrapper = itr->second;
-
8 delete wrapper;
+
5 std::map<size_t, ExeElementWrapper*>::iterator itr;
+
6 for (itr = this->wrappers.begin(); itr != this->wrappers.end(); ++itr){
+ +
8 delete wrapper;
9 }
10 wrappers.clear();
11}
+
12
- +
+
14{
-
15 if (wrappers.find(wrapperId) == wrappers.end()) return NULL;
-
16 return wrappers[wrapperId];
+
15 if (wrappers.find(wrapperId) == wrappers.end()) return NULL;
+
16 return wrappers[wrapperId];
17}
+
18
- +
+
20{
21 if (wrappers.find(id) == wrappers.end()) return "";
-
22 return wrappers[id]->getName();
+
22 return wrappers[id]->getName();
23}
+
+
INT_TYPE _getNumValue(void *ptr)
+
virtual QString getName()=0
std::map< size_t, ExeElementWrapper * > wrappers
Definition MappedExe.h:27
QString getWrapperName(size_t id)
Definition MappedExe.cpp:19
@@ -109,7 +122,7 @@ $(function() {
diff --git a/_mapped_exe_8h.html b/_mapped_exe_8h.html index 06a121a9..e654ff04 100644 --- a/_mapped_exe_8h.html +++ b/_mapped_exe_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/MappedExe.h File Reference @@ -30,7 +30,7 @@ - + +
4#include "Executable.h"
5#include "ExeElementWrapper.h"
6
+
7class ExeWrappersContainer
8{
9public:
+
10 enum WRAPPERS {
-
11 WR_NONE = size_t(-1),
+
13 };
+
14
15 ExeWrappersContainer() { }
16 virtual ~ExeWrappersContainer(void) { clearWrappers(); }
17
-
18 virtual ExeElementWrapper* getWrapper(size_t wrapperId);
+
18 virtual ExeElementWrapper* getWrapper(size_t wrapperId);
19
20 size_t wrappersCount() { return wrappers.size(); }
-
21 QString getWrapperName(size_t id);
+
21 QString getWrapperName(size_t id);
22
23protected:
-
24 virtual void wrap(AbstractByteBuffer *v_buf) = 0;
+
24 virtual void wrap(AbstractByteBuffer *v_buf) = 0;
25 void clearWrappers();
26
27 std::map<size_t, ExeElementWrapper*> wrappers;
28};
+
29
+
30class MappedExe : public Executable, public ExeWrappersContainer {
31public:
32 virtual void wrap() { return wrap(this->buf); }
33
-
34 virtual bool canResize(bufsize_t newSize)
+
+
35 {
36 // disabled by default
37 return false;
38 }
+
39
-
40 virtual bool resize(bufsize_t newSize)
+
+
40 virtual bool resize(bufsize_t newSize)
41 {
-
42 if (!canResize(newSize)) return false;
+
42 if (!canResize(newSize)) return false;
43
-
44 if (Executable::resize(newSize)) {
+
45 wrap();
46 return true;
47 }
48 return false;
49 }
+
50
51protected:
-
52 MappedExe(AbstractByteBuffer *v_buf, exe_bits v_bitMode)
-
53 : Executable(v_buf, v_bitMode), ExeWrappersContainer() { }
+
+ + +
54
55 virtual ~MappedExe(void) { }
56
-
57 virtual void wrap(AbstractByteBuffer *v_buf) = 0;
+
57 virtual void wrap(AbstractByteBuffer *v_buf) = 0;
58};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
ExeElementWrapper.h
Executable.h
@@ -166,7 +184,7 @@ $(function() { diff --git a/_opt_hdr_wrapper_8cpp.html b/_opt_hdr_wrapper_8cpp.html index bc48c7ab..e3663cad 100644 --- a/_opt_hdr_wrapper_8cpp.html +++ b/_opt_hdr_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/OptHdrWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
4using namespace std;
5
6std::map<DWORD, QString> OptHdrWrapper::s_optMagic;
-
7std::map<std::pair<WORD,WORD>, QString> OptHdrWrapper::s_osVersion;
+
7std::map<std::pair<WORD,WORD>, QString> OptHdrWrapper::s_osVersion;
8std::map<DWORD, QString> OptHdrWrapper::s_dllCharact;
9std::map<DWORD, QString> OptHdrWrapper::s_subsystem;
10
+
11void OptHdrWrapper::initDllCharact()
12{
13 if (s_dllCharact.size() == 0) {
@@ -103,64 +109,74 @@ $(function() {
24 s_dllCharact[pe::DLL_TERMINAL_SERVER_AWARE] = "TerminalServer aware";
25 }
26}
+
27
-
28QString OptHdrWrapper::translateDllCharacteristics(DWORD charact)
+
+
28QString OptHdrWrapper::translateDllCharacteristics(DWORD charact)
29{
30 if (s_dllCharact.size() == 0) initDllCharact();
31
-
32 if (s_dllCharact.find(charact) == s_dllCharact.end()) return "";
-
33 return s_dllCharact[charact];
+
32 if (s_dllCharact.find(charact) == s_dllCharact.end()) return "";
+
33 return s_dllCharact[charact];
34}
+
35
-
36std::vector<DWORD> OptHdrWrapper::splitDllCharact(DWORD characteristics)
+
+
36std::vector<DWORD> OptHdrWrapper::splitDllCharact(DWORD characteristics)
37{
38 if (s_dllCharact.size() == 0) initDllCharact();
39
-
40 std::vector<DWORD> chSet;
-
41 map<DWORD, QString>::iterator iter;
-
42 for (iter = s_dllCharact.begin(); iter != s_dllCharact.end(); ++iter) {
-
43 if (characteristics & iter->first) {
-
44 chSet.push_back(iter->first);
+
40 std::vector<DWORD> chSet;
+
41 map<DWORD, QString>::iterator iter;
+
42 for (iter = s_dllCharact.begin(); iter != s_dllCharact.end(); ++iter) {
+
43 if (characteristics & iter->first) {
+
44 chSet.push_back(iter->first);
45 }
46 }
-
47 return chSet;
+
47 return chSet;
48}
+
49
-
50QString OptHdrWrapper::translateOptMagic(DWORD p)
+
+
50QString OptHdrWrapper::translateOptMagic(DWORD p)
51{
52 if (s_optMagic.size() == 0) {
53 s_optMagic[pe::OH_NT32] = "NT32";
54 s_optMagic[pe::OH_NT64] = "NT64";
55 s_optMagic[pe::OH_ROM] = "ROM";
56 }
-
57 if (s_optMagic.find(p) == s_optMagic.end()) return "";
-
58 return s_optMagic[p];
+
57 if (s_optMagic.find(p) == s_optMagic.end()) return "";
+
58 return s_optMagic[p];
59}
+
60
-
61QString OptHdrWrapper::translateOSVersion(WORD major, WORD minor)
+
+
61QString OptHdrWrapper::translateOSVersion(WORD major, WORD minor)
62{
63 if (s_osVersion.size() == 0) {
-
64 s_osVersion[pair<WORD,WORD>(8, 0)] = "Windows 8";
-
65 s_osVersion[pair<WORD,WORD>(7, 0)] = "Windows 7";
-
66 s_osVersion[pair<WORD,WORD>(6, 0)] = "Windows Vista / Server 2008";
+
64 s_osVersion[pair<WORD,WORD>(8, 0)] = "Windows 8";
+
65 s_osVersion[pair<WORD,WORD>(7, 0)] = "Windows 7";
+
66 s_osVersion[pair<WORD,WORD>(6, 0)] = "Windows Vista / Server 2008";
67
-
68 s_osVersion[pair<WORD,WORD>(5, 2)] = "Windows Server 2003";
-
69 s_osVersion[pair<WORD,WORD>(5, 1)] = "Windows XP";
-
70 s_osVersion[pair<WORD,WORD>(5, 0)] = "Windows 2000 / XP";
+
68 s_osVersion[pair<WORD,WORD>(5, 2)] = "Windows Server 2003";
+
69 s_osVersion[pair<WORD,WORD>(5, 1)] = "Windows XP";
+
70 s_osVersion[pair<WORD,WORD>(5, 0)] = "Windows 2000 / XP";
71
-
72 s_osVersion[pair<WORD,WORD>(4, 90)] = "Windows ME";
-
73 s_osVersion[pair<WORD,WORD>(4, 10)] = "Windows 98";
-
74 s_osVersion[pair<WORD,WORD>(4, 0)] = "Windows 95 / NT 4.0";
+
72 s_osVersion[pair<WORD,WORD>(4, 90)] = "Windows ME";
+
73 s_osVersion[pair<WORD,WORD>(4, 10)] = "Windows 98";
+
74 s_osVersion[pair<WORD,WORD>(4, 0)] = "Windows 95 / NT 4.0";
75
-
76 s_osVersion[pair<WORD,WORD>(3, 51)] = "Windows NT 4.51";
-
77 s_osVersion[pair<WORD,WORD>(3, 10)] = "Windows NT 3.1";
+
76 s_osVersion[pair<WORD,WORD>(3, 51)] = "Windows NT 4.51";
+
77 s_osVersion[pair<WORD,WORD>(3, 10)] = "Windows NT 3.1";
78 }
-
79 pair<WORD,WORD> p(major, minor);
-
80 if (s_osVersion.find(p) == s_osVersion.end()) return "";
-
81 return s_osVersion[p];
+
79 pair<WORD,WORD> p(major, minor);
+
80 if (s_osVersion.find(p) == s_osVersion.end()) return "";
+
81 return s_osVersion[p];
82}
+
83
-
84QString OptHdrWrapper::translateSubsystem(DWORD subsystem)
+
+
84QString OptHdrWrapper::translateSubsystem(DWORD subsystem)
85{
86 if (s_subsystem.size() == 0) {
87 s_subsystem[pe::SUB_UNKNOWN] = "Unknown subsystem";
@@ -178,94 +194,110 @@ $(function() {
99 s_subsystem[pe::SUB_XBOX] = "XBOX";
100 s_subsystem[pe::SUB_WINDOWS_BOOT_APP] = "WINDOWS_BOOT_APPLICATION";
101 }
-
102 if (s_subsystem.find(subsystem) == s_subsystem.end()) return "";
-
103 return s_subsystem[subsystem];
+
102 if (s_subsystem.find(subsystem) == s_subsystem.end()) return "";
+
103 return s_subsystem[subsystem];
104}
+
105//-------------------------------------------
+
106bool OptHdrWrapper::wrap()
107{
-
108 opt32 = NULL;
-
109 opt64 = NULL;
+
108 opt32 = NULL;
+
109 opt64 = NULL;
110 getPtr();
-
111 bool isOk = false;
-
112 DWORD charact = static_cast<DWORD>(this->getNumValue(DLL_CHARACT, &isOk));
+
111 bool isOk = false;
+
112 DWORD charact = static_cast<DWORD>(this->getNumValue(DLL_CHARACT, &isOk));
113 this->dllCharact.clear();
114 if (isOk) {
115 this->dllCharact = this->splitDllCharact(charact);
116 }
117 return true;
118}
+
119
+
120Executable::exe_bits OptHdrWrapper::getHdrBitMode()
121{
-
122 if (m_PE == NULL) {
+
122 if (m_PE == NULL) {
123 return Executable::BITS_32; // default
124 }
125 return m_PE->getHdrBitMode();
126}
+
127
-
128IMAGE_NT_HEADERS32* OptHdrWrapper::nt32()
+
+
128IMAGE_NT_HEADERS32* OptHdrWrapper::nt32()
129{
-
130 if (m_PE == NULL) return NULL;
-
131 if (getHdrBitMode() != Executable::BITS_32) return NULL;
+
130 if (m_PE == NULL) return NULL;
+
131 if (getHdrBitMode() != Executable::BITS_32) return NULL;
132
-
133 offset_t myOff = m_PE->peNtHdrOffset();
-
134 IMAGE_NT_HEADERS32* hdr = (IMAGE_NT_HEADERS32*) m_Exe->getContentAt(myOff, sizeof(IMAGE_NT_HEADERS32));
+
133 offset_t myOff = m_PE->peNtHdrOffset();
+
134 IMAGE_NT_HEADERS32* hdr = (IMAGE_NT_HEADERS32*) m_Exe->getContentAt(myOff, sizeof(IMAGE_NT_HEADERS32));
135 return hdr;
136}
+
137
-
138IMAGE_NT_HEADERS64* OptHdrWrapper::nt64()
+
+
138IMAGE_NT_HEADERS64* OptHdrWrapper::nt64()
139{
-
140 if (m_PE == NULL) return NULL;
-
141 if (getHdrBitMode() != Executable::BITS_64) return NULL;
+
140 if (m_PE == NULL) return NULL;
+
141 if (getHdrBitMode() != Executable::BITS_64) return NULL;
142
-
143 offset_t myOff = m_PE->peNtHdrOffset();
-
144 IMAGE_NT_HEADERS64* hdr = (IMAGE_NT_HEADERS64*) m_Exe->getContentAt(myOff, sizeof(IMAGE_NT_HEADERS64));
+
143 offset_t myOff = m_PE->peNtHdrOffset();
+
144 IMAGE_NT_HEADERS64* hdr = (IMAGE_NT_HEADERS64*) m_Exe->getContentAt(myOff, sizeof(IMAGE_NT_HEADERS64));
145 return hdr;
146}
+
147
148
+
149void* OptHdrWrapper::getPtr()
150{
-
151 if (opt32 == NULL && opt64 == NULL) {
-
152 IMAGE_NT_HEADERS32* ntHdr32 = nt32();
-
153 if (ntHdr32) {
+
151 if (opt32 == NULL && opt64 == NULL) {
+
152 IMAGE_NT_HEADERS32* ntHdr32 = nt32();
+
153 if (ntHdr32) {
154 this->opt32 = &(ntHdr32->OptionalHeader);
155 } else {
-
156 IMAGE_NT_HEADERS64* ntHdr64 = nt64();
-
157 this->opt64 = (ntHdr64) ? &(ntHdr64->OptionalHeader) : NULL;
+
156 IMAGE_NT_HEADERS64* ntHdr64 = nt64();
+
157 this->opt64 = (ntHdr64) ? &(ntHdr64->OptionalHeader) : NULL;
158 }
159 }
160 void *ptr = (opt32) ? (void*) opt32 : (void*) opt64;
161 return ptr;
162}
+
163
+
164bufsize_t OptHdrWrapper::getSize()
165{
-
166 IMAGE_OPTIONAL_HEADER32* opt32 = (nt32()) ? &(nt32()->OptionalHeader) : NULL;
-
167 IMAGE_OPTIONAL_HEADER64* opt64 = (nt64()) ? &(nt64()->OptionalHeader) : NULL;
-
168 if (opt32 == NULL && opt64 == NULL) return 0;
+
166 IMAGE_OPTIONAL_HEADER32* opt32 = (nt32()) ? &(nt32()->OptionalHeader) : NULL;
+
167 IMAGE_OPTIONAL_HEADER64* opt64 = (nt64()) ? &(nt64()->OptionalHeader) : NULL;
+
168 if (opt32 == NULL && opt64 == NULL) return 0;
169
-
170 bufsize_t size = opt32 ? sizeof(IMAGE_OPTIONAL_HEADER32) : sizeof(IMAGE_OPTIONAL_HEADER64);
+
170 bufsize_t size = opt32 ? sizeof(IMAGE_OPTIONAL_HEADER32) : sizeof(IMAGE_OPTIONAL_HEADER64);
171 return size;
172}
+
173
-
174bufsize_t OptHdrWrapper::getFieldSize(size_t fId, size_t subField)
+
+
174bufsize_t OptHdrWrapper::getFieldSize(size_t fId, size_t subField)
175{
-
176 IMAGE_OPTIONAL_HEADER64* opt64 = (nt64()) ? &(nt64()->OptionalHeader) : NULL;
-
177 if (opt64 != NULL) {
-
178 if (fId == CODE_BASE) return sizeof (opt64->BaseOfCode);
-
179 if (fId == DATA_BASE) return 0;
+
176 IMAGE_OPTIONAL_HEADER64* opt64 = (nt64()) ? &(nt64()->OptionalHeader) : NULL;
+
177 if (opt64 != NULL) {
+
178 if (fId == CODE_BASE) return sizeof (opt64->BaseOfCode);
+
179 if (fId == DATA_BASE) return 0;
180 }
-
181 return ExeElementWrapper::getFieldSize(fId, subField);
+
181 return ExeElementWrapper::getFieldSize(fId, subField);
182}
+
183
-
184void* OptHdrWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
184void* OptHdrWrapper::getFieldPtr(size_t fId, size_t subField)
185{
-
186 IMAGE_OPTIONAL_HEADER32* opt32 = (nt32()) ? &(nt32()->OptionalHeader) : NULL;
-
187 IMAGE_OPTIONAL_HEADER64* opt64 = (nt64()) ? &(nt64()->OptionalHeader) : NULL;
+
186 IMAGE_OPTIONAL_HEADER32* opt32 = (nt32()) ? &(nt32()->OptionalHeader) : NULL;
+
187 IMAGE_OPTIONAL_HEADER64* opt64 = (nt64()) ? &(nt64()->OptionalHeader) : NULL;
188
-
189 switch (fId) {
+
189 switch (fId) {
190 case MAGIC :
191 return opt32 ? (void*)&opt32->Magic : (void*)&opt64->Magic;
192
@@ -286,7 +318,7 @@ $(function() {
207 return opt32 ? (void*)&opt32->BaseOfCode : (void*)&opt64->BaseOfCode;
208
209 case DATA_BASE :
-
210 return opt32 ? (void*)&opt32->BaseOfData : NULL;
+
210 return opt32 ? (void*)&opt32->BaseOfData : NULL;
211
212 case IMAGE_BASE :
213 return opt32 ? (void*)&opt32->ImageBase : (void*)&opt64->ImageBase;
@@ -339,28 +371,32 @@ $(function() {
260 }
261 return this->getPtr();
262}
+
263
-
264QString OptHdrWrapper::translateFieldContent(size_t fieldId)
+
+
264QString OptHdrWrapper::translateFieldContent(size_t fieldId)
265{
-
266 bool isOk = false;
-
267 uint32_t num = -1;
+
266 bool isOk = false;
+
267 uint32_t num = -1;
268
269 switch (fieldId) {
270 case MAGIC :
-
271 num = static_cast<uint32_t>(this->getNumValue(fieldId, &isOk));
-
272 if (!isOk) return "";
+
271 num = static_cast<uint32_t>(this->getNumValue(fieldId, &isOk));
+
272 if (!isOk) return "";
273 return this->translateOptMagic(num);
274 case SUBSYS :
-
275 num = static_cast<uint32_t>(this->getNumValue(fieldId, &isOk));
-
276 if (!isOk) return "";
+
275 num = static_cast<uint32_t>(this->getNumValue(fieldId, &isOk));
+
276 if (!isOk) return "";
277 return this->translateSubsystem(num);
278 }
279 return "";
280}
+
281
-
282QString OptHdrWrapper::getFieldName(size_t fieldId)
+
+
282QString OptHdrWrapper::getFieldName(size_t fieldId)
283{
-
284 switch (fieldId) {
+
284 switch (fieldId) {
285 case MAGIC: return ("Magic");
286 case LINKER_MAJOR: return ("Linker Ver. (Major)");
287 case LINKER_MINOR: return ("Linker Ver. (Minor)");
@@ -406,22 +442,26 @@ $(function() {
327 }
328 return "";
329}
+
330
-
331Executable::addr_type OptHdrWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
331Executable::addr_type OptHdrWrapper::containsAddrType(size_t fieldId, size_t subField)
332{
-
333 switch (fieldId) {
+
333 switch (fieldId) {
334 case EP:
335 case CODE_BASE:
336 case DATA_BASE:
337 return Executable::RVA;
338 }
-
339 if (fieldId == IMAGE_BASE) {
+
339 if (fieldId == IMAGE_BASE) {
340 return Executable::VA;
341 }
342 return Executable::NOT_ADDR;
343}
+
344
345//-----------------------
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
OptHdrWrapper.h
@@ -498,7 +538,7 @@ $(function() { diff --git a/_opt_hdr_wrapper_8h.html b/_opt_hdr_wrapper_8h.html index 964fea03..b3f569dc 100644 --- a/_opt_hdr_wrapper_8h.html +++ b/_opt_hdr_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/OptHdrWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include "PENodeWrapper.h"
4
+
5class OptHdrWrapper : public PEElementWrapper
6{
7public:
8 /* fields :*/
+
9 enum OptHdrFID {
11 MAGIC = 0,
@@ -121,49 +128,52 @@ $(function() {
44 };
+
45 static std::map<DWORD, QString> s_optMagic;
-
46 static std::map<std::pair<WORD,WORD>, QString> s_osVersion;
+
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);
+
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);
+
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(); }
+
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"; }
+
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);
+
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);
+
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);
+
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();
+
78 IMAGE_NT_HEADERS32* nt32();
+
79 IMAGE_NT_HEADERS64* nt64();
80
81 //DataDirWrapper dataDir;
82protected:
-
83 IMAGE_OPTIONAL_HEADER32* opt32;
-
84 IMAGE_OPTIONAL_HEADER64* opt64;
+
83 IMAGE_OPTIONAL_HEADER32* opt32;
+
84 IMAGE_OPTIONAL_HEADER64* opt64;
85 std::vector<DWORD> dllCharact;
86};
+
87
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
PENodeWrapper.h
@@ -236,7 +246,7 @@ $(function() { diff --git a/_p_e_core_8cpp.html b/_p_e_core_8cpp.html index 4cbeeb88..63667db0 100644 --- a/_p_e_core_8cpp.html +++ b/_p_e_core_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/PECore.cpp File Reference @@ -30,7 +30,7 @@ - + +
2
3#define DEFAULT_IMGBASE 0x10000
4
+
5void PECore::reset()
6{
-
7 dos = NULL;
-
8 fHdr = NULL;
-
9 opt32 = NULL;
-
10 opt64 = NULL;
+
7 dos = NULL;
+
8 fHdr = NULL;
+
9 opt32 = NULL;
+
10 opt64 = NULL;
11}
+
12
-
13bool PECore::wrap(AbstractByteBuffer *v_buf)
+
+
13bool PECore::wrap(AbstractByteBuffer *v_buf)
14{
-
15 buf = v_buf;
-
16 const bool allowExceptionsFromBuffer = false;
+
15 buf = v_buf;
+
16 const bool allowExceptionsFromBuffer = false;
17
18 // reset all:
19 reset();
20
21 offset_t offset = 0;
-
22 this->dos = (IMAGE_DOS_HEADER*) buf->getContentAt(offset, sizeof(IMAGE_DOS_HEADER), allowExceptionsFromBuffer);
+
22 this->dos = (IMAGE_DOS_HEADER*) buf->getContentAt(offset, sizeof(IMAGE_DOS_HEADER), allowExceptionsFromBuffer);
23 if (!dos) throw ExeException("Could not wrap PECore: invalid DOS Header!");
24
-
25 offset = dos->e_lfanew + sizeof(DWORD); //skip 'PE' signature
-
26 this->fHdr = (IMAGE_FILE_HEADER*) buf->getContentAt(offset, sizeof(IMAGE_FILE_HEADER), allowExceptionsFromBuffer);
+
25 offset = dos->e_lfanew + sizeof(DWORD); //skip 'PE' signature
+
26 this->fHdr = (IMAGE_FILE_HEADER*) buf->getContentAt(offset, sizeof(IMAGE_FILE_HEADER), allowExceptionsFromBuffer);
27 if (!fHdr) throw ExeException("Could not wrap PECore!");
28
-
29 offset = offset + sizeof(IMAGE_FILE_HEADER);
-
30 WORD *magic = (WORD*) buf->getContentAt(offset, sizeof(WORD), allowExceptionsFromBuffer);
-
31 if (!magic) throw ExeException("Could not wrap PECore: invalid FileHeader");
+
29 offset = offset + sizeof(IMAGE_FILE_HEADER);
+
30 WORD *magic = (WORD*) buf->getContentAt(offset, sizeof(WORD), allowExceptionsFromBuffer);
+
31 if (!magic) throw ExeException("Could not wrap PECore: invalid FileHeader");
32
-
33 const Executable::exe_bits mode = ((*magic) == pe::OH_NT64) ? Executable::BITS_64 : Executable::BITS_32;
-
34 const size_t ntHdrSize = (mode == Executable::BITS_32) ? sizeof(IMAGE_OPTIONAL_HEADER32) : sizeof(IMAGE_OPTIONAL_HEADER64);
-
35 BYTE *ntHdrPtr = buf->getContentAt(offset, ntHdrSize, allowExceptionsFromBuffer);
+
33 const Executable::exe_bits mode = ((*magic) == pe::OH_NT64) ? Executable::BITS_64 : Executable::BITS_32;
+
34 const size_t ntHdrSize = (mode == Executable::BITS_32) ? sizeof(IMAGE_OPTIONAL_HEADER32) : sizeof(IMAGE_OPTIONAL_HEADER64);
+
35 BYTE *ntHdrPtr = buf->getContentAt(offset, ntHdrSize, allowExceptionsFromBuffer);
36
-
37 if (ntHdrPtr) {
-
38 if (mode == Executable::BITS_32) {
-
39 this->opt32 = (IMAGE_OPTIONAL_HEADER32*)ntHdrPtr;
+
37 if (ntHdrPtr) {
+
38 if (mode == Executable::BITS_32) {
+
39 this->opt32 = (IMAGE_OPTIONAL_HEADER32*)ntHdrPtr;
40 }
-
41 else if (mode == Executable::BITS_64) {
-
42 this->opt64 = (IMAGE_OPTIONAL_HEADER64*)ntHdrPtr;
+
41 else if (mode == Executable::BITS_64) {
+
42 this->opt64 = (IMAGE_OPTIONAL_HEADER64*)ntHdrPtr;
43 }
44 }
45 if (!this->opt32 && !this->opt64) {
@@ -126,7 +134,9 @@ $(function() {
47 }
48 return true;
49}
+
50
+
51Executable::exe_bits PECore::getHdrBitMode() const
52{
53 if (opt32) return Executable::BITS_32;
@@ -134,39 +144,49 @@ $(function() {
55
56 return Executable::BITS_32; // DEFAULT
57}
+
58
+
59offset_t PECore::peSignatureOffset() const
60{
61 return static_cast<offset_t> (dos->e_lfanew);
62}
+
63
+
64offset_t PECore::peFileHdrOffset() const
65{
66 const offset_t offset = peSignatureOffset();
67 if (offset == INVALID_ADDR) {
68 return INVALID_ADDR;
69 }
-
70 const offset_t signSize = sizeof(DWORD);
-
71 return offset + signSize;
+
70 const offset_t signSize = sizeof(DWORD);
+
71 return offset + signSize;
72}
+
73
+
74offset_t PECore::peOptHdrOffset() const
75{
76 const offset_t offset = peFileHdrOffset();
77 if (offset == INVALID_ADDR) {
78 return INVALID_ADDR;
79 }
-
80 return offset + sizeof(IMAGE_FILE_HEADER);
+
80 return offset + sizeof(IMAGE_FILE_HEADER);
81}
+
82
+
83bufsize_t PECore::peNtHeadersSize() const
84{
85 if (this->getHdrBitMode() == Executable::BITS_64)
-
86 return sizeof(IMAGE_NT_HEADERS64);
+
86 return sizeof(IMAGE_NT_HEADERS64);
87
-
88 return sizeof(IMAGE_NT_HEADERS32);
+
88 return sizeof(IMAGE_NT_HEADERS32);
89}
+
90
+
91offset_t PECore::secHdrsOffset() const
92{
93 const offset_t offset = peOptHdrOffset();
@@ -179,8 +199,10 @@ $(function() {
100 const offset_t size = static_cast<offset_t>(this->fHdr->SizeOfOptionalHeader);
101 return offset + size;
102}
+
103
-
104bufsize_t PECore::getAlignment(Executable::addr_type aType) const
+
+
104bufsize_t PECore::getAlignment(Executable::addr_type aType) const
105{
106 if (this->opt32) {
107 if (aType == Executable::RAW) return opt32->FileAlignment;
@@ -192,19 +214,23 @@ $(function() {
113 }
114 return 0;
115}
+
116
+
117bufsize_t PECore::getImageSize()
118{
-
119 bufsize_t imgSize = 0;
+
119 bufsize_t imgSize = 0;
120 if (this->opt32) {
121 imgSize = opt32->SizeOfImage;
122 }
123 if (this->opt64) {
124 imgSize = opt64->SizeOfImage;
125 }
-
126 return imgSize;
+
126 return imgSize;
127}
+
128
+
129bufsize_t PECore::hdrsSize() const
130{
131 bufsize_t hdrsSize = 0;
@@ -216,10 +242,12 @@ $(function() {
137 }
138 return hdrsSize;
139}
+
140
-
141offset_t PECore::getImageBase(bool recalculate)
+
+
141offset_t PECore::getImageBase(bool recalculate)
142{
-
143 offset_t imgBase = 0;
+
143 offset_t imgBase = 0;
144 if (this->opt32) {
145 imgBase = opt32->ImageBase;
146 }
@@ -228,20 +256,22 @@ $(function() {
149 }
150 //can be null, under XP. In this case, the binary will be relocated to 10000h
151 //(quote: http://code.google.com/p/corkami/wiki/PE)
-
152 if (imgBase == 0 && recalculate) {
-
153 imgBase = DEFAULT_IMGBASE;
+
152 if (imgBase == 0 && recalculate) {
+
153 imgBase = DEFAULT_IMGBASE;
154 }
155 //in 32 bit PEs: it can be any value as long as ImageBase + 'SizeOfImage' < 80000000h
156 //if the ImageBase is bigger than that, the binary will be relocated to 10000h
157 if (this->opt32) {
-
158 offset_t maxOffset = this->getImageSize() + imgBase;
-
159 if (maxOffset >= 0x80000000 && recalculate) {
-
160 imgBase = DEFAULT_IMGBASE;
+
158 offset_t maxOffset = this->getImageSize() + imgBase;
+
159 if (maxOffset >= 0x80000000 && recalculate) {
+
160 imgBase = DEFAULT_IMGBASE;
161 }
162 }
-
163 return imgBase;
+
163 return imgBase;
164}
+
165
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -275,7 +305,7 @@ $(function() { diff --git a/_p_e_core_8h.html b/_p_e_core_8h.html index c5d510f5..e06e8fe4 100644 --- a/_p_e_core_8h.html +++ b/_p_e_core_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/PECore.h File Reference @@ -30,7 +30,7 @@ - + +
4#include "pe_formats.h"
5
6//class for internal use of PEFile
+
7class PECore
8{
9public:
10
+
-
12 : buf(NULL), dos(NULL), fHdr(NULL), opt32(NULL), opt64(NULL) {}
+
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);
+
19 bool wrap(AbstractByteBuffer *v_buf);
20
21 virtual offset_t getRawSize() const { return static_cast<offset_t>(buf->getContentSize()); }
22
-
23 virtual bufsize_t getAlignment(Executable::addr_type aType) const;
-
24 virtual offset_t getImageBase(bool recalculate = false);
+
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;
@@ -111,33 +121,39 @@ $(function() {
32 bufsize_t peNtHeadersSize() const;
33 bufsize_t hdrsSize() const;
34
-
35 void setImageSize(bufsize_t newSize)
+
+
36 {
37 if (opt32) {
-
38 this->opt32->SizeOfImage = newSize;
+
38 this->opt32->SizeOfImage = newSize;
39 }
40 else if (opt64) {
-
41 this->opt64->SizeOfImage = newSize;
+
41 this->opt64->SizeOfImage = newSize;
42 }
43 }
+
44
-
45 IMAGE_FILE_HEADER *getFileHeader() const
+
+
46 {
47 return fHdr;
48 }
+
49
50protected:
51 void reset();
52 AbstractByteBuffer *buf;
53
-
54 IMAGE_DOS_HEADER *dos;
-
55 IMAGE_FILE_HEADER* fHdr;
-
56 IMAGE_OPTIONAL_HEADER32* opt32;
-
57 IMAGE_OPTIONAL_HEADER64* opt64;
+
54 IMAGE_DOS_HEADER *dos;
+
55 IMAGE_FILE_HEADER* fHdr;
+
56 IMAGE_OPTIONAL_HEADER32* opt32;
+
57 IMAGE_OPTIONAL_HEADER64* opt64;
58
59friend class PEFile;
60};
+
61
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
AbstractByteBuffer
Definition AbstractByteBuffer.h:32
@@ -171,7 +187,7 @@ $(function() { diff --git a/_p_e_file_8cpp.html b/_p_e_file_8cpp.html index 3f8c6f5d..4ae9ff1c 100644 --- a/_p_e_file_8cpp.html +++ b/_p_e_file_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/PEFile.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "pe/PEFile.h"
2#include "FileBuffer.h"
3
+
5{
-
6 if (buf == NULL) return false;
+
6 if (buf == NULL) return false;
7
-
8 offset_t dosOffset = 0;
-
9 WORD *magic = (WORD*) buf->getContentAt(dosOffset, sizeof(WORD));
-
10 if (magic == NULL) return false;
+ +
9 WORD *magic = (WORD*) buf->getContentAt(dosOffset, sizeof(WORD));
+
10 if (magic == NULL) return false;
11
-
12 if ((*magic) != pe::S_DOS) {
+
12 if ((*magic) != pe::S_DOS) {
13 return false;
14 }
-
15 offset_t newOffset = dosOffset + (sizeof(IMAGE_DOS_HEADER) - sizeof(LONG));
-
16 LONG* lfnew = (LONG*) buf->getContentAt(newOffset, sizeof(LONG));
-
17 if (lfnew == NULL) {
+
15 offset_t newOffset = dosOffset + (sizeof(IMAGE_DOS_HEADER) - sizeof(LONG));
+
16 LONG* lfnew = (LONG*) buf->getContentAt(newOffset, sizeof(LONG));
+
17 if (lfnew == NULL) {
18 return false;
19 }
-
20 offset_t peOffset = static_cast<offset_t>(*lfnew);
-
21 DWORD *peMagic = (DWORD*) buf->getContentAt(peOffset, sizeof(DWORD));
-
22 if (peMagic == NULL) {
+
20 offset_t peOffset = static_cast<offset_t>(*lfnew);
+
21 DWORD *peMagic = (DWORD*) buf->getContentAt(peOffset, sizeof(DWORD));
+
22 if (peMagic == NULL) {
23 return false;
24 }
-
25 if (*peMagic == pe::S_NT) {
+
25 if (*peMagic == pe::S_NT) {
26 return true;
27 }
28 return false;
29}
+
30
+
32{
-
33 Executable *exe = NULL;
-
34 if (signatureMatches(buf) == false) return NULL;
+ +
34 if (signatureMatches(buf) == false) return NULL;
35
36 try {
-
37 exe = new PEFile(buf);
-
38 } catch (ExeException &e) {
-
39 exe = NULL;
+
37 exe = new PEFile(buf);
+
38 } catch (ExeException &e) {
+
39 exe = NULL;
40 }
-
41 return exe;
+
41 return exe;
42}
+
43
44//-------------------------------------------------------------
-
45long PEFile::computeChecksum(BYTE* buffer, size_t bufferSize, offset_t checksumOffset)
+
+
46{
-
47 if (!buffer || !bufferSize) return 0;
+
47 if (!buffer || !bufferSize) return 0;
48
-
49 WORD* wordsBuff = reinterpret_cast<WORD*>(buffer);
-
50 const size_t wordsCount = bufferSize / sizeof(WORD);
-
51 const size_t remainingBytes = bufferSize % sizeof(WORD);
+
49 WORD* wordsBuff = reinterpret_cast<WORD*>(buffer);
+
50 const size_t wordsCount = bufferSize / sizeof(WORD);
+
51 const size_t remainingBytes = bufferSize % sizeof(WORD);
52
-
53 size_t checksumBgn = 0;
-
54 size_t checksumEnd = 0;
-
55 if (checksumOffset != INVALID_ADDR) {
-
56 checksumBgn = size_t(checksumOffset);
-
57 checksumEnd = checksumBgn + sizeof(DWORD);
+
53 size_t checksumBgn = 0;
+
54 size_t checksumEnd = 0;
+ + +
57 checksumEnd = checksumBgn + sizeof(DWORD);
58 }
59
-
60 const long long maxVal = ((long long)1) << 32;
-
61 long long checksum = 0;
+
60 const long long maxVal = ((long long)1) << 32;
+
61 long long checksum = 0;
62
-
63 for (int i = 0; i < wordsCount; i++) {
-
64 WORD chunk = wordsBuff[i];
+
63 for (int i = 0; i < wordsCount; i++) {
+
65
-
66 size_t bI = i * sizeof(WORD);
-
67 if (checksumBgn != checksumEnd && bI >= checksumBgn && bI < checksumEnd) {
-
68 size_t mask = (checksumEnd - bI) % sizeof(WORD);
-
69 size_t shift = (sizeof(WORD) - mask) * 8;
-
70 chunk = (chunk >> shift) << shift;
+
66 size_t bI = i * sizeof(WORD);
+ +
68 size_t mask = (checksumEnd - bI) % sizeof(WORD);
+
69 size_t shift = (sizeof(WORD) - mask) * 8;
+
70 chunk = (chunk >> shift) << shift;
71 }
72
-
73 checksum = (checksum & 0xffffffff) + chunk + (checksum >> 32);
-
74 if (checksum > maxVal) {
-
75 checksum = (checksum & 0xffffffff) + (checksum >> 32);
+
73 checksum = (checksum & 0xffffffff) + chunk + (checksum >> 32);
+
74 if (checksum > maxVal) {
+
75 checksum = (checksum & 0xffffffff) + (checksum >> 32);
76 }
77 }
78
79 // Handle the remaining bytes
-
80 if (remainingBytes > 0) {
-
81 WORD chunk = 0;
-
82 memcpy(&chunk, buffer + wordsCount * sizeof(WORD), remainingBytes);
+
80 if (remainingBytes > 0) {
+
81 WORD chunk = 0;
+
83
-
84 size_t bI = wordsCount * sizeof(WORD);
-
85 if (checksumBgn != checksumEnd && bI >= checksumBgn && bI < checksumEnd) {
-
86 size_t mask = (checksumEnd - bI) % sizeof(WORD);
-
87 size_t shift = (sizeof(WORD) - mask) * 8;
-
88 chunk = (chunk >> shift) << shift;
+
84 size_t bI = wordsCount * sizeof(WORD);
+ +
86 size_t mask = (checksumEnd - bI) % sizeof(WORD);
+
87 size_t shift = (sizeof(WORD) - mask) * 8;
+
88 chunk = (chunk >> shift) << shift;
89 }
90
-
91 checksum = (checksum & 0xffffffff) + chunk + (checksum >> 32);
-
92 if (checksum > maxVal) {
-
93 checksum = (checksum & 0xffffffff) + (checksum >> 32);
+
91 checksum = (checksum & 0xffffffff) + chunk + (checksum >> 32);
+
92 if (checksum > maxVal) {
+
93 checksum = (checksum & 0xffffffff) + (checksum >> 32);
94 }
95 }
-
96 checksum = (checksum & 0xffff) + (checksum >> 16);
-
97 checksum = (checksum)+(checksum >> 16);
-
98 checksum = checksum & 0xffff;
-
99 checksum += bufferSize;
-
100 return checksum;
+
96 checksum = (checksum & 0xffff) + (checksum >> 16);
+
97 checksum = (checksum)+(checksum >> 16);
+
98 checksum = checksum & 0xffff;
+ +
100 return checksum;
101}
+
102
104
- -
106 : MappedExe(v_buf, Executable::BITS_32), dosHdrWrapper(NULL), fHdr(NULL), optHdr(NULL), sects(NULL),
-
107 album(NULL)
+
+ +
106 : MappedExe(v_buf, Executable::BITS_32), dosHdrWrapper(NULL), fHdr(NULL), optHdr(NULL), sects(NULL),
+
107 album(NULL)
108{
109 album = new ResourcesAlbum(this);
-
110 wrap(v_buf);
+
110 wrap(v_buf);
112}
+
113
+
115{
118
-
119 this->dosHdrWrapper = NULL;
-
120 this->fHdr = NULL;
-
121 this->optHdr = NULL;
-
122 this->sects = NULL;
+
119 this->dosHdrWrapper = NULL;
+
120 this->fHdr = NULL;
+
121 this->optHdr = NULL;
+
122 this->sects = NULL;
123}
+
124
+
126{
-
127 for (size_t i = 0 ; i < pe::DIR_ENTRIES_COUNT; i++) {
-
128 dataDirEntries[i] = NULL;
+
127 for (size_t i = 0 ; i < pe::DIR_ENTRIES_COUNT; i++) {
+
129 }
130}
+
131
+
133{
134 PEFile::wrap(this->buf);
135}
+
136
- +
+
138{
139 //erase all existing wrappers:
141
142 // rewrao the core:
-
143 core.wrap(v_buf);
+
143 core.wrap(v_buf);
144
145 //regenerate the wrappers:
146 this->dosHdrWrapper = new DosHdrWrapper(this);
147 this->wrappers[WR_DOS_HDR] = this->dosHdrWrapper;
148
149 this->fHdr = new FileHdrWrapper(this);
-
150 if (fHdr->getPtr() == NULL) throw ExeException("Cannot parse FileHdr: It is not PE File!");
+
150 if (fHdr->getPtr() == NULL) throw ExeException("Cannot parse FileHdr: It is not PE File!");
151 this->wrappers[WR_FILE_HDR] = fHdr;
152 this->wrappers[WR_RICH_HDR] = new RichHdrWrapper(this);
153
154 this->optHdr = new OptHdrWrapper(this);
-
155 if (optHdr->getPtr() == NULL) throw ExeException("Cannot parse OptionalHeader: It is not PE File!");
+
155 if (optHdr->getPtr() == NULL) throw ExeException("Cannot parse OptionalHeader: It is not PE File!");
157
158 this->wrappers[WR_DATADIR] = new DataDirWrapper(this);
159
-
160 bool isOk = false;
-
161 const size_t secNum = fHdr->getNumValue(FileHdrWrapper::SEC_NUM, &isOk);
-
162 if (isOk && secNum){
+
160 bool isOk = false;
+ +
162 if (isOk && secNum){
163 this->sects = new SectHdrsWrapper(this);
164 this->wrappers[WR_SECTIONS] = sects;
165 }
166 else {
-
167 this->sects = NULL;
+
167 this->sects = NULL;
168 }
169 // map Data Dirs
@@ -259,223 +279,251 @@ $(function() {
181 dataDirEntries[pe::DIR_RESOURCE] = new ResourceDirWrapper(this, album);
182 dataDirEntries[pe::DIR_COM_DESCRIPTOR] = new ClrDirWrapper(this);
183
-
184 for (int i = 0; i < pe::DIR_ENTRIES_COUNT; i++) {
-
185 this->wrappers[WR_DIR_ENTRY + i] = dataDirEntries[i];
+
184 for (int i = 0; i < pe::DIR_ENTRIES_COUNT; i++) {
+
186 }
187
188 if (this->album) {
189 this->album->wrapLeafsContent();
190 }
191}
+
192
+
193pe::RICH_DANS_HEADER* PEFile::getRichHeaderBgn(pe::RICH_SIGNATURE* richSign)
194{
-
195 if (!richSign) return NULL;
+
195 if (!richSign) return NULL;
196
-
197 DWORD xorkey = richSign->checksum;
-
198 const offset_t richOffset = this->getOffset(richSign);
+
197 DWORD xorkey = richSign->checksum;
+
198 const offset_t richOffset = this->getOffset(richSign);
199
-
200 pe::RICH_DANS_HEADER* dansHdr = NULL;
+
200 pe::RICH_DANS_HEADER* dansHdr = NULL;
201
-
202 offset_t offset = richOffset - sizeof(pe::RICH_DANS_HEADER);
+
202 offset_t offset = richOffset - sizeof(pe::RICH_DANS_HEADER);
203 while (offset > 0) {
204 dansHdr = (pe::RICH_DANS_HEADER*) this->getContentAt(offset, sizeof(pe::RICH_DANS_HEADER));
205 if (!dansHdr) {
206 break;
207 }
-
208 if (dansHdr->dansId == (pe::DANS_HDR_MAGIC ^ xorkey)) {
+
208 if (dansHdr->dansId == (pe::DANS_HDR_MAGIC ^ xorkey)) {
209 break; //got it!
210 }
211 //walking back
-
212 offset -= sizeof(DWORD);
+
212 offset -= sizeof(DWORD);
213 }
-
214 if (!dansHdr || dansHdr->dansId != (pe::DANS_HDR_MAGIC ^ xorkey)) {
-
215 return NULL; //not found
+
214 if (!dansHdr || dansHdr->dansId != (pe::DANS_HDR_MAGIC ^ xorkey)) {
+
215 return NULL; //not found
216 }
217 return dansHdr;
218}
+
219
+
220pe::RICH_SIGNATURE* PEFile::getRichHeaderSign()
221{
-
222 size_t dosStubOffset = this->core.dos->e_lfarlc;
-
223 size_t dosStubEnd = this->core.dos->e_lfanew; // PE header start
-
224 const size_t maxSize = dosStubEnd - dosStubOffset; // Rich Header is somewhere in the space between DOS and PE headers
-
225 BYTE *dosPtr = this->getContentAt(dosStubOffset, maxSize);
-
226 if (!dosPtr) {
-
227 return NULL;
+
222 size_t dosStubOffset = this->core.dos->e_lfarlc;
+
223 size_t dosStubEnd = this->core.dos->e_lfanew; // PE header start
+
224 const size_t maxSize = dosStubEnd - dosStubOffset; // Rich Header is somewhere in the space between DOS and PE headers
+
225 BYTE *dosPtr = this->getContentAt(dosStubOffset, maxSize);
+
226 if (!dosPtr) {
+
227 return NULL;
228 }
229
-
230 pe::RICH_SIGNATURE* richSign = NULL;
-
231 size_t toSearchSize = maxSize;
-
232 const offset_t startOffset = dosStubOffset; //we are starting from the beginning of DOS stub
-
233 const size_t step = sizeof(DWORD); //RichHeader is padded by DWORDS
+
230 pe::RICH_SIGNATURE* richSign = NULL;
+
231 size_t toSearchSize = maxSize;
+
232 const offset_t startOffset = dosStubOffset; //we are starting from the beginning of DOS stub
+
233 const size_t step = sizeof(DWORD); //RichHeader is padded by DWORDS
234
-
235 while (toSearchSize > 0) {
-
236 richSign = (pe::RICH_SIGNATURE*) this->getContentAt(startOffset + toSearchSize, sizeof(pe::RICH_SIGNATURE));
+
235 while (toSearchSize > 0) {
+
236 richSign = (pe::RICH_SIGNATURE*) this->getContentAt(startOffset + toSearchSize, sizeof(pe::RICH_SIGNATURE));
237 if (!richSign) break;
238 if (richSign->richId == pe::RICH_HDR_MAGIC) break; //got it!
239 // the search goes backward.
-
240 toSearchSize -= step;
+
241 }
-
242 if (!richSign) return NULL;
+
242 if (!richSign) return NULL;
243 if (richSign->richId != pe::RICH_HDR_MAGIC) {
-
244 return NULL; //invalid
+
244 return NULL; //invalid
245 }
246 return richSign;
247}
+
248
249
+
251{
252 if (!this->getSectionsCount()) {
253 return INVALID_ADDR;
254 }
-
255 SectionHdrWrapper* sec = this->getSecHdr(0);
+
255 SectionHdrWrapper* sec = this->getSecHdr(0);
256 if (!sec) {
257 return INVALID_ADDR;
258 }
- +
259 return sec->getContentOffset(Executable::RVA);
260}
+
261
+
263{
-
264 if (this->optHdr == NULL) return INVALID_ADDR;
+
264 if (this->optHdr == NULL) return INVALID_ADDR;
266}
+
267
-
268IMAGE_DATA_DIRECTORY* PEFile::getDataDirectory()
+
+
269{
-
270 if (this->wrappers[WR_DATADIR] == NULL) return NULL;
-
271 return static_cast<IMAGE_DATA_DIRECTORY*>(this->wrappers[WR_DATADIR]->getPtr());
+
270 if (this->wrappers[WR_DATADIR] == NULL) return NULL;
+
271 return static_cast<IMAGE_DATA_DIRECTORY*>(this->wrappers[WR_DATADIR]->getPtr());
272}
+
273
- +
+
275{
-
276 if (aType == Executable::NOT_ADDR) return 0;
+
276 if (aType == Executable::NOT_ADDR) return 0;
277
-
278 if (aType == Executable::RAW) {
+
278 if (aType == Executable::RAW) {
279 return this->getContentSize();
280 }
-
281 const size_t PAGE_SIZE = 0x1000;
-
282 bufsize_t vSize = 0;
-
283 if (aType == Executable::VA || aType == Executable::RVA) {
-
284 vSize = core.getImageSize();
+
281 const size_t PAGE_SIZE = 0x1000;
+
282 bufsize_t vSize = 0;
+ +
285 }
-
286 if (vSize < PAGE_SIZE) {
-
287 return PAGE_SIZE;
+
286 if (vSize < PAGE_SIZE) {
+
287 return PAGE_SIZE;
288 }
-
289 return vSize;
+
289 return vSize;
290}
+
291
- +
+
293{
-
294 if (optHdr == NULL) return INVALID_ADDR;
+
294 if (optHdr == NULL) return INVALID_ADDR;
295
-
296 bool isOk = false;
-
297 offset_t entryPoint = static_cast<offset_t> (optHdr->getNumValue(OptHdrWrapper::EP, &isOk));
-
298 if (isOk == false) return INVALID_ADDR;
+
296 bool isOk = false;
+ +
298 if (isOk == false) return INVALID_ADDR;
299
- -
301 if (addrType != epType) {
-
302 entryPoint = this->convertAddr(entryPoint, epType, addrType);
+ +
301 if (addrType != epType) {
+
302 entryPoint = this->convertAddr(entryPoint, epType, addrType);
303 }
-
304 return entryPoint;
+
304 return entryPoint;
305}
+
306
- +
+
308{
-
309 if (optHdr == NULL) return false;
+
309 if (optHdr == NULL) return false;
310
-
311 offset_t epRva = this->convertAddr(entry, aType, Executable::RVA);
-
312 bool isOk = optHdr->setNumValue(OptHdrWrapper::EP, epRva);
-
313 return isOk;
+ + +
313 return isOk;
314}
+
315
+
317{
-
318 bool isOk = false;
-
319 uint64_t secNum = this->fHdr->getNumValue(FileHdrWrapper::SEC_NUM , &isOk);
-
320 if (isOk == false) return 0;
+
318 bool isOk = false;
+ +
320 if (isOk == false) return 0;
321
-
322 return static_cast<size_t> (secNum);
+
322 return static_cast<size_t> (secNum);
323}
+
324
-
325bool PEFile::setHdrSectionsNum(size_t newNum)
+
+
326{
-
327 uint64_t count = newNum;
-
328 bool canSet = fHdr->setNumValue(FileHdrWrapper::SEC_NUM , count);
-
329 if (canSet == false) {
+
327 uint64_t count = newNum;
+ +
329 if (canSet == false) {
330 Logger::append(Logger::D_ERROR,"Can not change FileHdr!");
331 return false;
332 }
333 return true;
334}
+
335
- +
+
337{
-
338 uint64_t size = newSize;
-
339 bool canSet = optHdr->setNumValue(OptHdrWrapper::IMAGE_SIZE, size);
-
340 if (canSet == false) {
+
338 uint64_t size = newSize;
+ +
340 if (canSet == false) {
341 Logger::append(Logger::D_ERROR, "Can not change OptHdr!");
342 return false;
343 }
344 return true;
345}
+
346
-
347size_t PEFile::getSectionsCount(bool useMapped) const
+
+
348{
-
349 if (useMapped == false) {
+
349 if (useMapped == false) {
350 return hdrSectionsNum();
351 }
352 return (this->sects) ? this->sects->getEntriesCount() : 0;
353}
+
354
- +
+
356{
-
357 if (raw >= this->getMappedSize(Executable::RAW)) return INVALID_ADDR;
+
357 if (raw >= this->getMappedSize(Executable::RAW)) return INVALID_ADDR;
358
-
359 SectionHdrWrapper* sec = this->getSecHdrAtOffset(raw, Executable::RAW, true);
-
360 if (sec) {
- - -
363 if (bgnVA == INVALID_ADDR || bgnRaw == INVALID_ADDR) return INVALID_ADDR;
+ +
360 if (sec) {
+
361 offset_t bgnVA = sec->getContentOffset(Executable::VA);
+
362 offset_t bgnRaw = sec->getContentOffset(Executable::RAW);
+
364
-
365 bufsize_t curr = (raw - bgnRaw);
+
365 bufsize_t curr = (raw - bgnRaw);
366
-
367 bufsize_t vSize = sec->getContentSize(Executable::VA, true);
-
368 if (curr >= vSize) {
+
367 bufsize_t vSize = sec->getContentSize(Executable::VA, true);
+
368 if (curr >= vSize) {
369 //address out of section
370 return INVALID_ADDR;
371 }
-
372 return bgnVA + curr;
+
372 return bgnVA + curr;
373 }
374 //TODO: make more tests
375 if (this->getSectionsCount() == 0) return raw;
-
376 if (raw < this->hdrsSize()) {
-
377 return raw;
+
376 if (raw < this->hdrsSize()) {
+
377 return raw;
378 } //else: content that is between the end of sections headers and the first virtual section is not mapped
379 return INVALID_ADDR;
380}
+
381
- +
+
383{
-
384 if (rva >= this->getMappedSize(Executable::RVA)) return INVALID_ADDR;
+
384 if (rva >= this->getMappedSize(Executable::RVA)) return INVALID_ADDR;
385
-
386 SectionHdrWrapper* sec = this->getSecHdrAtOffset(rva, Executable::RVA, true);
-
387 if (sec) {
- - -
390 if (bgnRVA == INVALID_ADDR || bgnRaw == INVALID_ADDR) return INVALID_ADDR;
+ +
387 if (sec) {
+
388 offset_t bgnRVA = sec->getContentOffset(Executable::RVA);
+
389 offset_t bgnRaw = sec->getContentOffset(Executable::RAW);
+
391
-
392 bufsize_t curr = (rva - bgnRVA);
-
393 bufsize_t rawSize = sec->getContentSize(Executable::RAW, true);
-
394 if (curr >= rawSize) {
+
392 bufsize_t curr = (rva - bgnRVA);
+
393 bufsize_t rawSize = sec->getContentSize(Executable::RAW, true);
+
394 if (curr >= rawSize) {
395 // the address might be in a virtual cave that is not related to any raw address
396 return INVALID_ADDR;
397 }
-
398 return bgnRaw + curr;
+
398 return bgnRaw + curr;
399 }
-
400 if (rva >= this->getMappedSize(Executable::RAW)) {
+
400 if (rva >= this->getMappedSize(Executable::RAW)) {
401 return INVALID_ADDR;
402 }
403 if (this->getSectionsCount()) { // do this check only if sections count is non-zero
@@ -485,200 +533,216 @@ $(function() {
407 }
408 }
409 // at this point we are sure that the address is within the raw size:
-
410 return rva;
+
410 return rva;
411}
+
412
- +
+
414{
-
415 if (eType >= pe::DIR_ENTRIES_COUNT) return NULL;
-
416 return dataDirEntries[eType];
+
415 if (eType >= pe::DIR_ENTRIES_COUNT) return NULL;
+
416 return dataDirEntries[eType];
417}
+
418
- +
+
420{
-
421 SectionHdrWrapper *sec = this->getSecHdr(secId);
-
422 if (sec == NULL) {
+
421 SectionHdrWrapper *sec = this->getSecHdr(secId);
+
422 if (sec == NULL) {
423 Logger::append(Logger::D_WARNING, "No such section");
-
424 return NULL;
+
424 return NULL;
425 }
-
426 return _createSectionView(sec);
+
426 return _createSectionView(sec);
427}
+
428
-
429bool PEFile::moveDataDirEntry(pe::dir_entry id, offset_t newOffset, Executable::addr_type addrType)
+
+
430{
-
431 bool allowExceptions = true; //TODO: configure exception mode outside...
+
431 bool allowExceptions = true; //TODO: configure exception mode outside...
432
- -
434 if (entry == NULL) {
-
435 if (allowExceptions) throw ExeException("No such Data Directory");
+ +
434 if (entry == NULL) {
+
435 if (allowExceptions) throw ExeException("No such Data Directory");
436 return false;
437 }
-
438 DataDirWrapper* ddirWrapper = dynamic_cast<DataDirWrapper*> (this->wrappers[WR_DATADIR]);
-
439 IMAGE_DATA_DIRECTORY *ddir = this->getDataDirectory();
-
440 if (ddirWrapper == NULL || ddir == NULL) {
-
441 if (allowExceptions) throw ExeException("Cannot fetch DataDirTable");
+ + +
440 if (ddirWrapper == NULL || ddir == NULL) {
+
441 if (allowExceptions) throw ExeException("Cannot fetch DataDirTable");
442 return false;
443 }
-
444 Executable::addr_type dataDirAddrType = ddirWrapper->containsAddrType(id, DataDirWrapper::ADDRESS);
-
445 offset_t dataDirAddr = this->convertAddr(newOffset, addrType, dataDirAddrType);
-
446 if (dataDirAddr == INVALID_ADDR) {
-
447 if (allowExceptions) throw ExeException("Invalid new offset");
+ + +
446 if (dataDirAddr == INVALID_ADDR) {
+
447 if (allowExceptions) throw ExeException("Invalid new offset");
448 return false;
449 }
-
450 offset_t targetRaw = this->toRaw(newOffset, addrType);
-
451 if (entry->canCopyToOffset(targetRaw) == false) {
-
452 if (allowExceptions) throw ExeException("Cannot copy: no space at such offset");
+
450 offset_t targetRaw = this->toRaw(newOffset, addrType);
+
451 if (entry->canCopyToOffset(targetRaw) == false) {
+
452 if (allowExceptions) throw ExeException("Cannot copy: no space at such offset");
453 return false;
454 }
-
455 if (entry->copyToOffset(targetRaw) == false) {
-
456 if (allowExceptions) throw ExeException("Cannot copy: error occured");
+
455 if (entry->copyToOffset(targetRaw) == false) {
+
456 if (allowExceptions) throw ExeException("Cannot copy: error occured");
457 return false;
458 }
-
459 entry->fillContent(0);
-
460 ddir[id].VirtualAddress = static_cast<DWORD> (dataDirAddr);
+
459 entry->fillContent(0);
+
460 ddir[id].VirtualAddress = static_cast<DWORD> (dataDirAddr);
461 return true;
462}
+
463
+
465{
- -
467 if (sec == NULL || sec->canAddEntry() == false) {
+ +
467 if (sec == NULL || sec->canAddEntry() == false) {
468 return false;
469 }
-
470 const size_t secCount = hdrSectionsNum();
-
471 if (secCount == SectHdrsWrapper::SECT_COUNT_MAX) return false; //limit exceeded
+
470 const size_t secCount = hdrSectionsNum();
+
471 if (secCount == SectHdrsWrapper::SECT_COUNT_MAX) return false; //limit exceeded
472
473 //TODO: some more checks? overlay?
474 return true;
475}
+
476
477
- +
+
479{
-
480 if (canAddNewSection() == false) return NULL;
+
480 if (canAddNewSection() == false) return NULL;
481
- -
483 if (!v_size) v_size = size;
+ +
483 if (!v_size) v_size = size;
484
- - -
487 bufsize_t newSize = roundedRawEnd + size;
-
488 bufsize_t newVirtualSize = roundedVirtualEnd + v_size;
+ + + +
489
-
490 if (setVirtualSize(newVirtualSize) == false) {
+
490 if (setVirtualSize(newVirtualSize) == false) {
491 Logger::append(Logger::D_ERROR, "Failed to change virtual size");
-
492 return NULL;
+
492 return NULL;
493 }
494
-
495 if (resize(newSize) == false) {
+
495 if (resize(newSize) == false) {
496 Logger::append(Logger::D_ERROR, "Failed to resize");
-
497 return NULL;
+
497 return NULL;
498 }
499 // fetch again after resize:
-
500 sec = dynamic_cast<ExeNodeWrapper*>(getWrapper(PEFile::WR_SECTIONS));
-
501 if (sec == NULL) {
-
502 return NULL;
+ +
501 if (sec == NULL) {
+
502 return NULL;
503 }
504
-
505 IMAGE_SECTION_HEADER secHdr;
-
506 ::memset(&secHdr, 0, sizeof(IMAGE_SECTION_HEADER));
+ +
507
508 //name copy:
-
509 const size_t nameLen = name.length();
-
510 const size_t bufSize = sizeof(secHdr.Name);
-
511 const size_t copySize = (nameLen < bufSize) ? nameLen : bufSize;
-
512 if (copySize) {
-
513 ::memcpy(secHdr.Name, name.toStdString().c_str(), copySize);
+
509 const size_t nameLen = name.length();
+
510 const size_t bufSize = sizeof(secHdr.Name);
+
511 const size_t copySize = (nameLen < bufSize) ? nameLen : bufSize;
+
512 if (copySize) {
+
513 ::memcpy(secHdr.Name, name.toStdString().c_str(), copySize);
514 }
515
-
516 secHdr.PointerToRawData = static_cast<DWORD>(roundedRawEnd);
-
517 secHdr.VirtualAddress = static_cast<DWORD>(roundedVirtualEnd);
-
518 secHdr.SizeOfRawData = size;
-
519 secHdr.Misc.VirtualSize = v_size;
+
516 secHdr.PointerToRawData = static_cast<DWORD>(roundedRawEnd);
+
517 secHdr.VirtualAddress = static_cast<DWORD>(roundedVirtualEnd);
+
518 secHdr.SizeOfRawData = size;
+
519 secHdr.Misc.VirtualSize = v_size;
520
-
521 SectionHdrWrapper wr(this, &secHdr);
-
522 SectionHdrWrapper* secHdrWr = dynamic_cast<SectionHdrWrapper*>(sec->addEntry(&wr));
-
523 return secHdrWr;
+ +
522 SectionHdrWrapper* secHdrWr = dynamic_cast<SectionHdrWrapper*>(sec->addEntry(&wr));
+
523 return secHdrWr;
524}
+
525
+
527{
-
528 size_t secCount = this->getSectionsCount(true);
-
529 if (secCount == 0) return NULL;
+
528 size_t secCount = this->getSectionsCount(true);
+
529 if (secCount == 0) return NULL;
530 return this->getSecHdr(secCount - 1);
531}
+
532
- +
+
534{
-
535 offset_t lastMapped = 0;
+
536
537 /* check sections bounds */
-
538 const size_t secCounter = this->getSectionsCount(true);
+
538 const size_t secCounter = this->getSectionsCount(true);
539 if (!secCounter) {
540 // if PE file has no sections, full file will be mapped
-
541 return getMappedSize(aType);
+
541 return getMappedSize(aType);
542 }
-
543 for (size_t i = 0; i < secCounter; i++) {
-
544 SectionHdrWrapper *sec = this->getSecHdr(i);
+
543 for (size_t i = 0; i < secCounter; i++) {
+
545 if (!sec) continue;
546
-
547 offset_t secLastMapped= sec->getContentOffset(aType, true);
-
548 if (secLastMapped == INVALID_ADDR) continue;
+
547 offset_t secLastMapped= sec->getContentOffset(aType, true);
+
548 if (secLastMapped == INVALID_ADDR) continue;
549
-
550 const size_t size = (aType == Executable::RAW) ? sec->getMappedRawSize() : sec->getMappedVirtualSize();
+
550 const size_t size = (aType == Executable::RAW) ? sec->getMappedRawSize() : sec->getMappedVirtualSize();
551 if (size == 0) continue; // exclude not mapped sections
552
-
553 secLastMapped += size;
-
554 if (secLastMapped > lastMapped) {
-
555 lastMapped = secLastMapped;
+
553 secLastMapped += size;
+ +
556 }
557 }
558
559 /* check header bounds */
560 /* section headers: */
-
561 if (lastMapped < this->secHdrsEndOffset()) {
-
562 lastMapped = this->secHdrsEndOffset();
+ +
563 }
564 // PE hdrs ending:
-
565 const offset_t peHdrsEnd = this->core.peSignatureOffset() + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + this->core.peNtHeadersSize();
-
566 if (lastMapped < peHdrsEnd) {
-
567 lastMapped = peHdrsEnd;
+
565 const offset_t peHdrsEnd = this->core.peSignatureOffset() + sizeof(DWORD) + sizeof(IMAGE_FILE_HEADER) + this->core.peNtHeadersSize();
+
566 if (lastMapped < peHdrsEnd) {
+
568 }
569 // OptionalHdr -> SizeOfHeaders:
-
570 const offset_t ntHeadersEndOffset = this->core.hdrsSize();
-
571 if (lastMapped < ntHeadersEndOffset) {
-
572 lastMapped = ntHeadersEndOffset;
+ +
571 if (lastMapped < ntHeadersEndOffset) {
+
573 }
-
574 return lastMapped;
+
574 return lastMapped;
575}
+
576
- +
+
578{
- -
580 if (secHdr == NULL) return NULL;
+ +
580 if (secHdr == NULL) return NULL;
581
582 //TODO: check overlay...
-
583 bufsize_t fullSize = getContentSize();
-
584 bufsize_t newSize = fullSize + addedSize;
+ +
585
-
586 offset_t secROffset = secHdr->getContentOffset(Executable::RAW, false);
-
587 if (secROffset == INVALID_ADDR) {
-
588 return NULL;
+
586 offset_t secROffset = secHdr->getContentOffset(Executable::RAW, false);
+
587 if (secROffset == INVALID_ADDR) {
+
588 return NULL;
589 }
-
590 const bufsize_t secNewRSize = newSize - secROffset; //include overlay in section
+
590 const bufsize_t secNewRSize = newSize - secROffset; //include overlay in section
591
-
592 secHdr->setNumValue(SectionHdrWrapper::RSIZE, uint64_t(secNewRSize));
+
593
-
594 const offset_t secVOffset = secHdr->getContentOffset(Executable::RVA, false);
-
595 const bufsize_t secVSize = secHdr->getContentSize(Executable::RVA, false);
+
594 const offset_t secVOffset = secHdr->getContentOffset(Executable::RVA, false);
+
595 const bufsize_t secVSize = secHdr->getContentSize(Executable::RVA, false);
596
597 // if the previous virtual size is smaller than the new raw size, then update it:
-
598 if (secVSize < secNewRSize) {
-
599 secHdr->setNumValue(SectionHdrWrapper::VSIZE, uint64_t(secNewRSize));
+
598 if (secVSize < secNewRSize) {
+
600
601 // if the virtual size of section has changed,
602 // update the Size of Image (saved in the header):
-
603 bufsize_t newVSize = secVOffset + secNewRSize;
+
604 this->setVirtualSize(newVSize);
605 }
606
@@ -687,80 +751,90 @@ $(function() {
609 //finally, retrieve the resized section:
610 return getLastSection();
611}
+
612
+
614{
-
615 IMAGE_DATA_DIRECTORY* ddir = this->getDataDirectory();
-
616 if (ddir[pe::DIR_BOUND_IMPORT].VirtualAddress == 0 && ddir[pe::DIR_BOUND_IMPORT].Size == 0) {
+ +
616 if (ddir[pe::DIR_BOUND_IMPORT].VirtualAddress == 0 && ddir[pe::DIR_BOUND_IMPORT].Size == 0) {
617 // No bound imports already, nothing to do here!
618 return true;
619 }
-
620 ddir[pe::DIR_BOUND_IMPORT].VirtualAddress = 0;
-
621 ddir[pe::DIR_BOUND_IMPORT].Size = 0;
-
622 DataDirEntryWrapper *bImp = this->getDataDirEntry(pe::DIR_BOUND_IMPORT);
-
623 if (bImp == NULL) {
+
620 ddir[pe::DIR_BOUND_IMPORT].VirtualAddress = 0;
+
621 ddir[pe::DIR_BOUND_IMPORT].Size = 0;
+
622 DataDirEntryWrapper *bImp = this->getDataDirEntry(pe::DIR_BOUND_IMPORT);
+
623 if (bImp == NULL) {
624 //printf("No Bound imports wrapper!\n");
625 return false; // todo: throw error?
626 }
-
627 bool isOk = bImp->wrap();
+
627 bool isOk = bImp->wrap();
628 //TODO: change timestamp for all library entries from (-1 : BOUND) to 0 : NOT BOUND
-
629 return isOk;
+
629 return isOk;
630}
+
631
-
632bool PEFile::dumpSection(SectionHdrWrapper *sec, QString fileName)
+
+
633{
635 return false; //not my section
636 }
-
637 BufferView *secView = this->_createSectionView(sec);
-
638 if (!secView) return false;
+ +
638 if (!secView) return false;
639
-
640 bufsize_t dumpedSize = FileBuffer::dump(fileName, *secView, false);
-
641 delete secView;
+
640 bufsize_t dumpedSize = FileBuffer::dump(fileName, *secView, false);
+
641 delete secView;
642
-
643 return dumpedSize ? true : false;
+
643 return dumpedSize ? true : false;
644}
+
645
646//protected:
647
- +
+
649{
- -
651 offset_t start = sec->getContentOffset(aType, true);
-
652 bufsize_t size = sec->getContentSize(aType, true);
-
653 if (start == INVALID_ADDR || size == 0) {
-
654 return NULL;
+ +
651 offset_t start = sec->getContentOffset(aType, true);
+
652 bufsize_t size = sec->getContentSize(aType, true);
+
653 if (start == INVALID_ADDR || size == 0) {
+
654 return NULL;
655 }
-
656 return new BufferView(this, start, size);
+
656 return new BufferView(this, start, size);
657}
+
658
-
659size_t PEFile::getExportsMap(QMap<offset_t,QString> &entrypoints, Executable::addr_type aType)
+
+
660{
-
661 size_t initialSize = entrypoints.size();
+
661 size_t initialSize = entrypoints.size();
662
-
663 ExportDirWrapper* exports = dynamic_cast<ExportDirWrapper*>(this->getWrapper(PEFile::WR_DIR_ENTRY + pe::DIR_EXPORT));
-
664 if (!exports) return 0;
+
663 ExportDirWrapper* exports = dynamic_cast<ExportDirWrapper*>(this->getWrapper(PEFile::WR_DIR_ENTRY + pe::DIR_EXPORT));
+
664 if (!exports) return 0;
665
-
666 const size_t entriesCnt = exports->getEntriesCount();
-
667 if (entriesCnt == 0) return 0;
+
666 const size_t entriesCnt = exports->getEntriesCount();
+
667 if (entriesCnt == 0) return 0;
668
-
669 for (int i = 0; i < entriesCnt; i++) {
-
670 ExportEntryWrapper* entry = dynamic_cast<ExportEntryWrapper*>(exports->getEntryAt(i));
-
671 if (!entry) continue;
+
669 for (int i = 0; i < entriesCnt; i++) {
+
670 ExportEntryWrapper* entry = dynamic_cast<ExportEntryWrapper*>(exports->getEntryAt(i));
+
671 if (!entry) continue;
672
-
673 QString forwarder = entry->getForwarderStr();
-
674 if (forwarder.length()) {
+ +
674 if (forwarder.length()) {
675 continue;
676 }
-
677 offset_t rva = entry->getFuncRva();
-
678 offset_t offset = this->convertAddr(rva, Executable::RVA, aType);
+
677 offset_t rva = entry->getFuncRva();
+
678 offset_t offset = this->convertAddr(rva, Executable::RVA, aType);
679 if (offset == INVALID_ADDR) {
680 continue;
681 }
-
682 entrypoints.insert(offset, entry->getName());
+
682 entrypoints.insert(offset, entry->getName());
683 }
-
684 return entrypoints.size() - initialSize;
+
684 return entrypoints.size() - initialSize;
685}
+
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -769,31 +843,24 @@ $(function() {
virtual BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
virtual offset_t getOffset(void *ptr, bool allowExceptions=false)
-
bool fillContent(BYTE filling)
static bufsize_t dump(const QString &fileName, AbstractByteBuffer &buf, bool allowExceptions=false)
+
virtual bufsize_t getContentSize()
-
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
virtual bool setNumValue(size_t fieldId, size_t subField, uint64_t val)
-
virtual bool canCopyToOffset(offset_t rawOffset)
virtual offset_t getFieldOffset(size_t fieldId, size_t subField=FIELD_NONE)
-
bool copyToOffset(offset_t rawOffset)
virtual uint64_t getNumValue(size_t fieldId, size_t subField, bool *isOk)
-
virtual bool wrap()
-
virtual ExeNodeWrapper * getEntryAt(size_t fieldId)
-
virtual bool canAddEntry()
virtual size_t getEntriesCount()
-
virtual ExeNodeWrapper * addEntry(ExeNodeWrapper *entry)
std::map< size_t, ExeElementWrapper * > wrappers
Definition MappedExe.h:27
virtual ExeElementWrapper * getWrapper(size_t wrapperId)
Definition MappedExe.cpp:13
@@ -811,8 +878,6 @@ $(function() {
QString getForwarderStr()
-
offset_t getFuncRva()
-
virtual QString getName()
virtual void * getPtr()
@@ -894,12 +959,8 @@ $(function() {
static size_t SECT_COUNT_MAX
static size_t SECT_INVALID_INDEX
-
bufsize_t getMappedVirtualSize()
-
bufsize_t getContentSize(Executable::addr_type aType, bool recalculate)
-
offset_t getContentOffset(Executable::addr_type aType, bool useMapped=true)
-
bufsize_t getMappedRawSize()
bool append(dbg_level lvl, const char *format,...)
Definition Util.cpp:8
@@ -910,7 +971,7 @@ $(function() {
diff --git a/_p_e_file_8h.html b/_p_e_file_8h.html index bce84dd3..cec09057 100644 --- a/_p_e_file_8h.html +++ b/_p_e_file_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/PEFile.h File Reference @@ -30,7 +30,7 @@ - + +
27
28class PEFile;
29
+
30class PEFileBuilder: public ExeBuilder {
31public:
32 PEFileBuilder() : ExeBuilder() {}
33 virtual bool signatureMatches(AbstractByteBuffer *buf);
34 virtual Executable* build(AbstractByteBuffer *buf);
-
35 QString typeName() { return "PE"; }
+
35 QString typeName() { return "PE"; }
36};
+
37
38//-------------------------------------------------------------
39
+
40class PEFile : public MappedExe
41{
42public:
+
43 enum WRAPPERS {
@@ -131,10 +140,11 @@ $(function() {
52 WR_DIR_ENTRY_END = WR_DIR_ENTRY + pe::DIR_ENTRIES_COUNT,
54 };
+
55
-
56 static long computeChecksum(BYTE *buffer, size_t bufferSize, offset_t checksumOffset);
+
56 static long computeChecksum(BYTE *buffer, size_t bufferSize, offset_t checksumOffset);
57
-
58 PEFile(AbstractByteBuffer *v_buf);
+
58 PEFile(AbstractByteBuffer *v_buf);
59 virtual ~PEFile() { clearWrappers(); delete album; }
60 //---
61 // inherited from Executable:
@@ -142,13 +152,13 @@ $(function() {
63 virtual void wrap();
64
65 // FileAddr <-> RVA
-
66 virtual offset_t rawToRva(offset_t raw);
-
67 virtual offset_t rvaToRaw(offset_t rva);
+
66 virtual offset_t rawToRva(offset_t raw);
+
67 virtual offset_t rvaToRaw(offset_t rva);
68
-
69 virtual bufsize_t getMappedSize(Executable::addr_type aType);
-
70 virtual bufsize_t getAlignment(Executable::addr_type aType) const { return core.getAlignment(aType); }
-
71 virtual offset_t getImageBase(bool recalculate = false) { return core.getImageBase(recalculate); }
-
72 virtual offset_t getEntryPoint(Executable::addr_type addrType = Executable::RVA); // returns INVALID_ADDR if failed
+
69 virtual bufsize_t getMappedSize(Executable::addr_type aType);
+
70 virtual bufsize_t getAlignment(Executable::addr_type aType) const { return core.getAlignment(aType); }
+
71 virtual offset_t getImageBase(bool recalculate = false) { return core.getImageBase(recalculate); }
+
72 virtual offset_t getEntryPoint(Executable::addr_type addrType = Executable::RVA); // returns INVALID_ADDR if failed
73
74 virtual exe_bits getBitMode() { return getHdrBitMode(); }
75 //---
@@ -159,15 +169,17 @@ $(function() {
80 offset_t peOptHdrOffset() const { return core.peOptHdrOffset(); }
81 offset_t secHdrsOffset() const { return core.secHdrsOffset(); }
82
+
84 {
85 const offset_t offset = secHdrsOffset();
86 if (offset == INVALID_ADDR) {
87 return INVALID_ADDR;
88 }
-
89 const offset_t secHdrSize = this->getSectionsCount() * sizeof(IMAGE_SECTION_HEADER);
-
90 return offset + secHdrSize;
+ +
90 return offset + secHdrSize;
91 }
+
92
93 bufsize_t hdrsSize() { return core.hdrsSize(); }
94 offset_t getMinSecRVA();
@@ -176,170 +188,204 @@ $(function() {
97
98 //get Rich header (if available)
99 pe::RICH_SIGNATURE* getRichHeaderSign();
-
100 pe::RICH_DANS_HEADER* getRichHeaderBgn(pe::RICH_SIGNATURE* sign);
+
100 pe::RICH_DANS_HEADER* getRichHeaderBgn(pe::RICH_SIGNATURE* sign);
101
-
102 IMAGE_DATA_DIRECTORY* getDataDirectory();
+
102 IMAGE_DATA_DIRECTORY* getDataDirectory();
103 offset_t peDataDirOffset();
104
105 size_t hdrSectionsNum() const;
-
106 size_t getSectionsCount(bool useMapped = true) const;
+
106 size_t getSectionsCount(bool useMapped = true) const;
107 exe_bits getHdrBitMode() { return core.getHdrBitMode(); }
108
-
109 SectionHdrWrapper* getSecHdr(size_t index) const
+
+
110 {
-
111 return (sects) ? sects->getSecHdr(index) : NULL;
+
111 return (sects) ? sects->getSecHdr(index) : NULL;
112 }
+
113
-
114 SectionHdrWrapper* getSecHdrAtOffset(offset_t offset, Executable::addr_type aType, bool recalculate = false, bool verbose = false)
+
+
115 {
-
116 return (sects) ? sects->getSecHdrAtOffset(offset, aType, recalculate, verbose) : NULL;
+
116 return (sects) ? sects->getSecHdrAtOffset(offset, aType, recalculate, verbose) : NULL;
117 }
+
118
-
119 size_t getSecIndex(SectionHdrWrapper *sec) const
+
+
120 {
- +
122 }
+
123
+
124 ResourcesContainer* getResourcesOfType(pe::resource_type typeId)
125 {
-
126 return (this->album == NULL) ? NULL : album->getResourcesOfType(typeId);
+
126 return (this->album == NULL) ? NULL : album->getResourcesOfType(typeId);
127 }
+
128
-
129 DataDirEntryWrapper* getDataDirEntry(pe::dir_entry eType);
+
129 DataDirEntryWrapper* getDataDirEntry(pe::dir_entry eType);
130
-
131 BufferView* createSectionView(size_t secNum);
+
131 BufferView* createSectionView(size_t secNum);
132 //---
133 //modifications:
-
134 bool setEntryPoint(offset_t entry, Executable::addr_type aType);
-
135 bool moveDataDirEntry(pe::dir_entry id, offset_t newOffset, Executable::addr_type addType = Executable::RAW); //throws CustomException
+
134 bool setEntryPoint(offset_t entry, Executable::addr_type aType);
+
135 bool moveDataDirEntry(pe::dir_entry id, offset_t newOffset, Executable::addr_type addType = Executable::RAW); //throws CustomException
136
137 SectionHdrWrapper* getLastSection();
138 bool canAddNewSection();
-
139 SectionHdrWrapper* addNewSection(QString name, bufsize_t size, bufsize_t v_size=0);
-
140 SectionHdrWrapper* extendLastSection(bufsize_t addedSize);
+
139 SectionHdrWrapper* addNewSection(QString name, bufsize_t size, bufsize_t v_size=0);
+
140 SectionHdrWrapper* extendLastSection(bufsize_t addedSize);
141 bool unbindImports();
142
143 /* wrappers for fetching commonly used directories */
+
145 {
146 return dynamic_cast<ImportDirWrapper*>(getWrapper(PEFile::WR_DIR_ENTRY + pe::DIR_IMPORT));
147 }
+
148
+
150 {
151 return dynamic_cast<DelayImpDirWrapper*>(getWrapper(PEFile::WR_DIR_ENTRY + pe::DIR_DELAY_IMPORT));
152 }
+
153
+
155 {
156 return dynamic_cast<ExportDirWrapper*>(getWrapper(PEFile::WR_DIR_ENTRY + pe::DIR_EXPORT));
157 }
+
158
159 /* All Entry Points of the application, including: main EP, Exports, TLS Callbacks */
-
160 virtual size_t getAllEntryPoints(QMap<offset_t,QString> &entrypoints, Executable::addr_type aType = Executable::RVA)
+
+
161 {
-
162 size_t initialSize = entrypoints.size();
+
162 size_t initialSize = entrypoints.size();
163
-
164 Executable::getAllEntryPoints(entrypoints, aType);
-
165 this->getExportsMap(entrypoints, aType);
+ +
165 this->getExportsMap(entrypoints, aType);
166
-
167 return entrypoints.size() - initialSize;
+
167 return entrypoints.size() - initialSize;
168 }
+
169
-
170 offset_t getLastMapped(Executable::addr_type aType);
+
170 offset_t getLastMapped(Executable::addr_type aType);
171
172 /* wrappers:
173 */
-
174 bool hasDirectory(pe::dir_entry dirNum)
+
+
174 bool hasDirectory(pe::dir_entry dirNum)
175 {
-
176 return this->getDataDirEntry(dirNum) ? true : false;
+
176 return this->getDataDirEntry(dirNum) ? true : false;
177 }
+
178
+
180 {
181 return this->getAlignment(Executable::RAW);
182 }
+
183
+
185 {
186 return this->getAlignment(Executable::RVA);
187 }
+
188
-
189 BYTE* getSecContent(SectionHdrWrapper *sec)
+
+
190 {
-
192 return NULL; //not my section
+
192 return NULL; //not my section
193 }
-
194 const bufsize_t buf_size = sec->getContentSize(Executable::RAW, true);
-
195 if (!buf_size) return NULL;
+
194 const bufsize_t buf_size = sec->getContentSize(Executable::RAW, true);
+
195 if (!buf_size) return NULL;
196
-
197 offset_t start = sec->getContentOffset(Executable::RAW, true);
-
198 BYTE *ptr = this->getContentAt(start, buf_size);
+
197 offset_t start = sec->getContentOffset(Executable::RAW, true);
+
198 BYTE *ptr = this->getContentAt(start, buf_size);
199 return ptr;
200 }
+
201
-
202 void setImageSize(size_t newSize)
+
+
203 {
204 this->setVirtualSize(newSize);
205 }
+
206
+
208 {
- +
210 return this->getSecHdrAtOffset(ep, Executable::RVA, true, false);
211 }
+
212
-
213 bool clearContent(SectionHdrWrapper *sec)
+
+
214 {
216 return false; //not my section
217 }
-
218 BufferView *secView = this->_createSectionView(sec);
-
219 if (!secView) return false;
+ +
219 if (!secView) return false;
220
-
221 bool isOk = secView->fillContent(0);
-
222 delete secView;
-
223 return isOk;
+
221 bool isOk = secView->fillContent(0);
+
222 delete secView;
+
223 return isOk;
224 }
+
225
-
226 bool dumpSection(SectionHdrWrapper *sec, QString fileName);
+
226 bool dumpSection(SectionHdrWrapper *sec, QString fileName);
227
-
228 bool canResize(bufsize_t newSize)
+
+
229 {
-
230 bufsize_t currentSize = (bufsize_t)this->getRawSize();
-
231 if (newSize > currentSize) {
+ +
231 if (newSize > currentSize) {
232 return true;
233 }
-
234 bufsize_t hEnd = bufsize_t(this->peNtHdrOffset()) + this->peNtHeadersSize();
-
235 if (newSize < hEnd) {
+ +
235 if (newSize < hEnd) {
236 return false; // the resize will harm headers!
237 }
238 return true;
239 }
+
240
+
242 {
243 bool isRepro = false;
-
244 DebugDirWrapper* dbgDir = dynamic_cast<DebugDirWrapper*>(dataDirEntries[pe::DIR_DEBUG]);
-
245 if (dbgDir && dbgDir->isRepro()) {
+
244 DebugDirWrapper* dbgDir = dynamic_cast<DebugDirWrapper*>(dataDirEntries[pe::DIR_DEBUG]);
+
245 if (dbgDir && dbgDir->isRepro()) {
246 isRepro = true;
247 }
248 return isRepro;
249 }
+
250
251protected:
-
252 BufferView* _createSectionView(SectionHdrWrapper *sec);
-
253 size_t getExportsMap(QMap<offset_t,QString> &entrypoints, Executable::addr_type aType = Executable::RVA);
+
252 BufferView* _createSectionView(SectionHdrWrapper *sec);
+
253 size_t getExportsMap(QMap<offset_t,QString> &entrypoints, Executable::addr_type aType = Executable::RVA);
254
255 virtual void clearWrappers();
-
256 virtual void wrap(AbstractByteBuffer *v_buf);
+
256 virtual void wrap(AbstractByteBuffer *v_buf);
257
258 void initDirEntries();
259 PECore core;
260 //---
261 //modifications:
-
262 bool setHdrSectionsNum(size_t newNum);
-
263 bool setVirtualSize(bufsize_t newSize);
+
262 bool setHdrSectionsNum(size_t newNum);
+
263 bool setVirtualSize(bufsize_t newSize);
264
265 DosHdrWrapper *dosHdrWrapper;
266
@@ -352,7 +398,9 @@ $(function() {
273
274friend class SectHdrsWrapper;
275};
+
276
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -378,12 +426,10 @@ $(function() {
SecurityDirWrapper.h
TlsDirWrapper.h
AbstractByteBuffer
Definition AbstractByteBuffer.h:32
-
AbstractByteBuffer::fillContent
bool fillContent(BYTE filling)
Definition AbstractByteBuffer.cpp:199
BufferView
Definition AbstractByteBuffer.h:79
DOSExe::WR_DOS_HDR
@ WR_DOS_HDR
Definition DOSExe.h:23
DataDirEntryWrapper
Definition DataDirEntryWrapper.h:9
DebugDirWrapper
Definition DebugDirWrapper.h:8
-
DebugDirWrapper::isRepro
bool isRepro()
Definition DebugDirWrapper.cpp:36
DelayImpDirWrapper
Definition DelayImpDirWrapper.h:9
DosHdrWrapper
Definition DosHdrWrapper.h:9
ExeBuilder
Definition Executable.h:14
@@ -505,12 +551,10 @@ $(function() {
SectHdrsWrapper::getSecIndex
size_t getSecIndex(SectionHdrWrapper *sec) const
Definition SectHdrsWrapper.h:141
SectHdrsWrapper::SECT_INVALID_INDEX
static size_t SECT_INVALID_INDEX
Definition SectHdrsWrapper.h:119
SectionHdrWrapper
Definition SectHdrsWrapper.h:8
-
SectionHdrWrapper::getContentSize
bufsize_t getContentSize(Executable::addr_type aType, bool recalculate)
Definition SectHdrsWrapper.cpp:343
-
SectionHdrWrapper::getContentOffset
offset_t getContentOffset(Executable::addr_type aType, bool useMapped=true)
Definition SectHdrsWrapper.cpp:206
diff --git a/_p_e_node_wrapper_8cpp.html b/_p_e_node_wrapper_8cpp.html index ffab7612..d3cef31a 100644 --- a/_p_e_node_wrapper_8cpp.html +++ b/_p_e_node_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/PENodeWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "pe/PENodeWrapper.h"
2#include "pe/PEFile.h"
3
+
8
9//--------------------------------------------------------------------
10
- -
12 : ExeNodeWrapper(exe, parent, 0), m_PE(exe), peParentNode(parent)
+
+ +
12 : ExeNodeWrapper(exe, parent, 0), m_PE(exe), peParentNode(parent)
13{
14 wrap();
15}
+
16
-
17PENodeWrapper::PENodeWrapper(PEFile *exe, PENodeWrapper* parent, size_t entryNumber)
-
18 : ExeNodeWrapper(exe, parent, entryNumber), m_PE(exe), peParentNode(parent)
+
+ +
18 : ExeNodeWrapper(exe, parent, entryNumber), m_PE(exe), peParentNode(parent)
19{
20 wrap();
21}
+
+
INT_TYPE _getNumValue(void *ptr)
@@ -110,7 +122,7 @@ $(function() {
diff --git a/_p_e_node_wrapper_8h.html b/_p_e_node_wrapper_8h.html index fa9f4221..67a59fd1 100644 --- a/_p_e_node_wrapper_8h.html +++ b/_p_e_node_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/PENodeWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
5
6class PEFile;
7
+
8class PEElementWrapper : public ExeElementWrapper
9{
10public:
@@ -97,14 +103,16 @@ $(function() {
18
19friend class PEFile;
20};
+
21
22//----
23
+
24class PENodeWrapper : public ExeNodeWrapper
25{
26public:
-
27 PENodeWrapper(PEFile* pe, PENodeWrapper* parent = NULL);
-
28 PENodeWrapper(PEFile* pe, PENodeWrapper* parent, size_t entryNumber);
+
27 PENodeWrapper(PEFile* pe, PENodeWrapper* parent = NULL);
+
28 PENodeWrapper(PEFile* pe, PENodeWrapper* parent, size_t entryNumber);
29
30 virtual ~PENodeWrapper() {}
31
@@ -117,6 +125,8 @@ $(function() {
38
39friend class PEFile;
40};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
ExeElementWrapper
Definition ExeElementWrapper.h:12
ExeNodeWrapper
Definition ExeNodeWrapper.h:9
PEElementWrapper
Definition PENodeWrapper.h:9
@@ -133,7 +143,7 @@ $(function() { diff --git a/_reloc_dir_wrapper_8cpp.html b/_reloc_dir_wrapper_8cpp.html index fece5834..3a511609 100644 --- a/_reloc_dir_wrapper_8cpp.html +++ b/_reloc_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/RelocDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
31
32*/
33
+
34bool RelocDirWrapper::wrap()
35{
36 clear();
37 parsedSize = 0;
-
38 bufsize_t maxSize = getDirEntrySize(true);
-
39 size_t entryId = 0;
-
40 while (parsedSize < maxSize) {
-
41 RelocBlockWrapper* entry = new RelocBlockWrapper(this->m_Exe, this, entryId++);
-
42 if (!entry) break;
+
38 bufsize_t maxSize = getDirEntrySize(true);
+
39 size_t entryId = 0;
+
40 while (parsedSize < maxSize) {
+
41 RelocBlockWrapper* entry = new RelocBlockWrapper(this->m_Exe, this, entryId++);
+
42 if (!entry) break;
43
-
44 bool isOk = false;
-
45 const bufsize_t val = (bufsize_t) entry->getNumValue(RelocBlockWrapper::BLOCK_SIZE, &isOk);
+
44 bool isOk = false;
+
45 const bufsize_t val = (bufsize_t) entry->getNumValue(RelocBlockWrapper::BLOCK_SIZE, &isOk);
46
-
47 if (!entry->getPtr() || !val || !isOk) {
-
48 delete entry;
+
47 if (!entry->getPtr() || !val || !isOk) {
+
48 delete entry;
49 break;
50 }
-
51 this->parsedSize += val;
+
51 this->parsedSize += val;
52 this->entries.push_back(entry);
53
54 }
55 return true;
56}
+
57
58
-
59IMAGE_BASE_RELOCATION* RelocDirWrapper::reloc()
+
+
59IMAGE_BASE_RELOCATION* RelocDirWrapper::reloc()
60{
-
61 offset_t rva = getDirEntryAddress();
+
61 offset_t rva = getDirEntryAddress();
62
-
63 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_BASE_RELOCATION));
-
64 if (ptr == NULL) return NULL;
+
63 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_BASE_RELOCATION));
+
64 if (ptr == NULL) return NULL;
65
-
66 IMAGE_BASE_RELOCATION *reloc = (IMAGE_BASE_RELOCATION*) ptr;
+
66 IMAGE_BASE_RELOCATION *reloc = (IMAGE_BASE_RELOCATION*) ptr;
67 return reloc;
68}
+
69
70//----------------
71
+
72bool RelocBlockWrapper::wrap()
73{
74 clear();
75 parsedSize = 0;
76
-
77 IMAGE_BASE_RELOCATION* reloc = myReloc();
+
77 IMAGE_BASE_RELOCATION* reloc = myReloc();
78 if (!reloc) return false;
79
-
80 size_t maxSize = reloc->SizeOfBlock;
-
81 parsedSize = sizeof(IMAGE_BASE_RELOCATION); // the block begins with IMAGE_BASE_RELOCATION record
-
82 size_t entryId = 0;
+
80 size_t maxSize = reloc->SizeOfBlock;
+
81 parsedSize = sizeof(IMAGE_BASE_RELOCATION); // the block begins with IMAGE_BASE_RELOCATION record
+
82 size_t entryId = 0;
83
-
84 while (parsedSize < maxSize) {
-
85 RelocEntryWrapper* entry = new RelocEntryWrapper(this->m_Exe, this, entryId++);
+
84 while (parsedSize < maxSize) {
+
85 RelocEntryWrapper* entry = new RelocEntryWrapper(this->m_Exe, this, entryId++);
86
-
87 if (!entry->getPtr()) {
-
88 delete entry;
+
87 if (!entry->getPtr()) {
+
88 delete entry;
89 break;
90 }
91 this->parsedSize += sizeof(pe::BASE_RELOCATION_ENTRY);
@@ -172,192 +182,218 @@ $(function() {
93 }
94 return true;
95}
+
96
97
+
98void* RelocBlockWrapper::getPtr()
99{
-
100 if (this->parentDir == NULL) return NULL;
-
101 IMAGE_BASE_RELOCATION* reloc = this->parentDir->reloc();
-
102 if (!reloc) return NULL;
+
100 if (this->parentDir == NULL) return NULL;
+
101 IMAGE_BASE_RELOCATION* reloc = this->parentDir->reloc();
+
102 if (!reloc) return NULL;
103
-
104 offset_t raw = INVALID_ADDR;
-
105 BYTE *ptr = NULL;
+
104 offset_t raw = INVALID_ADDR;
+
105 BYTE *ptr = NULL;
106
107 // use my cached:
108 if (this->cachedRaw != INVALID_ADDR) {
-
109 ptr = m_Exe->getContentAt(this->cachedRaw, Executable::RAW, sizeof(IMAGE_BASE_RELOCATION));
+
109 ptr = m_Exe->getContentAt(this->cachedRaw, Executable::RAW, sizeof(IMAGE_BASE_RELOCATION));
110 return ptr;
111 }
112
113 // use previous cached to calculate my cached
-
114 size_t prevNum = this->entryNum - 1;
+
114 size_t prevNum = this->entryNum - 1;
115
-
116 RelocBlockWrapper *prevEntry = dynamic_cast<RelocBlockWrapper*> (this->parentDir->getEntryAt(prevNum));
-
117 if (prevEntry) {
-
118 offset_t prevRaw = prevEntry->cachedRaw;
+
116 RelocBlockWrapper *prevEntry = dynamic_cast<RelocBlockWrapper*> (this->parentDir->getEntryAt(prevNum));
+
117 if (prevEntry) {
+
118 offset_t prevRaw = prevEntry->cachedRaw;
119
-
120 IMAGE_BASE_RELOCATION* prevReloc = (IMAGE_BASE_RELOCATION*) prevEntry->getPtr();
-
121 raw = prevRaw + prevReloc->SizeOfBlock;
+
120 IMAGE_BASE_RELOCATION* prevReloc = (IMAGE_BASE_RELOCATION*) prevEntry->getPtr();
+
121 raw = prevRaw + prevReloc->SizeOfBlock;
122
-
123 if (prevRaw != INVALID_ADDR) {
-
124 ptr = m_Exe->getContentAt(raw, Executable::RAW, sizeof(IMAGE_BASE_RELOCATION));
+
123 if (prevRaw != INVALID_ADDR) {
+
124 ptr = m_Exe->getContentAt(raw, Executable::RAW, sizeof(IMAGE_BASE_RELOCATION));
125
-
126 if (ptr != NULL) {
-
127 this->cachedRaw = raw;
+
126 if (ptr != NULL) {
+
127 this->cachedRaw = raw;
128 return ptr;
129 }
130 }
131 }
132 // previous cached not avaliable, calculate...
-
133 offset_t firstRaw = this->getOffset(reloc);
-
134 offset_t blockSize = reloc->SizeOfBlock;
+
133 offset_t firstRaw = this->getOffset(reloc);
+
134 offset_t blockSize = reloc->SizeOfBlock;
135
-
136 raw = firstRaw;
-
137 ptr = (BYTE*) reloc;
+
136 raw = firstRaw;
+
137 ptr = (BYTE*) reloc;
138
-
139 for ( size_t i = 0; i < this->entryNum; i++) { //TODO: make caching
-
140 raw += blockSize;
+
139 for ( size_t i = 0; i < this->entryNum; i++) { //TODO: make caching
+
140 raw += blockSize;
141
-
142 ptr = m_Exe->getContentAt(raw, Executable::RAW, sizeof(IMAGE_BASE_RELOCATION));
-
143 if (!ptr) return NULL;
+
142 ptr = m_Exe->getContentAt(raw, Executable::RAW, sizeof(IMAGE_BASE_RELOCATION));
+
143 if (!ptr) return NULL;
144
-
145 reloc = (IMAGE_BASE_RELOCATION*) ptr;
-
146 blockSize = reloc->SizeOfBlock;
+
145 reloc = (IMAGE_BASE_RELOCATION*) ptr;
+
146 blockSize = reloc->SizeOfBlock;
147 }
148
-
149 this->cachedRaw = raw;
+
149 this->cachedRaw = raw;
150 return ptr;
151}
+
152
+
153bufsize_t RelocBlockWrapper::getSize()
154{
-
155 if (this->parentDir == NULL) return 0;
-
156 IMAGE_BASE_RELOCATION* reloc = (IMAGE_BASE_RELOCATION*) this->getPtr();
+
155 if (this->parentDir == NULL) return 0;
+
156 IMAGE_BASE_RELOCATION* reloc = (IMAGE_BASE_RELOCATION*) this->getPtr();
157 if (!reloc) return 0;
158
159 if (reloc->SizeOfBlock > 0) return reloc->SizeOfBlock;
160
-
161 return sizeof(IMAGE_BASE_RELOCATION);
+
161 return sizeof(IMAGE_BASE_RELOCATION);
162}
+
163
-
164void* RelocBlockWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
164void* RelocBlockWrapper::getFieldPtr(size_t fieldId, size_t subField)
165{
-
166 IMAGE_BASE_RELOCATION* reloc = (IMAGE_BASE_RELOCATION*) this->getPtr();
-
167 if (!reloc) return NULL;
+
166 IMAGE_BASE_RELOCATION* reloc = (IMAGE_BASE_RELOCATION*) this->getPtr();
+
167 if (!reloc) return NULL;
168
-
169 switch (fieldId) {
+
169 switch (fieldId) {
170 case PAGE_VA: return (void*) &reloc->VirtualAddress;
171 case BLOCK_SIZE : return (void*) &reloc->SizeOfBlock;
172 case ENTRIES_PTR :
173 {
-
174 BYTE *blockSizePtr = (BYTE*) &reloc->SizeOfBlock;
-
175 return blockSizePtr + sizeof(DWORD);
+
174 BYTE *blockSizePtr = (BYTE*) &reloc->SizeOfBlock;
+
175 return blockSizePtr + sizeof(DWORD);
176 }
177 }
178 return getPtr();
179}
+
180
-
181QString RelocBlockWrapper::getFieldName(size_t fieldId)
+
+
181QString RelocBlockWrapper::getFieldName(size_t fieldId)
182{
-
183 switch (fieldId) {
+
183 switch (fieldId) {
184 case BLOCK_SIZE : return "Block Size";
185 case PAGE_VA: return "Page RVA";
186 case ENTRIES_PTR: return "Entries";
187 }
188 return getName();
189}
+
190
-
191Executable::addr_type RelocBlockWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
191Executable::addr_type RelocBlockWrapper::containsAddrType(size_t fieldId, size_t subField)
192{
-
193 switch (fieldId) {
+
193 switch (fieldId) {
194 case PAGE_VA:
195 return Executable::RVA;
196 }
197 return Executable::NOT_ADDR;
198}
+
199
-
200WrappedValue::data_type RelocBlockWrapper::containsDataType(size_t fieldId, size_t subField)
+
+
200WrappedValue::data_type RelocBlockWrapper::containsDataType(size_t fieldId, size_t subField)
201{
-
202 if (fieldId == ENTRIES_PTR){
+
202 if (fieldId == ENTRIES_PTR){
203 return WrappedValue::COMPLEX;
204 }
205 return WrappedValue::INT;
206}
+
207
+
208void* RelocBlockWrapper::getEntriesPtr()
209{
-
210 void *entriesPtr = getFieldPtr(ENTRIES_PTR);
-
211 size_t entriesSize = getFieldSize(ENTRIES_PTR);
+
210 void *entriesPtr = getFieldPtr(ENTRIES_PTR);
+
211 size_t entriesSize = getFieldSize(ENTRIES_PTR);
212
-
213 if (entriesPtr == NULL || entriesSize == 0) return NULL;
+
213 if (entriesPtr == NULL || entriesSize == 0) return NULL;
214
-
215 offset_t entriesOffset = getFieldOffset(ENTRIES_PTR);
-
216 void *ptr = this->m_Exe->getContentAt(entriesOffset, Executable::RAW, sizeof(WORD));
+
215 offset_t entriesOffset = getFieldOffset(ENTRIES_PTR);
+
216 void *ptr = this->m_Exe->getContentAt(entriesOffset, Executable::RAW, sizeof(WORD));
217
218 return ptr;
219}
+
220
+
221size_t RelocBlockWrapper::maxEntriesNumInBlock()
222{
223 if (this->cachedMaxNum > 0) return this->cachedMaxNum;
224
-
225 IMAGE_BASE_RELOCATION* reloc = (IMAGE_BASE_RELOCATION*) this->getPtr();
+
225 IMAGE_BASE_RELOCATION* reloc = (IMAGE_BASE_RELOCATION*) this->getPtr();
226 if (!reloc) return 0;
227
-
228 bufsize_t entriesSize = getFieldSize(ENTRIES_PTR);
-
229 offset_t entriesOffset = getFieldOffset(ENTRIES_PTR);
+
228 bufsize_t entriesSize = getFieldSize(ENTRIES_PTR);
+
229 offset_t entriesOffset = getFieldOffset(ENTRIES_PTR);
230
231 offset_t fileSize = m_Exe->getRawSize();
-
232 if (entriesOffset + entriesSize > fileSize) {
-
233 entriesSize = fileSize - entriesOffset; // truncate to fileSize
+
232 if (entriesOffset + entriesSize > fileSize) {
+
233 entriesSize = fileSize - entriesOffset; // truncate to fileSize
234 }
235
-
236 void *ptr = this->m_Exe->getContentAt(entriesOffset, Executable::RAW, entriesSize);
+
236 void *ptr = this->m_Exe->getContentAt(entriesOffset, Executable::RAW, entriesSize);
237
-
238 bufsize_t entriesNum = 0;
+
238 bufsize_t entriesNum = 0;
239 if (ptr) {
-
240 entriesNum = entriesSize / sizeof(WORD); //sizeof(BASE_RELOCATION_ENTRY);
+
240 entriesNum = entriesSize / sizeof(WORD); //sizeof(BASE_RELOCATION_ENTRY);
241 }
-
242 this->cachedMaxNum = entriesNum;
-
243 return entriesNum;
+
242 this->cachedMaxNum = entriesNum;
+
243 return entriesNum;
244}
+
245//-------------------------------------------------------------------------------------------------
246
+
247void* RelocEntryWrapper::getPtr()
248{
-
249 if (this->parentDir == NULL) return NULL;
+
249 if (this->parentDir == NULL) return NULL;
250
-
251 size_t maxNum = this->parentDir->maxEntriesNumInBlock();
-
252 if (this->entryNum >= maxNum) return NULL;
+
251 size_t maxNum = this->parentDir->maxEntriesNumInBlock();
+
252 if (this->entryNum >= maxNum) return NULL;
253
-
254 WORD* entriesPtr = (WORD* ) parentDir->getEntriesPtr();
-
255 if (entriesPtr == NULL) return NULL;
+
254 WORD* entriesPtr = (WORD* ) parentDir->getEntriesPtr();
+
255 if (entriesPtr == NULL) return NULL;
256
-
257 WORD* ptr = &entriesPtr[this->entryNum];
+
257 WORD* ptr = &entriesPtr[this->entryNum];
258 return ptr;
259}
+
260
+
261bufsize_t RelocEntryWrapper::getSize()
262{
-
263 if (this->parentDir == NULL) return 0;
-
264 return sizeof(WORD);
+
263 if (this->parentDir == NULL) return 0;
+
264 return sizeof(WORD);
265}
+
266
-
267WORD RelocEntryWrapper::getType(WORD relocEntryVal)
+
+
267WORD RelocEntryWrapper::getType(WORD relocEntryVal)
268{
-
269 pe::BASE_RELOCATION_ENTRY* entry = (pe::BASE_RELOCATION_ENTRY*) &relocEntryVal;
-
270 return entry->Type;
+
269 pe::BASE_RELOCATION_ENTRY* entry = (pe::BASE_RELOCATION_ENTRY*) &relocEntryVal;
+
270 return entry->Type;
271}
+
272
-
273WORD RelocEntryWrapper::getDelta(WORD relocEntryVal)
+
+
273WORD RelocEntryWrapper::getDelta(WORD relocEntryVal)
274{
-
275 pe::BASE_RELOCATION_ENTRY* entry = (pe::BASE_RELOCATION_ENTRY*) &relocEntryVal;
-
276 return entry->Offset;
+
275 pe::BASE_RELOCATION_ENTRY* entry = (pe::BASE_RELOCATION_ENTRY*) &relocEntryVal;
+
276 return entry->Offset;
277}
+
278
-
279QString RelocEntryWrapper::translateType(WORD type)
+
+
279QString RelocEntryWrapper::translateType(WORD type)
280{
-
281 switch (type) {
+
281 switch (type) {
282 case 0 : return "Padding (skipped)";
283 case 1 : return "High WORD of 32-bit field";
284 case 2 : return "Low WORD of 32-bit field";
@@ -370,18 +406,22 @@ $(function() {
291 }
292 return "";
293}
+
294
-
295offset_t RelocEntryWrapper::deltaToRVA(WORD delta)
+
+
295offset_t RelocEntryWrapper::deltaToRVA(WORD delta)
296{
-
297 if (this->parentDir == NULL) return INVALID_ADDR;
+
297 if (this->parentDir == NULL) return INVALID_ADDR;
298
-
299 IMAGE_BASE_RELOCATION* reloc = parentDir->myReloc();
-
300 if (reloc == NULL) return INVALID_ADDR;
+
299 IMAGE_BASE_RELOCATION* reloc = parentDir->myReloc();
+
300 if (reloc == NULL) return INVALID_ADDR;
301
-
302 offset_t offset = static_cast<offset_t>(reloc->VirtualAddress + delta);
+
302 offset_t offset = static_cast<offset_t>(reloc->VirtualAddress + delta);
303 return offset;
304}
+
305
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -393,7 +433,6 @@ $(function() {
ExeElementWrapper::getFieldOffset
virtual offset_t getFieldOffset(size_t fieldId, size_t subField=FIELD_NONE)
Definition ExeElementWrapper.cpp:51
ExeElementWrapper::getOffset
virtual offset_t getOffset()
Definition ExeElementWrapper.cpp:39
ExeElementWrapper::m_Exe
Executable * m_Exe
Definition ExeElementWrapper.h:65
-
ExeElementWrapper::getNumValue
virtual uint64_t getNumValue(size_t fieldId, size_t subField, bool *isOk)
Definition ExeElementWrapper.cpp:73
ExeNodeWrapper::getEntryAt
virtual ExeNodeWrapper * getEntryAt(size_t fieldId)
Definition ExeNodeWrapper.cpp:15
ExeNodeWrapper::entries
std::vector< ExeNodeWrapper * > entries
Definition ExeNodeWrapper.h:56
ExeNodeWrapper::entryNum
size_t entryNum
Definition ExeNodeWrapper.h:54
@@ -435,7 +474,7 @@ $(function() { diff --git a/_reloc_dir_wrapper_8h.html b/_reloc_dir_wrapper_8h.html index 9d403710..eab0c588 100644 --- a/_reloc_dir_wrapper_8h.html +++ b/_reloc_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/RelocDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
6class RelocBlockWrapper;
7class RelocDirWrapper;
8
+
9class RelocDirWrapper : public DataDirEntryWrapper
10{
11public:
+
-
13 : DataDirEntryWrapper(pe, pe::DIR_BASERELOC), parsedSize(0) { wrap(); }
+
13 : DataDirEntryWrapper(pe, pe::DIR_BASERELOC), parsedSize(0) { wrap(); }
+
14
15 bool wrap();
16
17 virtual void* getPtr() { return reloc(); }
18
19 virtual bufsize_t getSize() { return parsedSize; }
-
20 virtual QString getName() { return "Relocation Dir."; }
+
20 virtual QString getName() { return "Relocation Dir."; }
21 virtual size_t getFieldsCount() { return entries.size(); }
22
-
23 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
-
24 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField) { return getSubfieldSize(fieldId, subField ); }
-
25 virtual QString getFieldName(size_t fieldId) { return "Relocation Block"; }
-
26 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField ); }
+
23 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
+
24 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField) { return getSubfieldSize(fieldId, subField ); }
+
25 virtual QString getFieldName(size_t fieldId) { return "Relocation Block"; }
+
26 virtual QString getFieldName(size_t fieldId, size_t subField) { return getSubfieldName(fieldId, subField ); }
27
28protected:
-
29 IMAGE_BASE_RELOCATION* reloc();
+
29 IMAGE_BASE_RELOCATION* reloc();
30
31private:
32 bufsize_t parsedSize;
33
34friend class RelocBlockWrapper;
35};
+
36
37
+
38class RelocBlockWrapper : public ExeNodeWrapper
39{
40public:
41 // fields :
+
@@ -125,28 +136,31 @@ $(function() {
48 };
+
49
-
50 RelocBlockWrapper(Executable *pe, RelocDirWrapper *parentDir, size_t entryNumber)
-
51 : ExeNodeWrapper(pe, parentDir, entryNumber), cachedRaw(INVALID_ADDR), cachedMaxNum(0) { this->parentDir = parentDir; wrap(); }
+
+ +
51 : ExeNodeWrapper(pe, parentDir, entryNumber), cachedRaw(INVALID_ADDR), cachedMaxNum(0) { this->parentDir = parentDir; wrap(); }
+
52
53 bool wrap();
54
55 // full structure boundaries
56 virtual void* getPtr();
57 virtual bufsize_t getSize();
-
58 virtual QString getName() { return "Relocation Block"; }
+
58 virtual QString getName() { return "Relocation Block"; }
59 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
60
61 // specific field boundaries
-
62 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
63 virtual QString getFieldName(size_t fieldId);
-
64 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField);
-
65 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField);
+
62 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
63 virtual QString getFieldName(size_t fieldId);
+
64 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField);
+
65 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField);
66
67 void* getEntriesPtr();
68 size_t maxEntriesNumInBlock();
69
-
70 IMAGE_BASE_RELOCATION* myReloc() { return (IMAGE_BASE_RELOCATION*) getPtr(); }
+
70 IMAGE_BASE_RELOCATION* myReloc() { return (IMAGE_BASE_RELOCATION*) getPtr(); }
71
72private:
73 offset_t cachedRaw;
@@ -157,41 +171,49 @@ $(function() {
78
79 size_t parsedSize;
80};
+
81
+
82class RelocEntryWrapper : public ExeNodeWrapper
83{
84public:
85 // fields :
+
86 enum FieldID {
90 };
+
91
-
92 RelocEntryWrapper(Executable* pe, RelocBlockWrapper *parentDir, size_t entryNumber)
-
93 : ExeNodeWrapper(pe, parentDir, entryNumber) { this->parentDir = parentDir; }
+
+ +
93 : ExeNodeWrapper(pe, parentDir, entryNumber) { this->parentDir = parentDir; }
+
94
95 // full structure boundaries
96 virtual void* getPtr();
97 virtual bufsize_t getSize();
-
98 virtual QString getName() { return "Type-Offset"; }
+
98 virtual QString getName() { return "Type-Offset"; }
99 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
100 virtual size_t getSubFieldsCount() { return 1; }
101
102 // specific field boundaries
-
103 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE) { return getPtr(); }
-
104 virtual QString getFieldName(size_t fieldId) { return getName(); }
-
105 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::NOT_ADDR; }
+
103 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE) { return getPtr(); }
+
104 virtual QString getFieldName(size_t fieldId) { return getName(); }
+
105 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::NOT_ADDR; }
106
-
107 offset_t deltaToRVA(WORD delta);
-
108 static WORD getType(WORD relocEntryVal);
-
109 static WORD getDelta(WORD relocEntryVal);
-
110 static QString translateType(WORD type);
+
107 offset_t deltaToRVA(WORD delta);
+
108 static WORD getType(WORD relocEntryVal);
+
109 static WORD getDelta(WORD relocEntryVal);
+
110 static QString translateType(WORD type);
111
112private:
113 RelocBlockWrapper* parentDir;
114};
+
115
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -261,7 +283,7 @@ $(function() { diff --git a/_resource_content_factory_8cpp.html b/_resource_content_factory_8cpp.html index 302d4e5c..baf13efc 100644 --- a/_resource_content_factory_8cpp.html +++ b/_resource_content_factory_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/rsrc/ResourceContentFactory.cpp File Reference @@ -30,7 +30,7 @@ - + +
2#include "pe/rsrc/ResourceStringsWrapper.h"
3#include "pe/rsrc/ResourceVersionWrapper.h"
4
-
5ResourceContentWrapper* ResourceContentFactory::makeResContentWrapper(pe::resource_type typeId, ResourceLeafWrapper* leaf)
+
+
5ResourceContentWrapper* ResourceContentFactory::makeResContentWrapper(pe::resource_type typeId, ResourceLeafWrapper* leaf)
6{
-
7 if (leaf == NULL) return NULL;
+
7 if (leaf == NULL) return NULL;
8
-
9 Executable *pe = leaf->getExe();
-
10 if (pe == NULL) return NULL;
+
9 Executable *pe = leaf->getExe();
+
10 if (pe == NULL) return NULL;
11
-
12 ResourceContentWrapper* cw = NULL;
+
12 ResourceContentWrapper* cw = NULL;
13
14 switch (typeId) {
15 case pe::RESTYPE_STRING:
-
16 return new ResourceStringsWrapper(pe, leaf);
+
16 return new ResourceStringsWrapper(pe, leaf);
17
18 case pe::RESTYPE_VERSION:
-
19 return new ResourceVersionWrapper(pe, leaf);
+
19 return new ResourceVersionWrapper(pe, leaf);
20
21 case pe::RESTYPE_MANIFEST:
-
22 return new ReourceManifestWrapper(pe, leaf);
+
22 return new ReourceManifestWrapper(pe, leaf);
23
24 case pe::RESTYPE_HTML:
-
25 return new ReourceHTMLWrapper(pe, leaf);
+
25 return new ReourceHTMLWrapper(pe, leaf);
26
27 default:
-
28 cw = new ResourceContentWrapper(pe, leaf, typeId);
+
28 cw = new ResourceContentWrapper(pe, leaf, typeId);
29 }
30 //printf("Making ResourceContentWrapper of type: %d\n", typeId);
31 //if (!isSupportedType(typeId))
-
32 return cw;
+
32 return cw;
33}
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
ResourceContentFactory.h
ResourceStringsWrapper.h
ResourceVersionWrapper.h
@@ -119,13 +127,12 @@ $(function() {
ResourceContentFactory::makeResContentWrapper
static ResourceContentWrapper * makeResContentWrapper(pe::resource_type typeId, ResourceLeafWrapper *leaf)
Definition ResourceContentFactory.cpp:5
ResourceContentWrapper
Definition ResourceContentWrapper.h:10
ResourceLeafWrapper
Definition ResourceLeafWrapper.h:10
-
ResourceLeafWrapper::getExe
Executable * getExe()
Definition ResourceLeafWrapper.h:42
ResourceStringsWrapper
Definition ResourceStringsWrapper.h:56
ResourceVersionWrapper
Definition ResourceVersionWrapper.h:8
diff --git a/_resource_content_factory_8h.html b/_resource_content_factory_8h.html index 2e41a571..c7cbe1a1 100644 --- a/_resource_content_factory_8h.html +++ b/_resource_content_factory_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/rsrc/ResourceContentFactory.h File Reference @@ -30,7 +30,7 @@ - + +
2
3#include "ResourceContentWrapper.h"
4
+
5class ResourceContentFactory
6{
7public:
-
8 static ResourceContentWrapper *makeResContentWrapper(pe::resource_type typeId, ResourceLeafWrapper* leaf);
+
8 static ResourceContentWrapper *makeResContentWrapper(pe::resource_type typeId, ResourceLeafWrapper* leaf);
9};
+
10
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
ResourceContentWrapper.h
ResourceContentFactory
Definition ResourceContentFactory.h:6
ResourceContentFactory::makeResContentWrapper
static ResourceContentWrapper * makeResContentWrapper(pe::resource_type typeId, ResourceLeafWrapper *leaf)
Definition ResourceContentFactory.cpp:5
@@ -95,7 +103,7 @@ $(function() { diff --git a/_resource_content_wrapper_8cpp.html b/_resource_content_wrapper_8cpp.html index d34751b7..1602d12c 100644 --- a/_resource_content_wrapper_8cpp.html +++ b/_resource_content_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/rsrc/ResourceContentWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
2
-
3QString ResourceContentWrapper::translateType(pe::resource_type type)
+
+
4{
-
5 switch (type) {
+
5 switch (type) {
6 case pe::RESTYPE_CURSOR : return "Cursor";
7 case pe::RESTYPE_FONT : return "Font";
8 case pe::RESTYPE_BITMAP : return "Bitmap";
@@ -107,65 +113,75 @@ $(function() {
28 }
29 return "UNKN";
30}
+
31
32//-------------------------------------------------------
33
+
35{
-
36 if (myLeaf == NULL) return NULL;
+
36 if (myLeaf == NULL) return NULL;
37
-
38 IMAGE_RESOURCE_DATA_ENTRY* entry = this->myLeaf->leafEntryPtr();
-
39 if (entry == NULL) return NULL;
+ +
39 if (entry == NULL) return NULL;
40
-
41 offset_t dataRva = static_cast<offset_t>(entry->OffsetToData);
-
42 bufsize_t dataSize = static_cast<bufsize_t>(entry->Size);
+
41 offset_t dataRva = static_cast<offset_t>(entry->OffsetToData);
+
42 bufsize_t dataSize = static_cast<bufsize_t>(entry->Size);
43
- -
46 offset_t dataOffset = m_Exe->toRaw(dataRva, aT);
-
47 if (dataOffset == INVALID_ADDR) return NULL;
+ + +
47 if (dataOffset == INVALID_ADDR) return NULL;
48
-
49 BYTE* b = m_Exe->getContentAt(dataRva, aT, dataSize);
-
50 return b;
+ +
50 return b;
51}
+
52
+
54{
-
55 if (myLeaf == NULL) {
-
56 printf("[ERR] MyLeaf is NULL\n");
+
55 if (myLeaf == NULL) {
+
56 printf("[ERR] MyLeaf is NULL\n");
57 return 0;
58 }
-
59 IMAGE_RESOURCE_DATA_ENTRY* entry = this->myLeaf->leafEntryPtr();
-
60 if (entry == NULL) {
-
61 printf("[ERR] Leaf ERR\n");
+ +
60 if (entry == NULL) {
+
61 printf("[ERR] Leaf ERR\n");
62 return 0;
63 }
-
64 DWORD size = entry->Size;
+
64 DWORD size = entry->Size;
65 return size;
66}
+
67
+
69{
-
70 if (myLeaf == NULL) return 0;
+
70 if (myLeaf == NULL) return 0;
71
-
72 IMAGE_RESOURCE_DATA_ENTRY* entry = this->myLeaf->leafEntryPtr();
-
73 if (entry == NULL) return 0;
+ +
73 if (entry == NULL) return 0;
74
-
75 uint64_t dataRva = entry->OffsetToData;
+
75 uint64_t dataRva = entry->OffsetToData;
- -
78 return m_Exe->toRaw(dataRva, aT);
+ +
78 return m_Exe->toRaw(dataRva, aT);
79}
+
80
- +
+
82{
-
83 if (myLeaf == NULL) return NULL;
+
83 if (myLeaf == NULL) return NULL;
84
-
86 BYTE* b = m_Exe->getContentAt(dataAddr, aT, dataSize);
-
87 return b;
+ +
87 return b;
88}
+
89
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -188,7 +204,7 @@ $(function() {
diff --git a/_resource_content_wrapper_8h.html b/_resource_content_wrapper_8h.html index 4e6101f7..a704d440 100644 --- a/_resource_content_wrapper_8h.html +++ b/_resource_content_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/rsrc/ResourceContentWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
6
7class ResourceContentFactory;
8
+
9class ResourceContentWrapper : public ExeNodeWrapper
10{
11public:
-
12 static QString translateType(pe::resource_type type);
+
12 static QString translateType(pe::resource_type type);
13
14 virtual ~ResourceContentWrapper() {}
15
@@ -101,52 +107,64 @@ $(function() {
22 virtual void* getPtr() { return getResContentPtr(); }
23 virtual bufsize_t getSize() { return getResContentSize(); }
24
-
25 virtual QString getName() { return translateType(this->typeId); }
+
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; }
+
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
34protected:
-
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);
+
38 BYTE* getContentAt(offset_t dataAddr, Executable::addr_type aT, bufsize_t dataSize);
39
40 ResourceLeafWrapper* myLeaf;
41 pe::resource_type typeId;
42
43friend class ResourceContentFactory;
44};
+
45
46
+
47class ReourceManifestWrapper : public ResourceContentWrapper
48{
49public:
-
50 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE) { return WrappedValue::STRING; }
+
50 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE) { return WrappedValue::STRING; }
51
52protected:
-
53 ReourceManifestWrapper(Executable *pe, ResourceLeafWrapper* v_leaf)
-
54 : ResourceContentWrapper(pe, v_leaf, pe::RESTYPE_MANIFEST) {}
+
+ + +
55
56friend class ResourceContentFactory;
57};
+
58
+
59class ReourceHTMLWrapper : public ResourceContentWrapper
60{
61public:
-
62 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE) { return WrappedValue::STRING; }
+
62 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE) { return WrappedValue::STRING; }
63
64protected:
-
65 ReourceHTMLWrapper(Executable *pe, ResourceLeafWrapper* v_leaf)
-
66 : ResourceContentWrapper(pe, v_leaf, pe::RESTYPE_HTML
+
+ +
67 ) {}
+
68
69friend class ResourceContentFactory;
70};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -186,7 +204,7 @@ $(function() { diff --git a/_resource_dir_wrapper_8cpp.html b/_resource_dir_wrapper_8cpp.html index 8d09b676..5625bc6a 100644 --- a/_resource_dir_wrapper_8cpp.html +++ b/_resource_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/ResourceDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
54*/
55//-------------
56
-
57IMAGE_RESOURCE_DIRECTORY* ResourceDirWrapper::mainResourceDir()
+
+
57IMAGE_RESOURCE_DIRECTORY* ResourceDirWrapper::mainResourceDir()
58{
-
59 offset_t rva = getDirEntryAddress();
+
59 offset_t rva = getDirEntryAddress();
60
-
61 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_RESOURCE_DIRECTORY));
-
62 return (IMAGE_RESOURCE_DIRECTORY*) ptr;
+
61 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, sizeof(IMAGE_RESOURCE_DIRECTORY));
+
62 return (IMAGE_RESOURCE_DIRECTORY*) ptr;
63}
+
64
-
65IMAGE_RESOURCE_DIRECTORY* ResourceDirWrapper::resourceDir()
+
65IMAGE_RESOURCE_DIRECTORY* ResourceDirWrapper::resourceDir()
66{
67 if (this->rawOff == 0) return mainResourceDir();
68
-
69 BYTE *ptr = m_Exe->getContentAt(this->rawOff, Executable::RAW, sizeof(IMAGE_RESOURCE_DIRECTORY));
-
70 return (IMAGE_RESOURCE_DIRECTORY*) ptr;
+
69 BYTE *ptr = m_Exe->getContentAt(this->rawOff, Executable::RAW, sizeof(IMAGE_RESOURCE_DIRECTORY));
+
70 return (IMAGE_RESOURCE_DIRECTORY*) ptr;
71}
72
+
73bool ResourceDirWrapper::wrap()
74{
75 clear();
-
76 if (this->topEntryID == TOP_ENTRY_ROOT && this->album != NULL) {
+
76 if (this->topEntryID == TOP_ENTRY_ROOT && this->album != NULL) {
77 this->album->clear();
78 }
-
79 IMAGE_RESOURCE_DIRECTORY* dir = resourceDir();
-
80 if (dir == NULL) return false;
-
81 size_t namesNum = dir->NumberOfNamedEntries;
-
82 size_t idsNum = dir->NumberOfIdEntries;
+
79 IMAGE_RESOURCE_DIRECTORY* dir = resourceDir();
+
80 if (dir == NULL) return false;
+
81 size_t namesNum = dir->NumberOfNamedEntries;
+
82 size_t idsNum = dir->NumberOfIdEntries;
83
-
84 size_t totalEntries = namesNum + idsNum;
-
85 for (size_t i = 0; i < totalEntries && i < MAX_ENTRIES; i++ ) {
+
84 size_t totalEntries = namesNum + idsNum;
+
85 for (size_t i = 0; i < totalEntries && i < MAX_ENTRIES; i++ ) {
86
-
87 long topDirId = (this->topEntryID != TOP_ENTRY_ROOT) ? this->topEntryID : long(i) ;
+
87 long topDirId = (this->topEntryID != TOP_ENTRY_ROOT) ? this->topEntryID : long(i) ;
88
89 //ResourceEntryWrapper(PEFile *pe, ResourceDirWrapper *parentDir, size_t entryNumber, long topEntryId, ResourcesAlbum *resAlbum)
-
90 ResourceEntryWrapper* entry = new ResourceEntryWrapper(this->m_PE, this, i, topDirId, this->album);
+
90 ResourceEntryWrapper* entry = new ResourceEntryWrapper(this->m_PE, this, i, topDirId, this->album);
91
-
92 if (entry->getPtr() == NULL) {
-
93 delete entry;
+
92 if (entry->getPtr() == NULL) {
+
93 delete entry;
94 break;
95 }
-
96 if (this->topEntryID == TOP_ENTRY_ROOT && this->album != NULL) {
-
97 pe::resource_type typeId = static_cast<pe::resource_type>(entry->getID());
-
98 this->album->mapIdToLeafType(i, typeId);
+
96 if (this->topEntryID == TOP_ENTRY_ROOT && this->album != NULL) {
+
97 pe::resource_type typeId = static_cast<pe::resource_type>(entry->getID());
+
98 this->album->mapIdToLeafType(i, typeId);
99 }
100 //this->parsedSize += val;
101 this->entries.push_back(entry);
@@ -182,53 +190,61 @@ $(function() {
103 //printf("Entries: %d\n", getEntriesCount());
104 return true;
105}
+
106
107
+
108bufsize_t ResourceDirWrapper::getSize()
109{
-
110 if (getPtr() == NULL) return 0;
-
111 bufsize_t size = sizeof(IMAGE_RESOURCE_DIRECTORY);
+
110 if (getPtr() == NULL) return 0;
+
111 bufsize_t size = sizeof(IMAGE_RESOURCE_DIRECTORY);
112 size += getEntriesAreaSize();
113 return size;
114}
+
115
-
116void* ResourceDirWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
116void* ResourceDirWrapper::getFieldPtr(size_t fId, size_t subField)
117{
-
118 IMAGE_RESOURCE_DIRECTORY* d = resourceDir();
-
119 if (d == NULL) return NULL;
+
118 IMAGE_RESOURCE_DIRECTORY* d = resourceDir();
+
119 if (d == NULL) return NULL;
120
-
121 switch (fId) {
-
122 case CHARACTERISTIC: return &d->Characteristics;
-
123 case TIMESTAMP: return &d->TimeDateStamp;
-
124 case MAJOR_VER: return &d->MajorVersion;
-
125 case MINOR_VER: return &d->MinorVersion;
-
126 case NAMED_ENTRIES_NUM : return &d->NumberOfNamedEntries;
-
127 case ID_ENTRIES_NUM : return &d->NumberOfIdEntries;
+
121 switch (fId) {
+
122 case CHARACTERISTIC: return &d->Characteristics;
+
123 case TIMESTAMP: return &d->TimeDateStamp;
+
124 case MAJOR_VER: return &d->MajorVersion;
+
125 case MINOR_VER: return &d->MinorVersion;
+
126 case NAMED_ENTRIES_NUM : return &d->NumberOfNamedEntries;
+
127 case ID_ENTRIES_NUM : return &d->NumberOfIdEntries;
128 }
129 return this->getPtr();
130}
+
131
-
132bufsize_t ResourceDirWrapper::getFieldSize(size_t fId, size_t subField)
+
+
132bufsize_t ResourceDirWrapper::getFieldSize(size_t fId, size_t subField)
133{
-
134 IMAGE_RESOURCE_DIRECTORY* d = resourceDir();
-
135 if (d == NULL) return 0;
+
134 IMAGE_RESOURCE_DIRECTORY* d = resourceDir();
+
135 if (d == NULL) return 0;
136
137 // calculate size of the last field separately:
-
138 if (fId == ID_ENTRIES_NUM) {
-
139 void *nextPtr = (&d->NumberOfIdEntries) + 1;
-
140 void *argPtr = &d->NumberOfIdEntries;
-
141 return (BYTE*) nextPtr - (BYTE*)argPtr;
+
138 if (fId == ID_ENTRIES_NUM) {
+
139 void *nextPtr = (&d->NumberOfIdEntries) + 1;
+
140 void *argPtr = &d->NumberOfIdEntries;
+
141 return (BYTE*) nextPtr - (BYTE*)argPtr;
142 }
-
143 return DataDirEntryWrapper::getFieldSize(fId, subField);
+
143 return DataDirEntryWrapper::getFieldSize(fId, subField);
144}
+
145
-
146QString ResourceDirWrapper::getFieldName(size_t fieldId)
+
+
146QString ResourceDirWrapper::getFieldName(size_t fieldId)
147{
-
148 switch (fieldId) {
+
148 switch (fieldId) {
149 case CHARACTERISTIC: return "Characteristics";
150 case TIMESTAMP: {
-
151 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
-
152 if (myPe && myPe->isReproBuild()) {
+
151 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
+
152 if (myPe && myPe->isReproBuild()) {
153 return "ReproChecksum";
154 }
155 return "TimeDateStamp";
@@ -240,71 +256,81 @@ $(function() {
161 }
162 return getName();
163}
+
164
165//-----------------------------------------------------------------
166
+
167void ResourceEntryWrapper::clear()
168{
169 delete childDir;
-
170 this->childDir = NULL;
+
170 this->childDir = NULL;
171 //---
172 delete childLeaf;
-
173 this->childLeaf = NULL;
+
173 this->childLeaf = NULL;
174}
+
175
+
176bool ResourceEntryWrapper::wrap()
177{
178 clear();
179 //---
-
180 offset_t childRaw = getChildAddress();
-
181 if (childRaw == 0 || childRaw == INVALID_ADDR) return false;
+
180 offset_t childRaw = getChildAddress();
+
181 if (childRaw == 0 || childRaw == INVALID_ADDR) return false;
182
183 if (this->isDir()) {
-
184 long depth = this->parentDir->getDepth() + 1;
-
185 if (depth >= MAX_DEPTH) return false;
-
186 this->childDir = new ResourceDirWrapper(this->m_PE, this->album, childRaw, depth, topEntryID);
+
184 long depth = this->parentDir->getDepth() + 1;
+
185 if (depth >= MAX_DEPTH) return false;
+
186 this->childDir = new ResourceDirWrapper(this->m_PE, this->album, childRaw, depth, topEntryID);
187 } else {
-
188 this->childLeaf = new ResourceLeafWrapper(m_Exe, childRaw, topEntryID);
-
189 if (this->album != NULL) {
+
188 this->childLeaf = new ResourceLeafWrapper(m_Exe, childRaw, topEntryID);
+
189 if (this->album != NULL) {
190 album->putLeaf(childLeaf, topEntryID);
191 }
192 }
193 return true;
194}
+
195
196
-
197IMAGE_RESOURCE_DIRECTORY_ENTRY* ResourceEntryWrapper::getEntryPtr()
+
+
197IMAGE_RESOURCE_DIRECTORY_ENTRY* ResourceEntryWrapper::getEntryPtr()
198{
-
199 if (this->parentDir == NULL) return NULL;
-
200 uint64_t offset = parentDir->getFieldOffset(ResourceDirWrapper::ID_ENTRIES_NUM);
-
201 if (offset == INVALID_ADDR) return NULL;
+
199 if (this->parentDir == NULL) return NULL;
+
200 uint64_t offset = parentDir->getFieldOffset(ResourceDirWrapper::ID_ENTRIES_NUM);
+
201 if (offset == INVALID_ADDR) return NULL;
202
-
203 size_t lastSize = parentDir->getFieldSize(ResourceDirWrapper::ID_ENTRIES_NUM, FIELD_NONE);
-
204 offset += lastSize;
-
205 offset += (this->entryNum * sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY));
+
203 size_t lastSize = parentDir->getFieldSize(ResourceDirWrapper::ID_ENTRIES_NUM, FIELD_NONE);
+
204 offset += lastSize;
+
205 offset += (this->entryNum * sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY));
206
-
207 void *ptr = m_Exe->getContentAt(offset, Executable::RAW, sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY));
-
208 return (IMAGE_RESOURCE_DIRECTORY_ENTRY*) ptr;
+
207 void *ptr = m_Exe->getContentAt(offset, Executable::RAW, sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY));
+
208 return (IMAGE_RESOURCE_DIRECTORY_ENTRY*) ptr;
209}
+
210
211//IMAGE_RESOURCE_DIRECTORY_ENTRY
-
212void* ResourceEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
212void* ResourceEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
213{
-
214 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
215 if (entry == NULL) return NULL;
+
214 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
+
215 if (entry == NULL) return NULL;
216
-
217 switch (fieldId) {
+
217 switch (fieldId) {
218 case NAME_ID_ADDR:
-
219 return &entry->Name;
+
219 return &entry->Name;
220 case OFFSET_TO_DATA:
-
221 return &entry->OffsetToData;
+
221 return &entry->OffsetToData;
222 }
223 return getPtr();
224}
+
225
-
226QString ResourceEntryWrapper::getFieldName(size_t fieldId)
+
+
226QString ResourceEntryWrapper::getFieldName(size_t fieldId)
227{
-
228 switch (fieldId) {
+
228 switch (fieldId) {
229 case NAME_ID_ADDR:
230 return(isByName()) ? "Name": "ID";
231 case OFFSET_TO_DATA:
@@ -312,47 +338,57 @@ $(function() {
233 }
234 return getName();
235}
+
236
+
237bool ResourceEntryWrapper::isByName()
238{
-
239 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
240 if (entry == NULL) return false;
-
241 if (entry->NameIsString == 1) return true;
+
239 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
+
240 if (entry == NULL) return false;
+
241 if (entry->NameIsString == 1) return true;
242 return false;
243}
+
244
+
245bool ResourceEntryWrapper::isDir()
246{
-
247 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
248 if (entry == NULL) return false;
-
249 if (entry->DataIsDirectory == 1) return true;
+
247 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
+
248 if (entry == NULL) return false;
+
249 if (entry->DataIsDirectory == 1) return true;
250 return false;
251}
+
252
+
253offset_t ResourceEntryWrapper::getNameOffset()
254{
-
255 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
256 if (entry == NULL) return INVALID_ADDR;
+
255 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
+
256 if (entry == NULL) return INVALID_ADDR;
257
-
258 if (this->parentDir == NULL) return INVALID_ADDR;
-
259 offset_t fOff = this->parentDir->getOffset(this->parentDir->getPtr());
-
260 if (fOff == INVALID_ADDR) return INVALID_ADDR;
+
258 if (this->parentDir == NULL) return INVALID_ADDR;
+
259 offset_t fOff = this->parentDir->getOffset(this->parentDir->getPtr());
+
260 if (fOff == INVALID_ADDR) return INVALID_ADDR;
261
-
262 if (entry->NameIsString != 1) return INVALID_ADDR;
-
263 return fOff + entry->NameOffset;
+
262 if (entry->NameIsString != 1) return INVALID_ADDR;
+
263 return fOff + entry->NameOffset;
264}
+
265
-
266IMAGE_RESOURCE_DIRECTORY_STRING* ResourceEntryWrapper::getNameStr()
+
+
266IMAGE_RESOURCE_DIRECTORY_STRING* ResourceEntryWrapper::getNameStr()
267{
-
268 offset_t nameOff = getNameOffset();
-
269 if (nameOff == INVALID_ADDR) return NULL;
+
268 offset_t nameOff = getNameOffset();
+
269 if (nameOff == INVALID_ADDR) return NULL;
270
-
271 const size_t BASIC_SIZE = sizeof(IMAGE_RESOURCE_DIRECTORY_STRING);
-
272 IMAGE_RESOURCE_DIRECTORY_STRING *ptr = (IMAGE_RESOURCE_DIRECTORY_STRING*) this->m_Exe->getContentAt(nameOff, Executable::RAW, BASIC_SIZE);
+
271 const size_t BASIC_SIZE = sizeof(IMAGE_RESOURCE_DIRECTORY_STRING);
+
272 IMAGE_RESOURCE_DIRECTORY_STRING *ptr = (IMAGE_RESOURCE_DIRECTORY_STRING*) this->m_Exe->getContentAt(nameOff, Executable::RAW, BASIC_SIZE);
273 return ptr;
274}
+
275
-
276QString ResourceEntryWrapper::translateType(WORD id)
+
+
276QString ResourceEntryWrapper::translateType(WORD id)
277{
278 switch (id) {
279 case pe::RESTYPE_CURSOR : return "Cursor";
@@ -380,68 +416,80 @@ $(function() {
301 }
302 return "";
303}
+
304
-
305WORD ResourceEntryWrapper::getID()
+
+
305WORD ResourceEntryWrapper::getID()
306{
-
307 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
308 if (entry == NULL) return 0;
+
307 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
+
308 if (entry == NULL) return 0;
309 if (this->isByName()) return 0;
310
311 return entry->Id;
312}
+
313
+
314offset_t ResourceEntryWrapper::getChildOffsetToDirectory()
315{
-
316 const IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
317 if (!entry) {
+
316 const IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
+
317 if (!entry) {
318 return INVALID_ADDR;
319 }
-
320 if (entry->DataIsDirectory) {
-
321 return entry->OffsetToDirectory;
+
320 if (entry->DataIsDirectory) {
+
321 return entry->OffsetToDirectory;
322 }
-
323 return entry->OffsetToData;
+
323 return entry->OffsetToData;
324}
+
325
+
326offset_t ResourceEntryWrapper::getChildAddress()
327{
328 if (!this->parentDir) return INVALID_ADDR;
329
-
330 const offset_t fOff = this->parentDir->getOffset(this->parentDir->mainResourceDir());
-
331 if (fOff == INVALID_ADDR) return INVALID_ADDR;
+
330 const offset_t fOff = this->parentDir->getOffset(this->parentDir->mainResourceDir());
+
331 if (fOff == INVALID_ADDR) return INVALID_ADDR;
332
-
333 const offset_t childOff = getChildOffsetToDirectory();
-
334 if (childOff == INVALID_ADDR) return INVALID_ADDR;
+
333 const offset_t childOff = getChildOffsetToDirectory();
+
334 if (childOff == INVALID_ADDR) return INVALID_ADDR;
335
-
336 return fOff + childOff;
+
336 return fOff + childOff;
337}
+
338
339//-------------------------------------------------------------------------
340
-
341IMAGE_RESOURCE_DATA_ENTRY* ResourceLeafWrapper::leafEntryPtr()
+
+
341IMAGE_RESOURCE_DATA_ENTRY* ResourceLeafWrapper::leafEntryPtr()
342{
-
343 if (this->offset == 0 || this->offset == INVALID_ADDR) return NULL;
+
343 if (this->offset == 0 || this->offset == INVALID_ADDR) return NULL;
344
-
345 IMAGE_RESOURCE_DATA_ENTRY* leaf = (IMAGE_RESOURCE_DATA_ENTRY*) this->m_Exe->getContentAt(this->offset, Executable::RAW, sizeof(IMAGE_RESOURCE_DATA_ENTRY));
-
346 return leaf;
+
345 IMAGE_RESOURCE_DATA_ENTRY* leaf = (IMAGE_RESOURCE_DATA_ENTRY*) this->m_Exe->getContentAt(this->offset, Executable::RAW, sizeof(IMAGE_RESOURCE_DATA_ENTRY));
+
346 return leaf;
347}
+
348
-
349void* ResourceLeafWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
349void* ResourceLeafWrapper::getFieldPtr(size_t fieldId, size_t subField)
350{
-
351 IMAGE_RESOURCE_DATA_ENTRY* leaf = leafEntryPtr();
-
352 if (!leaf) return NULL;
+
351 IMAGE_RESOURCE_DATA_ENTRY* leaf = leafEntryPtr();
+
352 if (!leaf) return NULL;
353
-
354 switch (fieldId) {
-
355 case OFFSET_TO_DATA: return &leaf->OffsetToData;
-
356 case DATA_SIZE: return &leaf->Size;
-
357 case CODE_PAGE: return &leaf->CodePage;
-
358 case RESERVED: return &leaf->Reserved;
+
354 switch (fieldId) {
+
355 case OFFSET_TO_DATA: return &leaf->OffsetToData;
+
356 case DATA_SIZE: return &leaf->Size;
+
357 case CODE_PAGE: return &leaf->CodePage;
+
358 case RESERVED: return &leaf->Reserved;
359 }
-
360 return NULL;
+
360 return NULL;
361}
+
362
-
363QString ResourceLeafWrapper::getFieldName(size_t fieldId)
+
+
363QString ResourceLeafWrapper::getFieldName(size_t fieldId)
364{
-
365 switch (fieldId) {
+
365 switch (fieldId) {
366 case OFFSET_TO_DATA: return "OffsetToData";
367 case DATA_SIZE: return "DataSize";
368 case CODE_PAGE: return "CodePage";
@@ -449,8 +497,10 @@ $(function() {
370 }
371 return "";
372}
+
373
374
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -524,7 +574,7 @@ $(function() { diff --git a/_resource_dir_wrapper_8h.html b/_resource_dir_wrapper_8h.html index 5284fca6..474539c4 100644 --- a/_resource_dir_wrapper_8h.html +++ b/_resource_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/ResourceDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
10#include <vector>
11
12
+
13class ResourceDirWrapper : public DataDirEntryWrapper
14{
15public:
16
+
@@ -103,92 +110,103 @@ $(function() {
26 };
+
27
-
28 ResourceDirWrapper(PEFile* pe, ResourcesAlbum *resAlbum = NULL, offset_t rawOffset = 0, long depth = 0, long topEntryId = TOP_ENTRY_ROOT)
-
29 : DataDirEntryWrapper(pe, pe::DIR_RESOURCE),
-
30 rawOff(rawOffset), dirDepth(depth), album(resAlbum), topEntryID(topEntryId)
+
+ + +
30 rawOff(rawOffset), dirDepth(depth), album(resAlbum), topEntryID(topEntryId)
31 {
32 wrap();
33 }
+
34
35 bool wrap();
36
37 virtual void* getPtr() { return resourceDir(); }
38 virtual bufsize_t getSize();
39
-
40 virtual QString getName() { return "Resources"; }
+
40 virtual QString getName() { return "Resources"; }
41 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
42 virtual size_t getSubFieldsCount() { return 1; }
43
-
44 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
45 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField);
-
46 virtual QString getFieldName(size_t fieldId);
+
44 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
45 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField);
+
46 virtual QString getFieldName(size_t fieldId);
47
+
49 {
-
50 return static_cast<bufsize_t>(this->getEntriesCount()) * sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY);
+
50 return static_cast<bufsize_t>(this->getEntriesCount()) * sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY);
51 }
+
52
53 long getDepth() { return this->dirDepth; }
54
-
55 IMAGE_RESOURCE_DIRECTORY* mainResourceDir();
+
55 IMAGE_RESOURCE_DIRECTORY* mainResourceDir();
56 ResourcesAlbum* getAlbumPtr() { return album; }
57
58private:
-
59 IMAGE_RESOURCE_DIRECTORY* resourceDir();
+
59 IMAGE_RESOURCE_DIRECTORY* resourceDir();
60 offset_t rawOff;
61 long dirDepth;
62 ResourcesAlbum *album;
63 long topEntryID;
64};
+
65
+
66class ResourceEntryWrapper : public PENodeWrapper
67{
68public:
69 // fields :
+
70 enum FieldID {
75 };
+
76
-
77 static QString translateType(WORD id);
+
77 static QString translateType(WORD id);
78
-
79 ResourceEntryWrapper(PEFile *pe, ResourceDirWrapper *parentDir, size_t entryNumber, long topEntryId, ResourcesAlbum *resAlbum)
-
80 : PENodeWrapper(pe, parentDir, entryNumber), topEntryID(topEntryId), album(resAlbum), childDir(NULL), childLeaf(NULL)
+
+ +
80 : PENodeWrapper(pe, parentDir, entryNumber), topEntryID(topEntryId), album(resAlbum), childDir(NULL), childLeaf(NULL)
81 {
82 this->parentDir = parentDir;
83 wrap();
84 }
+
85
86 virtual ~ResourceEntryWrapper() { clear(); }
87
88 bool wrap();
89 // full structure boundaries
90 virtual void* getPtr() { return getEntryPtr(); }
-
91 virtual bufsize_t getSize() { return sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY); }
+
91 virtual bufsize_t getSize() { return sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY); }
92
-
93 virtual QString getName() { return "Resource entry: "+ translateType(getID());}
+
93 virtual QString getName() { return "Resource entry: "+ translateType(getID());}
94 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
95 virtual size_t getSubFieldsCount() { return 1; }
96
97 // specific field boundaries
-
98 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
99 virtual QString getFieldName(size_t fieldId);
-
100 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::NOT_ADDR; }
+
98 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
99 virtual QString getFieldName(size_t fieldId);
+
100 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::NOT_ADDR; }
101
102 bool isByName();
103 bool isDir();
104
-
105 WORD getID();
+
105 WORD getID();
106 offset_t getChildOffsetToDirectory(); //relative offset!
107 offset_t getNameOffset();
108
-
109 IMAGE_RESOURCE_DIRECTORY_STRING* getNameStr();
+
109 IMAGE_RESOURCE_DIRECTORY_STRING* getNameStr();
110 offset_t getChildAddress();
111
-
112 IMAGE_RESOURCE_DIRECTORY_ENTRY *getEntryPtr();
+
112 IMAGE_RESOURCE_DIRECTORY_ENTRY *getEntryPtr();
113 ResourcesAlbum* getAlbumPtr() { return album; }
114 long getTopEntryID() { return topEntryID; }
115
@@ -202,7 +220,9 @@ $(function() {
123 ResourceDirWrapper* parentDir, *childDir;
124 ResourceLeafWrapper *childLeaf;
125};
+
126
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
DataDirEntryWrapper.h
@@ -275,7 +295,7 @@ $(function() { diff --git a/_resource_leaf_wrapper_8h.html b/_resource_leaf_wrapper_8h.html index 9a97d7c4..7c8507fb 100644 --- a/_resource_leaf_wrapper_8h.html +++ b/_resource_leaf_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/ResourceLeafWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
6#include <vector>
7#include "pe_formats.h"
8
+
9class ResourceLeafWrapper : public ExeNodeWrapper
10{
11 public:
12 // fields :
+
13 enum FieldID {
@@ -97,26 +104,31 @@ $(function() {
20 };
+
21
-
22 ResourceLeafWrapper(Executable *pe, offset_t rawOffset, long topEntryId)
-
23 : ExeNodeWrapper(pe), offset(rawOffset), topEntryID(topEntryId){ }
+
+ + +
24
25 virtual ~ResourceLeafWrapper() { }
26
27 virtual void* getPtr() { return leafEntryPtr(); }
-
28 virtual bufsize_t getSize() { return sizeof(IMAGE_RESOURCE_DATA_ENTRY); }
+
28 virtual bufsize_t getSize() { return sizeof(IMAGE_RESOURCE_DATA_ENTRY); }
29
-
30 virtual QString getName() { return "Resource Data"; }
+
30 virtual QString getName() { return "Resource Data"; }
31 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
32
-
33 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
34 virtual QString getFieldName(size_t fieldId);
-
35 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField)
+
33 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
34 virtual QString getFieldName(size_t fieldId);
+
+
36 {
- +
38 }
+
39
-
40 IMAGE_RESOURCE_DATA_ENTRY *leafEntryPtr();
+
40 IMAGE_RESOURCE_DATA_ENTRY *leafEntryPtr();
41
42 Executable* getExe() { return this->m_Exe; }
43
@@ -125,7 +137,9 @@ $(function() {
46 long topEntryID;
47 //ResourceEntryWrapper* parentEntry;
48};
+
49
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -159,7 +173,7 @@ $(function() { diff --git a/_resource_strings_wrapper_8cpp.html b/_resource_strings_wrapper_8cpp.html index 7f776e87..a8fa0dac 100644 --- a/_resource_strings_wrapper_8cpp.html +++ b/_resource_strings_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/rsrc/ResourceStringsWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
2
+
4{
5 return this->sizePtr;
6}
+
7
+
-
9 WORD* len = this->sizePtr;
-
10 if (len == NULL) return 0;
-
11 return (*len) * sizeof(WORD) + sizeof(WORD);
+
9 WORD* len = this->sizePtr;
+
10 if (len == NULL) return 0;
+
11 return (*len) * sizeof(WORD) + sizeof(WORD);
12}
+
13
- +
+
15{
16 return getQString();
17}
+
18
19/* specific field boundatries */
-
20void* ResString::getFieldPtr(size_t fId, size_t subField)
+
+
20void* ResString::getFieldPtr(size_t fId, size_t subField)
21{
-
22 switch (fId) {
+
22 switch (fId) {
23 case STR_LEN: return this->sizePtr;
24 case WSTRING:
25 {
-
26 bufsize_t size = (sizePtr == NULL) ? 0 : static_cast<bufsize_t>(*sizePtr);
-
27 WORD *content = (WORD*) this->m_Exe->getContentAt(offset,Executable::RAW, size);
+
26 bufsize_t size = (sizePtr == NULL) ? 0 : static_cast<bufsize_t>(*sizePtr);
+
27 WORD *content = (WORD*) this->m_Exe->getContentAt(offset,Executable::RAW, size);
28 return content;
29 }
30 }
31 return this->getPtr();
32}
+
33
-
34QString ResString::getFieldName(size_t fId)
+
+
35{
36 switch (fId) {
37 case STR_LEN: return "Length";
@@ -118,82 +132,94 @@ $(function() {
39 }
40 return "";
41}
+
42
-
43bufsize_t ResString::getFieldSize(size_t fId, size_t subField)
+
+
44{
-
45 switch (fId) {
-
46 case STR_LEN: return sizeof(WORD);
+
45 switch (fId) {
+
46 case STR_LEN: return sizeof(WORD);
47 case WSTRING:
48 {
-
49 WORD* len = this->sizePtr;
-
50 if (len == NULL) return 0;
-
51 return (*len) * sizeof(WORD);
+
49 WORD* len = this->sizePtr;
+
50 if (len == NULL) return 0;
+
51 return (*len) * sizeof(WORD);
52 }
53 }
54 return 0;
55}
+
56//------------------------------------------------------
57
+
59{
60 clear();
61 this->parsedSize = 0;
62
-
63 BYTE *c = static_cast<BYTE*>(this->getPtr());
+
63 BYTE *c = static_cast<BYTE*>(this->getPtr());
64 if (!c) {
65 return false;
66 }
-
67 size_t maxSize = this->getSize();
+
67 size_t maxSize = this->getSize();
68 //printf("maxSize = %x\n", maxSize);
-
69 offset_t startRaw = getContentRaw();
-
70 offset_t cRaw = startRaw;
+ +
71
-
72 while (parsedSize < maxSize) {
+
72 while (parsedSize < maxSize) {
73
-
74 WORD* stringSize = (WORD*) this->getContentAt(cRaw, Executable::RAW, sizeof(WORD));
-
75 if (stringSize == NULL){
-
76 printf("Cannot fetch the string size!\n");
+
74 WORD* stringSize = (WORD*) this->getContentAt(cRaw, Executable::RAW, sizeof(WORD));
+
75 if (stringSize == NULL){
+
76 printf("Cannot fetch the string size!\n");
77 break;
78 }
-
79 this->parsedSize += sizeof(WORD);
-
80 cRaw += sizeof(WORD);
+
79 this->parsedSize += sizeof(WORD);
+
80 cRaw += sizeof(WORD);
81
-
82 size_t wStrSize = (*stringSize);
-
83 if (wStrSize == 0) {
+
82 size_t wStrSize = (*stringSize);
+
83 if (wStrSize == 0) {
84 continue;
85 }
-
86 bufsize_t totalStrSize = wStrSize * sizeof(WORD);
+
87
-
88 WORD* uStringPtr = (WORD*) this->getContentAt(cRaw, Executable::RAW, totalStrSize);
-
89 if (uStringPtr == NULL) break;
+ +
89 if (uStringPtr == NULL) break;
90
-
91 Executable *exe = this->myLeaf->getExe();
-
92 ResString *rStr = new ResString(uStringPtr, stringSize, cRaw, exe);
+
91 Executable *exe = this->myLeaf->getExe();
+
93 this->entries.push_back(rStr);
94
-
95 this->parsedSize += totalStrSize;
-
96 cRaw += totalStrSize;
+
95 this->parsedSize += totalStrSize;
+
96 cRaw += totalStrSize;
97 }
98 return true;
99}
+
100
- +
+
102{
103 return "ResourceString";
104}
+
105
-
106void* ResourceStringsWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
107{
-
108 if (fId >= this->entries.size()) return NULL;
-
109 return this->entries[fId]->getFieldPtr(subField);
+
108 if (fId >= this->entries.size()) return NULL;
+
109 return this->entries[fId]->getFieldPtr(subField);
110}
+
111
- +
+
113{
-
114 if (fId >= this->entries.size()) return 0;
-
115 return this->entries[fId]->getFieldSize(subField);
+
114 if (fId >= this->entries.size()) return 0;
+
115 return this->entries[fId]->getFieldSize(subField);
116}
+
117
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
uint64_t offset_t
@@ -229,7 +255,7 @@ $(function() {
diff --git a/_resource_strings_wrapper_8h.html b/_resource_strings_wrapper_8h.html index 7a9a6553..da1f5fc0 100644 --- a/_resource_strings_wrapper_8h.html +++ b/_resource_strings_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/rsrc/ResourceStringsWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
4
5#include <vector>
6
+
7class ResString : public ExeNodeWrapper {
8public:
+
14 };
+
15
-
16 ResString(WORD *v_ptr, WORD *v_sizePtr, offset_t v_offset, Executable* v_exe)
-
17 : ExeNodeWrapper(v_exe), ptr(v_ptr), sizePtr(v_sizePtr), offset(v_offset) { }
+
+ + +
18
19 /* full structure boundatries */
20 virtual void* getPtr();
21 virtual bufsize_t getSize();
-
22 virtual QString getName();
+
22 virtual QString getName();
23 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
24 virtual size_t getSubFieldsCount() { return 1; }
25
26 /* specific field boundatries */
-
27 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
28 virtual QString getFieldName(size_t fieldId);
-
29 virtual bufsize_t getFieldSize(size_t fId, size_t subField);
+
27 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
28 virtual QString getFieldName(size_t fieldId);
+
29 virtual bufsize_t getFieldSize(size_t fId, size_t subField);
30
-
31 QString getQString()
+
+
32 {
-
33 if (this->m_Exe == NULL) return ""; //ERROR
-
34 WORD* entries = ptr;
+
33 if (this->m_Exe == NULL) return ""; //ERROR
+
34 WORD* entries = ptr;
35 int size = *(sizePtr);
-
36 WORD *content = (WORD*) this->m_Exe->getContentAt(offset,Executable::RAW, size);
-
37 if (content == NULL) return "";
+
36 WORD *content = (WORD*) this->m_Exe->getContentAt(offset,Executable::RAW, size);
+
37 if (content == NULL) return "";
38
39 return QString::fromUtf16(content, size);
40 }
+
41
-
42 virtual size_t getStrLen() { return (sizePtr == NULL) ? 0 : static_cast<size_t>(*sizePtr); }
-
43 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField)
+
42 virtual size_t getStrLen() { return (sizePtr == NULL) ? 0 : static_cast<size_t>(*sizePtr); }
+
+
44 {
-
45 if (fieldId == WSTRING) {
+
45 if (fieldId == WSTRING) {
47 }
48 return WrappedValue::INT;
49 }
-
50 WORD *ptr;
-
51 WORD *sizePtr;
+
+
50 WORD *ptr;
+
51 WORD *sizePtr;
52 offset_t offset;
53};
+
54
+
55class ResourceStringsWrapper : public ResourceContentWrapper
56{
57public:
+
63 };
+
64
65 /* specific field boundatries */
-
66 virtual QString getFieldName(size_t fieldId);
-
67 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
68 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
+
66 virtual QString getFieldName(size_t fieldId);
+
67 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
68 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
69
70 virtual size_t getFieldsCount() { return entries.size(); }
71
-
72 ResString* getResStringAt(size_t index)
+
+
73 {
-
74 if (index > entries.size()) return NULL;
-
75 ResString* str = dynamic_cast<ResString*>(entries[index]);
-
76 return str;
+
74 if (index > entries.size()) return NULL;
+
75 ResString* str = dynamic_cast<ResString*>(entries[index]);
+
76 return str;
77 }
+
78
-
79 QString getQStringAt(size_t index)
+
+
80 {
-
81 ResString* str = getResStringAt(index);
-
82 return str->getQString();
+ +
82 return str->getQString();
83 }
+
84
85 size_t getResStringsCount() { return entries.size(); }
86
-
87 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField)
+
+
88 {
-
89 if (fieldId == WSTRING) {
+
89 if (fieldId == WSTRING) {
91 }
92 return WrappedValue::INT;
93 }
+
94
95protected:
-
96 ResourceStringsWrapper(Executable *pe, ResourceLeafWrapper* v_leaf)
-
97 : ResourceContentWrapper(pe, v_leaf, pe::RESTYPE_STRING) { wrap(); }
+
+ + +
98
99 bool wrap();
100
@@ -182,7 +208,9 @@ $(function() {
103friend class ResourceContentFactory;
104friend class ResourcesAlbum;
105};
+
106
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -241,7 +269,7 @@ $(function() { diff --git a/_resource_version_wrapper_8cpp.html b/_resource_version_wrapper_8cpp.html index 8f1c09c5..993714a6 100644 --- a/_resource_version_wrapper_8cpp.html +++ b/_resource_version_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/rsrc/ResourceVersionWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
2
- -
4 : ResourceContentWrapper(pe, v_leaf, pe::RESTYPE_VERSION)
+
+ +
5{
6//TEST
7/* printf("Version: %s\n", getVersionText().toStdString().c_str());
@@ -110,22 +116,26 @@ $(function() {
31 }
32 */
34}
+
35
+
37{
38 void *ptr = this->getResContentPtr();
-
39 if (ptr == NULL) return NULL;
+
39 if (ptr == NULL) return NULL;
40
41 size_t size = this->getResContentSize();
-
42 if (size < sizeof(pe::version_info)) return NULL;
+
42 if (size < sizeof(pe::version_info)) return NULL;
43
-
44 pe::version_info* info = (pe::version_info*) ptr;
-
45 return info;
+
44 pe::version_info* info = (pe::version_info*) ptr;
+
45 return info;
46}
+
47
- +
+
49{
-
50 switch (fId) {
+
50 switch (fId) {
51 case STRUCT_LEN: return "Length of Structure";
52 case VAL_LEN: return "Length of Value";
53 case STRUCT_TYPE: return "Type of Structure";
@@ -151,14 +161,16 @@ $(function() {
73 }
74 return "";
75}
+
76
-
77void* ResourceVersionWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
78{
79 pe::version_info* ptr = getVersionInfo();
80
-
81 if (ptr == NULL) return NULL;
+
81 if (ptr == NULL) return NULL;
82
-
83 switch (fId) {
+
83 switch (fId) {
84 case STRUCT_LEN: return &(ptr->length);
85 case VAL_LEN: return &(ptr->valueLength);
86 case STRUCT_TYPE: return &(ptr->type);
@@ -185,14 +197,18 @@ $(function() {
107 }
108 return ptr;
109}
+
110
- +
+
112{
-
113 if (fieldId == INFO) {
+
113 if (fieldId == INFO) {
115 }
116 return WrappedValue::INT;
117}
+
+
INT_TYPE _getNumValue(void *ptr)
@@ -228,7 +244,7 @@ $(function() {
diff --git a/_resource_version_wrapper_8h.html b/_resource_version_wrapper_8h.html index c41253a6..0779c1de 100644 --- a/_resource_version_wrapper_8h.html +++ b/_resource_version_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/rsrc/ResourceVersionWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
4#include "ResourceContentWrapper.h"
5#include "../pe_formats.h"
6
+
7class ResourceVersionWrapper : public ResourceContentWrapper
8{
9public:
+
@@ -108,40 +115,45 @@ $(function() {
31 };
+
32
-
33 ResourceVersionWrapper(Executable *pe, ResourceLeafWrapper* v_leaf);
+
33 ResourceVersionWrapper(Executable *pe, ResourceLeafWrapper* v_leaf);
34
35 /* full structure boundatries */
36 virtual void* getPtr() { return getVersionInfo(); }
-
37 virtual bufsize_t getSize() { return (getVersionInfo() == NULL) ? 0 :sizeof(pe::version_info); }
-
38 virtual QString getName() { return "Version"; }
+
37 virtual bufsize_t getSize() { return (getVersionInfo() == NULL) ? 0 :sizeof(pe::version_info); }
+
38 virtual QString getName() { return "Version"; }
39 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
40 virtual size_t getSubFieldsCount() { return 1; } //TODO: children
41
42 /* specific field boundatries */
-
43 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
44 virtual QString getFieldName(size_t fieldId);
+
43 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
44 virtual QString getFieldName(size_t fieldId);
45
-
46 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE);
+
46 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE);
47
48 pe::version_info *getVersionInfo();
-
49 QString getVersionText()
+
+
50 {
-
51 pe::version_info *info = getVersionInfo();
-
52 if (info == NULL) return ""; //ERROR
+
51 pe::version_info *info = getVersionInfo();
+
52 if (info == NULL) return ""; //ERROR
53
-
54 int size = INFOTEXT_LEN;
-
55 WORD *content = info->key;
-
56 if (content == NULL) return "";
+
54 int size = INFOTEXT_LEN;
+
55 WORD *content = info->key;
+
56 if (content == NULL) return "";
57
58 return QString::fromUtf16(content, size);
59 }
+
60
61
62
63friend class ResourceContentFactory;
64};
+
65
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
ResourceContentWrapper.h
@@ -185,7 +197,7 @@ $(function() { diff --git a/_resources_album_8cpp.html b/_resources_album_8cpp.html index 2336ef6e..5116d3c7 100644 --- a/_resources_album_8cpp.html +++ b/_resources_album_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/rsrc/ResourcesAlbum.cpp File Reference @@ -30,7 +30,7 @@ - + +
2#include "pe/rsrc/ResourceStringsWrapper.h"
3
4
-
5void ResourcesContainer::putWrapper(ResourceContentWrapper* wrapper)
+
+
5void ResourcesContainer::putWrapper(ResourceContentWrapper* wrapper)
6{
-
7 if (wrapper == NULL) return;
+
7 if (wrapper == NULL) return;
8 //TODO: check if already exist...
-
9 wrappers.push_back(wrapper);
+
9 wrappers.push_back(wrapper);
10}
+
11
-
12ResourceContentWrapper* ResourcesContainer::getWrapperAt(size_t index)
+
+
12ResourceContentWrapper* ResourcesContainer::getWrapperAt(size_t index)
13{
-
14 if (index >= wrappers.size()) return NULL;
-
15 return wrappers.at(index);
+
14 if (index >= wrappers.size()) return NULL;
+
15 return wrappers.at(index);
16}
+
17
+
18size_t ResourcesContainer::entriesCount()
19{
-
20 size_t totalCount = 0;
+
20 size_t totalCount = 0;
21 size_t wrappersCount = this->count();
22
-
23 for (size_t i = 0; i < wrappersCount; i++) {
-
24 ResourceContentWrapper* wrapper = this->getWrapperAt(i);
-
25 if (wrapper == NULL) {
+
23 for (size_t i = 0; i < wrappersCount; i++) {
+
24 ResourceContentWrapper* wrapper = this->getWrapperAt(i);
+
25 if (wrapper == NULL) {
26 continue;
27 }
-
28 size_t count = wrapper->getFieldsCount();
-
29 totalCount += count;
+
28 size_t count = wrapper->getFieldsCount();
+
29 totalCount += count;
30 }
-
31 return totalCount;
+
31 return totalCount;
32}
+
33
34//----------------------------------------------------------------------
+
35void ResourcesAlbum::clearLeafsContent()
36{
-
37 std::map<ResourceLeafWrapper*, ResourceContentWrapper*>::iterator itr;
-
38 for (itr = leafToContentWrapper.begin(); itr != leafToContentWrapper.end(); ++itr) {
-
39 ResourceContentWrapper* cw = itr->second;
-
40 delete cw;
+
37 std::map<ResourceLeafWrapper*, ResourceContentWrapper*>::iterator itr;
+
38 for (itr = leafToContentWrapper.begin(); itr != leafToContentWrapper.end(); ++itr) {
+
39 ResourceContentWrapper* cw = itr->second;
+
40 delete cw;
41 }
-
42 leafToContentWrapper.clear();
+
42 leafToContentWrapper.clear();
43}
+
44
+
45void ResourcesAlbum::clear()
46{
47 clearLeafsContent();
48 //---
-
49 std::map<ResourceLeafWrapper*, ResourceContentWrapper*>::iterator cntItr;
-
50 for (cntItr = leafToContentWrapper.begin(); cntItr != leafToContentWrapper.end(); ++cntItr) {
-
51 ResourceContentWrapper* cntWr = cntItr->second;
-
52 delete cntWr;
+
49 std::map<ResourceLeafWrapper*, ResourceContentWrapper*>::iterator cntItr;
+
50 for (cntItr = leafToContentWrapper.begin(); cntItr != leafToContentWrapper.end(); ++cntItr) {
+
51 ResourceContentWrapper* cntWr = cntItr->second;
+
52 delete cntWr;
53 }
-
54 leafToContentWrapper.clear();
+
54 leafToContentWrapper.clear();
55 //---
56 allLeafs.clear();
57 allTypes.clear();
58}
+
59
-
60void ResourcesAlbum::putLeaf(ResourceLeafWrapper* leaf, long topEntryId)
+
+
60void ResourcesAlbum::putLeaf(ResourceLeafWrapper* leaf, long topEntryId)
61{
-
62 if (!leaf) return;
-
63 allLeafs[topEntryId].push_back(leaf);
+
62 if (!leaf) return;
+
63 allLeafs[topEntryId].push_back(leaf);
64}
+
65
+
66void ResourcesAlbum::wrapLeafsContent()
67{
-
68 std::map<long, std::vector<ResourceLeafWrapper*> >::iterator itr;
-
69 for (itr = allLeafs.begin(); itr != allLeafs.end(); ++itr) {
+
68 std::map<long, std::vector<ResourceLeafWrapper*> >::iterator itr;
+
69 for (itr = allLeafs.begin(); itr != allLeafs.end(); ++itr) {
70
-
71 std::vector<ResourceLeafWrapper*> &leafVec = itr->second;
-
72 long topEntryId = itr->first;
+
71 std::vector<ResourceLeafWrapper*> &leafVec = itr->second;
+
72 long topEntryId = itr->first;
73
-
74 for (size_t i = 0; i < leafVec.size(); i++) {
-
75 ResourceLeafWrapper* leaf = leafVec.at(i);
-
76 pe::resource_type type = idToLeafType[topEntryId];
+
74 for (size_t i = 0; i < leafVec.size(); i++) {
+
75 ResourceLeafWrapper* leaf = leafVec.at(i);
+
76 pe::resource_type type = idToLeafType[topEntryId];
77 //printf("topEntryId %d type: %d\n", topEntryId, type);
78//TODO: finish it!
-
79 ResourceContentWrapper* cw = ResourceContentFactory::makeResContentWrapper(type, leaf);
-
80 if (cw != NULL) {
-
81 leafToContentWrapper[leaf] = cw;
-
82 this->allWrappers[type].putWrapper(cw);
+
79 ResourceContentWrapper* cw = ResourceContentFactory::makeResContentWrapper(type, leaf);
+
80 if (cw != NULL) {
+
81 leafToContentWrapper[leaf] = cw;
+
82 this->allWrappers[type].putWrapper(cw);
83 }
84 }
85 }
86 initResourceTypes();
87}
+
88
-
89size_t ResourcesAlbum::entriesCountAt(long topEntryId)
+
+
89size_t ResourcesAlbum::entriesCountAt(long topEntryId)
90{
-
91 if (hasTopEntry(topEntryId) == false) {
+
91 if (hasTopEntry(topEntryId) == false) {
92 return 0;
93 }
-
94 return allLeafs[topEntryId].size();
+
94 return allLeafs[topEntryId].size();
95}
+
96
-
97std::vector<ResourceLeafWrapper*>* ResourcesAlbum::entriesAt(long topEntryId)
+
+
97std::vector<ResourceLeafWrapper*>* ResourcesAlbum::entriesAt(long topEntryId)
98{
-
99 if (hasTopEntry(topEntryId) == false) {
-
100 return NULL;
+
99 if (hasTopEntry(topEntryId) == false) {
+
100 return NULL;
101 }
-
102 return &(allLeafs[topEntryId]);
+
102 return &(allLeafs[topEntryId]);
103}
+
104
+
105ResourcesContainer* ResourcesAlbum::getResourcesOfType(pe::resource_type typeId)
106{
107 if (hasType(typeId) == false) {
-
108 return NULL;
+
108 return NULL;
109 }
110 return &(allWrappers[typeId]);
111}
+
112
+
113void ResourcesAlbum::initResourceTypes()
114{
115 this->allTypes.clear();
-
116 std::map<pe::resource_type, ResourcesContainer>::iterator itr;
+
116 std::map<pe::resource_type, ResourcesContainer>::iterator itr;
117
-
118 for ( itr = this->allWrappers.begin(); itr != this->allWrappers.end(); ++itr ) {
-
119 pe::resource_type type = itr->first;
+
118 for ( itr = this->allWrappers.begin(); itr != this->allWrappers.end(); ++itr ) {
+
119 pe::resource_type type = itr->first;
120 this->allTypes.push_back(type);
121 }
122}
+
123/*
124std::vector<pe::resource_type> ResourcesAlbum::getResourceTypes()
125{
@@ -212,11 +239,12 @@ $(function() {
133 return typesVec;
134}
135*/
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
ResourceStringsWrapper.h
ResourcesAlbum.h
+
ExeNodeWrapper::clear
virtual void clear()
Definition ExeNodeWrapper.cpp:30
ResourceContentFactory::makeResContentWrapper
static ResourceContentWrapper * makeResContentWrapper(pe::resource_type typeId, ResourceLeafWrapper *leaf)
Definition ResourceContentFactory.cpp:5
ResourceContentWrapper
Definition ResourceContentWrapper.h:10
-
ResourceContentWrapper::getFieldsCount
virtual size_t getFieldsCount()
Definition ResourceContentWrapper.h:26
ResourceLeafWrapper
Definition ResourceLeafWrapper.h:10
ResourcesAlbum::entriesCountAt
size_t entriesCountAt(long topEntryId)
Definition ResourcesAlbum.cpp:89
ResourcesAlbum::clear
void clear()
Definition ResourcesAlbum.cpp:45
@@ -242,7 +270,7 @@ $(function() { diff --git a/_resources_album_8h.html b/_resources_album_8h.html index 44cacc25..9f85d0ad 100644 --- a/_resources_album_8h.html +++ b/_resources_album_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/rsrc/ResourcesAlbum.h File Reference @@ -30,7 +30,7 @@ - + +
9#include <map>
10#include <vector>
11
+
12class ResourcesContainer {
13public:
14 ResourcesContainer() {}
15 virtual ~ResourcesContainer() {} //TODO
16
-
17 void putWrapper(ResourceContentWrapper* wrapper);
-
18 ResourceContentWrapper* getWrapperAt(size_t index);
+
17 void putWrapper(ResourceContentWrapper* wrapper);
+
18 ResourceContentWrapper* getWrapperAt(size_t index);
19
20 size_t count() { return wrappers.size(); }
21 size_t entriesCount();
@@ -102,7 +108,9 @@ $(function() {
23protected:
24 std::vector<ResourceContentWrapper*> wrappers;
25};
+
26
+
27class ResourcesAlbum {
28public:
29
@@ -110,19 +118,19 @@ $(function() {
31
32 virtual ~ResourcesAlbum() { clear(); }
33
-
34 void putLeaf(ResourceLeafWrapper* leaf, long topEntryId);
+
34 void putLeaf(ResourceLeafWrapper* leaf, long topEntryId);
35 void clear();
36
37 size_t dirsCount() { return allLeafs.size(); }
-
38 size_t entriesCountAt(long topEntryId);
-
39 std::vector<ResourceLeafWrapper*>* entriesAt(long topEntryId);
+
38 size_t entriesCountAt(long topEntryId);
+
39 std::vector<ResourceLeafWrapper*>* entriesAt(long topEntryId);
40
41 //TODO: create ResourceContentWrapper
-
42 void mapIdToLeafType(long topId, pe::resource_type leafType) { idToLeafType[topId] = leafType; }
+
42 void mapIdToLeafType(long topId, pe::resource_type leafType) { idToLeafType[topId] = leafType; }
43 void wrapLeafsContent(); // TODO: wrap content on demand - lazy mode
-
44 ResourceContentWrapper* getContentWrapper(ResourceLeafWrapper* leaf) { return this->leafToContentWrapper[leaf]; }
+
44 ResourceContentWrapper* getContentWrapper(ResourceLeafWrapper* leaf) { return this->leafToContentWrapper[leaf]; }
45
-
46 bool hasType(pe::resource_type typeId) { return (allWrappers.find(typeId) == allWrappers.end()) ? false : true; }
+
46 bool hasType(pe::resource_type typeId) { return (allWrappers.find(typeId) == allWrappers.end()) ? false : true; }
47 ResourcesContainer* getResourcesOfType(pe::resource_type typeId);
48 std::vector<pe::resource_type> getResourceTypes() const { return allTypes; }
49
@@ -130,7 +138,7 @@ $(function() {
51 void clearLeafsContent();
52
53 void initResourceTypes();
-
54 bool hasTopEntry(long topEntryId) { return (allLeafs.find(topEntryId) == allLeafs.end()) ? false : true; }
+
54 bool hasTopEntry(long topEntryId) { return (allLeafs.find(topEntryId) == allLeafs.end()) ? false : true; }
55
56 std::vector<pe::resource_type> allTypes;
57 std::map<pe::resource_type, ResourcesContainer> allWrappers;
@@ -140,7 +148,9 @@ $(function() {
61 std::map<ResourceLeafWrapper*, ResourceContentWrapper*> leafToContentWrapper;
62
63};
+
64
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
ResourceContentFactory.h
Executable
Definition Executable.h:26
ResourceContentWrapper
Definition ResourceContentWrapper.h:10
@@ -178,7 +188,7 @@ $(function() { diff --git a/_rich_hdr_wrapper_8cpp.html b/_rich_hdr_wrapper_8cpp.html index 9287e3d1..356d85b6 100644 --- a/_rich_hdr_wrapper_8cpp.html +++ b/_rich_hdr_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/RichHdrWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
3#include <iostream>
4
5
+
6bool RichHdrWrapper::wrap()
7{
8 this->richSign = m_PE->getRichHeaderSign();
@@ -93,7 +99,9 @@ $(function() {
14 this->compIdCounter = this->compIdCount();
15 return true;
16}
+
17
+
18void* RichHdrWrapper::getPtr()
19{
20 if (!this->dansHdr) {
@@ -101,65 +109,75 @@ $(function() {
22 }
23 return (void*)this->dansHdr;
24}
+
25
+
26size_t RichHdrWrapper::compIdCount()
27{
28 if (!this->richSign || !this->dansHdr) {
29 return 0;
30 }
-
31 const pe::RICH_DANS_HEADER dans_empty = { 0 };
-
32 const bufsize_t dif = ((ULONGLONG)richSign - (ULONGLONG)dansHdr) - (sizeof(dans_empty.dansId) + sizeof(dans_empty.cPad));
-
33 bufsize_t count = dif / sizeof(pe::RICH_COMP_ID);
+
31 const pe::RICH_DANS_HEADER dans_empty = { 0 };
+
32 const bufsize_t dif = ((ULONGLONG)richSign - (ULONGLONG)dansHdr) - (sizeof(dans_empty.dansId) + sizeof(dans_empty.cPad));
+
33 bufsize_t count = dif / sizeof(pe::RICH_COMP_ID);
34 return (size_t) count;
35}
+
36
+
37bufsize_t RichHdrWrapper::getSize()
38{
39 if (!this->richSign || !this->dansHdr) {
40 return 0;
41 }
-
42 const offset_t dansOffset = getOffset(this->dansHdr);
-
43 const offset_t richOffset = getOffset(this->richSign);
-
44 offset_t diff = richOffset - dansOffset;
+
42 const offset_t dansOffset = getOffset(this->dansHdr);
+
43 const offset_t richOffset = getOffset(this->richSign);
+
44 offset_t diff = richOffset - dansOffset;
45
-
46 pe::RICH_SIGNATURE rich1 = { 0 };
-
47 diff += sizeof(rich1);
-
48 return diff;
+
46 pe::RICH_SIGNATURE rich1 = { 0 };
+
47 diff += sizeof(rich1);
+
48 return diff;
49}
+
50
+
51size_t RichHdrWrapper::getFieldsCount()
52{
53 if (getSize() == 0) return 0;
54 return this->compIdCounter + FIELD_COUNTER - 1;
55}
+
56
-
57void* RichHdrWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
57void* RichHdrWrapper::getFieldPtr(size_t fieldId, size_t subField)
58{
59 if (!this->richSign || !this->dansHdr) {
-
60 return NULL;
+
60 return NULL;
61 }
62 if (this->compIdCounter == 0) {
-
63 return NULL;
+
63 return NULL;
64 }
65
-
66 const size_t cnt = this->compIdCounter - 1;
+
66 const size_t cnt = this->compIdCounter - 1;
67 switch (fieldId) {
68 case DANS_ID: return (void*) &dansHdr->dansId;
69 case CPAD0: return (void*) &dansHdr->cPad[0];
70 case CPAD1: return (void*) &dansHdr->cPad[1];
71 case CPAD2: return (void*) &dansHdr->cPad[2];
72 }
-
73 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
+
73 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
74 {
-
75 size_t compIdNum = fieldId - COMP_ID_1;
-
76 return (void*)(ULONGLONG(&dansHdr->compId) + (sizeof(pe::RICH_COMP_ID)*compIdNum));
+
75 size_t compIdNum = fieldId - COMP_ID_1;
+
76 return (void*)(ULONGLONG(&dansHdr->compId) + (sizeof(pe::RICH_COMP_ID)*compIdNum));
77 }
-
78 if (fieldId == RICH_ID + cnt) return (void*) &richSign->richId;
-
79 if (fieldId == CHECKSUM + cnt) return (void*) &richSign->checksum;
+
78 if (fieldId == RICH_ID + cnt) return (void*) &richSign->richId;
+
79 if (fieldId == CHECKSUM + cnt) return (void*) &richSign->checksum;
80 return (void*) dansHdr;
81}
+
82
-
83bufsize_t RichHdrWrapper::getFieldSize(size_t fieldId, size_t subField)
+
+
83bufsize_t RichHdrWrapper::getFieldSize(size_t fieldId, size_t subField)
84{
85 if (!this->richSign || !this->dansHdr) {
86 return 0;
@@ -167,7 +185,7 @@ $(function() {
88 if (this->compIdCounter == 0) {
89 return 0;
90 }
-
91 const size_t cnt = this->compIdCounter - 1;
+
91 const size_t cnt = this->compIdCounter - 1;
92 switch (fieldId) {
93 case DANS_ID:
94 return sizeof(dansHdr->dansId);
@@ -176,175 +194,191 @@ $(function() {
97 case CPAD2:
98 return sizeof(dansHdr->cPad[0]);
99 }
-
100 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
+
100 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
101 {
102 return sizeof(pe::RICH_COMP_ID);
103 }
-
104 if (fieldId == RICH_ID + cnt) return sizeof(richSign->richId);
-
105 if (fieldId == CHECKSUM + cnt) return sizeof(richSign->checksum);
+
104 if (fieldId == RICH_ID + cnt) return sizeof(richSign->richId);
+
105 if (fieldId == CHECKSUM + cnt) return sizeof(richSign->checksum);
106 return 0;
107}
+
108
-
109QString RichHdrWrapper::getFieldName(size_t fieldId)
+
+
109QString RichHdrWrapper::getFieldName(size_t fieldId)
110{
111 if (!this->richSign || !this->dansHdr) {
112 return "";
113 }
-
114 const size_t cnt = this->compIdCounter - 1;
+
114 const size_t cnt = this->compIdCounter - 1;
115
116 switch (fieldId) {
117 case DANS_ID: return("DanS ID");
118 case CPAD0: case CPAD1: case CPAD2: return ("Checksumed padding");
119 }
-
120 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
+
120 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
121 {
122 return("Comp ID");
123 }
-
124 if (fieldId == RICH_ID + cnt) return("Rich ID");
-
125 if (fieldId == CHECKSUM + cnt) return("Checksum");
+
124 if (fieldId == RICH_ID + cnt) return("Rich ID");
+
125 if (fieldId == CHECKSUM + cnt) return("Checksum");
126 return "";
127}
+
128
-
129pe::RICH_COMP_ID RichHdrWrapper::getCompId(size_t fieldId)
+
+
129pe::RICH_COMP_ID RichHdrWrapper::getCompId(size_t fieldId)
130{
-
131 pe::RICH_COMP_ID emptyId = { 0 };
+
131 pe::RICH_COMP_ID emptyId = { 0 };
132 if (!this->richSign || !this->dansHdr) {
-
133 return emptyId;
+
133 return emptyId;
134 }
-
135 const uint32_t xorVal = this->richSign->checksum;
-
136 const size_t cnt = this->compIdCounter - 1;
-
137 bool isOk = false;
-
138 uint64_t num = this->getNumValue(fieldId, &isOk);
-
139 if (!isOk) {
-
140 return emptyId;
+
135 const uint32_t xorVal = this->richSign->checksum;
+
136 const size_t cnt = this->compIdCounter - 1;
+
137 bool isOk = false;
+
138 uint64_t num = this->getNumValue(fieldId, &isOk);
+
139 if (!isOk) {
+
140 return emptyId;
141 }
-
142 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
+
142 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
143 {
-
144 uint64_t xorVal2 = xorVal | ((uint64_t)xorVal << sizeof(uint32_t)*8);
-
145 uint64_t my_num = static_cast<uint64_t>(num) ^ (xorVal2);
-
146 pe::RICH_COMP_ID* myCompId = reinterpret_cast<pe::RICH_COMP_ID*>(&my_num);
-
147 return *myCompId;
+
144 uint64_t xorVal2 = xorVal | ((uint64_t)xorVal << sizeof(uint32_t)*8);
+
145 uint64_t my_num = static_cast<uint64_t>(num) ^ (xorVal2);
+
146 pe::RICH_COMP_ID* myCompId = reinterpret_cast<pe::RICH_COMP_ID*>(&my_num);
+
147 return *myCompId;
148 }
-
149 return emptyId;
+
149 return emptyId;
150}
+
151
152
-
153inline DWORD rol32(DWORD temp, DWORD i)
+
+
153inline DWORD rol32(DWORD temp, DWORD i)
154{
-
155 return ((temp << (i%32)) | (temp >> (32-(i%32))));
+
155 return ((temp << (i%32)) | (temp >> (32-(i%32))));
156}
+
157
-
158DWORD RichHdrWrapper::calcChecksum()
+
+
158DWORD RichHdrWrapper::calcChecksum()
159{
-
160 BYTE *data = m_Exe->getContent();
-
161 const size_t dataSize = m_Exe->getContentSize();
-
162 const size_t dansOffset = getOffset(this->dansHdr);
+
160 BYTE *data = m_Exe->getContent();
+
161 const size_t dataSize = m_Exe->getContentSize();
+
162 const size_t dansOffset = getOffset(this->dansHdr);
163
-
164 if (!data || dansOffset == INVALID_ADDR) return 0;
+
164 if (!data || dansOffset == INVALID_ADDR) return 0;
165
-
166 DWORD cksum = dansOffset;
-
167 for (size_t i = 0; i < dansOffset && i < dataSize; i++) {
+
166 DWORD cksum = dansOffset;
+
167 for (size_t i = 0; i < dansOffset && i < dataSize; i++) {
168 //skip e_lfanew
-
169 if (i >= 0x3c && i < 0x40) {
+
169 if (i >= 0x3c && i < 0x40) {
170 continue;
171 }
-
172 BYTE temp = data[i];
-
173 cksum += rol32(temp,i);
+
172 BYTE temp = data[i];
+
173 cksum += rol32(temp,i);
174 }
-
175 size_t compKeys = compIdCount();
-
176 for (size_t k = COMP_ID_1; k < (COMP_ID_1 + compKeys); k++) {
-
177 pe::RICH_COMP_ID compId = this->getCompId(k);
+
175 size_t compKeys = compIdCount();
+
176 for (size_t k = COMP_ID_1; k < (COMP_ID_1 + compKeys); k++) {
+
177 pe::RICH_COMP_ID compId = this->getCompId(k);
178
-
179 DWORD temp = compId.prodId << 16 | compId.CV;
-
180 DWORD roled = rol32(temp, compId.count);
-
181 cksum += roled;
+
179 DWORD temp = compId.prodId << 16 | compId.CV;
+
180 DWORD roled = rol32(temp, compId.count);
+
181 cksum += roled;
182 }
-
183 return cksum;
+
183 return cksum;
184}
+
185
-
186Executable::addr_type RichHdrWrapper::containsAddrType(uint32_t fieldId, uint32_t subField)
+
+
186Executable::addr_type RichHdrWrapper::containsAddrType(uint32_t fieldId, uint32_t subField)
187{
188 return Executable::NOT_ADDR;
189}
+
190
-
191QString RichHdrWrapper::translateFieldContent(size_t fieldId)
+
+
191QString RichHdrWrapper::translateFieldContent(size_t fieldId)
192{
193 if (!this->richSign || !this->dansHdr) {
194 return "";
195 }
-
196 const uint32_t xorVal = this->richSign->checksum;
-
197 const size_t cnt = this->compIdCounter - 1;
+
196 const uint32_t xorVal = this->richSign->checksum;
+
197 const size_t cnt = this->compIdCounter - 1;
198
-
199 bool isOk = false;
-
200 uint64_t num = this->getNumValue(fieldId, &isOk);
-
201 if (!isOk) {
+
199 bool isOk = false;
+
200 uint64_t num = this->getNumValue(fieldId, &isOk);
+
201 if (!isOk) {
202 return "?";
203 }
-
204 switch (fieldId) {
+
204 switch (fieldId) {
205 case DANS_ID:
206 case CPAD0: case CPAD1: case CPAD2: {
-
207 uint32_t my_num = static_cast<uint32_t>(num) ^ xorVal;
-
208 if (my_num == pe::DANS_HDR_MAGIC) return "DanS";
-
209 return QString::number(my_num, 16);
+
207 uint32_t my_num = static_cast<uint32_t>(num) ^ xorVal;
+
208 if (my_num == pe::DANS_HDR_MAGIC) return "DanS";
+
209 return QString::number(my_num, 16);
210 }
211 }
212
-
213 if (fieldId == CHECKSUM + cnt) {
+
213 if (fieldId == CHECKSUM + cnt) {
214 return QString::number(this->calcChecksum(), 16);
215 }
216
-
217 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
+
217 if (fieldId >= COMP_ID_1 && fieldId <= COMP_ID_1 + cnt)
218 {
-
219 uint64_t xorVal2 = xorVal | ((uint64_t)xorVal << sizeof(uint32_t)*8);
-
220 uint64_t my_num = static_cast<uint64_t>(num) ^ (xorVal2);
-
221 pe::RICH_COMP_ID* myCompId = reinterpret_cast<pe::RICH_COMP_ID*>(&my_num);
-
222 return QString::number(myCompId->CV, 10) + "." + QString::number(myCompId->prodId, 10) + "." + QString::number(myCompId->count, 10);
+
219 uint64_t xorVal2 = xorVal | ((uint64_t)xorVal << sizeof(uint32_t)*8);
+
220 uint64_t my_num = static_cast<uint64_t>(num) ^ (xorVal2);
+
221 pe::RICH_COMP_ID* myCompId = reinterpret_cast<pe::RICH_COMP_ID*>(&my_num);
+
222 return QString::number(myCompId->CV, 10) + "." + QString::number(myCompId->prodId, 10) + "." + QString::number(myCompId->count, 10);
223 }
-
224 if (fieldId == RICH_ID + cnt) {
-
225 if (static_cast<uint32_t>(num) == pe::RICH_HDR_MAGIC) return "Rich";
+
224 if (fieldId == RICH_ID + cnt) {
+
225 if (static_cast<uint32_t>(num) == pe::RICH_HDR_MAGIC) return "Rich";
226 }
227 return "";
228}
+
229
230
-
231const QString RichHdr_ProdIdToVSversion(WORD i)
+
+
231const QString RichHdr_ProdIdToVSversion(WORD i)
232{
233 //list based on: https://github.com/kirschju/richheader + pnx's notes
-
234 if (i >= 0x0106 && i < (0x010a + 1))
+
234 if (i >= 0x0106 && i < (0x010a + 1))
235 return "Visual Studio 2017 14.01+";
-
236 if (i >= 0x00fd && i < (0x0106))
+
236 if (i >= 0x00fd && i < (0x0106))
237 return "Visual Studio 2015 14.00";
-
238 if (i >= 0x00eb && i < 0x00fd)
+
238 if (i >= 0x00eb && i < 0x00fd)
239 return "Visual Studio 2013 12.10";
-
240 if (i >= 0x00d9 && i < 0x00eb)
+
240 if (i >= 0x00d9 && i < 0x00eb)
241 return "Visual Studio 2013 12.00";
-
242 if (i >= 0x00c7 && i < 0x00d9)
+
242 if (i >= 0x00c7 && i < 0x00d9)
243 return "Visual Studio 2012 11.00";
-
244 if (i >= 0x00b5 && i < 0x00c7)
+
244 if (i >= 0x00b5 && i < 0x00c7)
245 return "Visual Studio 2010 10.10";
-
246 if (i >= 0x0098 && i < 0x00b5)
+
246 if (i >= 0x0098 && i < 0x00b5)
247 return "Visual Studio 2010 10.00";
-
248 if (i >= 0x0083 && i < 0x0098)
+
248 if (i >= 0x0083 && i < 0x0098)
249 return "Visual Studio 2008 09.00";
-
250 if (i >= 0x006d && i < 0x0083)
+
250 if (i >= 0x006d && i < 0x0083)
251 return "Visual Studio 2005 08.00";
-
252 if (i >= 0x005a && i < 0x006d)
+
252 if (i >= 0x005a && i < 0x006d)
253 return "Visual Studio 2003 07.10";
-
254 if (i >= 0x0019 && i < (0x0045 + 1))
+
254 if (i >= 0x0019 && i < (0x0045 + 1))
255 return "Visual Studio 2002 07.00";
-
256 if (i == 0xA || i == 0xB || i == 0xD || i == 0x15 || i == 0x16 )
+
256 if (i == 0xA || i == 0xB || i == 0xD || i == 0x15 || i == 0x16 )
257 return "Visual Studio 6.0 06.00";
-
258 if (i == 0x2 || i == 0x6 || i == 0xC || i == 0xE)
+
258 if (i == 0x2 || i == 0x6 || i == 0xC || i == 0xE)
259 return "Visual Studio 97 05.00";
-
260 if (i == 1)
+
260 if (i == 1)
261 return "Visual Studio";
262 return "";
263}
+
264
-
265const QString RichHdr_translateProdId(WORD prodId)
+
+
265const QString RichHdr_translateProdId(WORD prodId)
266{
267 //list from: https://github.com/kirschju/richheader
-
268 switch (prodId) {
+
268 switch (prodId) {
269 case 0x0000: return "Unknown";
270 case 0x0001: return "Import0";
271 case 0x0002: return "Linker510";
@@ -619,6 +653,8 @@ $(function() {
540 }
541 return "?";
542}
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -663,7 +699,7 @@ $(function() { diff --git a/_rich_hdr_wrapper_8h.html b/_rich_hdr_wrapper_8h.html index 982bc024..e8b62312 100644 --- a/_rich_hdr_wrapper_8h.html +++ b/_rich_hdr_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/RichHdrWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
3#include "PENodeWrapper.h"
4#include "pe_undoc.h"
5
-
6const QString RichHdr_ProdIdToVSversion(WORD prodId);
-
7const QString RichHdr_translateProdId(WORD prodId);
+
6const QString RichHdr_ProdIdToVSversion(WORD prodId);
+
7const QString RichHdr_translateProdId(WORD prodId);
8
+
9class RichHdrWrapper : public PEElementWrapper
10{
11public:
12 /* fields :*/
+
13 enum FieldID {
14 NONE = -1,
@@ -100,9 +107,12 @@ $(function() {
23 };
+
24
+
-
26 : PEElementWrapper(pe), richSign(NULL), dansHdr(NULL), compIdCounter(0) { wrap(); }
+ +
27
28 size_t compIdCount();
29
@@ -110,27 +120,29 @@ $(function() {
31 /* full structure boundaries */
32 virtual void* getPtr();
33 virtual bufsize_t getSize();
-
34 virtual QString getName() { return "Rich Hdr"; }
+
34 virtual QString getName() { return "Rich Hdr"; }
35 virtual size_t getFieldsCount();
36
37 /* specific field boundaries */
-
38 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
39 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
-
40 virtual QString translateFieldContent(size_t fieldId);
-
41 virtual QString getFieldName(size_t fieldId);
-
42 virtual Executable::addr_type containsAddrType(uint32_t fieldId, uint32_t subField = FIELD_NONE);
+
38 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
39 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField = FIELD_NONE);
+
40 virtual QString translateFieldContent(size_t fieldId);
+
41 virtual QString getFieldName(size_t fieldId);
+
42 virtual Executable::addr_type containsAddrType(uint32_t fieldId, uint32_t subField = FIELD_NONE);
43
44 /* only for this wrapper type */
-
45 pe::RICH_COMP_ID getCompId(size_t fieldId);
-
46 DWORD calcChecksum();
+
45 pe::RICH_COMP_ID getCompId(size_t fieldId);
+
46 DWORD calcChecksum();
47
48protected:
49 pe::RICH_SIGNATURE* richSign;
50 pe::RICH_DANS_HEADER* dansHdr;
51 size_t compIdCounter;
52};
+
53
54
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
PENodeWrapper.h
@@ -170,7 +182,7 @@ $(function() { diff --git a/_sect_hdrs_wrapper_8cpp.html b/_sect_hdrs_wrapper_8cpp.html index 93f26a84..bcf6ad61 100644 --- a/_sect_hdrs_wrapper_8cpp.html +++ b/_sect_hdrs_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/SectHdrsWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
6const size_t SectionHdrWrapper::SECNAME_LEN = 8;
7
8size_t SectHdrsWrapper::SECT_COUNT_MAX = 0x2000;
-
9size_t SectHdrsWrapper::SECT_INVALID_INDEX = SIZE_MAX;
+
9size_t SectHdrsWrapper::SECT_INVALID_INDEX = SIZE_MAX;
10
11std::map<DWORD, QString> SectionHdrWrapper::s_secHdrCharact;
12
-
13QString SectionHdrWrapper::getSecHdrAccessRightsDesc(DWORD characteristics)
+
+
13QString SectionHdrWrapper::getSecHdrAccessRightsDesc(DWORD characteristics)
14{
-
15 char rights[] = "---";
+
15 char rights[] = "---";
16
-
17 if (characteristics & SCN_MEM_READ)
-
18 rights[0] = 'r';
-
19 if (characteristics & SCN_MEM_WRITE)
-
20 rights[1] = 'w';
-
21 if (characteristics & SCN_MEM_EXECUTE)
-
22 rights[2] = 'x';
-
23 return rights;
+
17 if (characteristics & SCN_MEM_READ)
+
18 rights[0] = 'r';
+
19 if (characteristics & SCN_MEM_WRITE)
+
20 rights[1] = 'w';
+
21 if (characteristics & SCN_MEM_EXECUTE)
+
22 rights[2] = 'x';
+
23 return rights;
24}
+
25
-
26void SectionHdrWrapper::initSecCharacter(std::map<DWORD, QString> &secHdrCharact)
+
+
26void SectionHdrWrapper::initSecCharacter(std::map<DWORD, QString> &secHdrCharact)
27{
-
28 secHdrCharact[SCN_MEM_READ] = "readable";
-
29 secHdrCharact[SCN_MEM_WRITE] = "writeable";
-
30 secHdrCharact[SCN_MEM_EXECUTE] = "executable";
+
28 secHdrCharact[SCN_MEM_READ] = "readable";
+
29 secHdrCharact[SCN_MEM_WRITE] = "writeable";
+
30 secHdrCharact[SCN_MEM_EXECUTE] = "executable";
31
-
32 secHdrCharact[SCN_LNK_NRELOC_OVFL] = "contains extended relocations";
-
33 secHdrCharact[SCN_MEM_DISCARDABLE] = "discardable";
-
34 secHdrCharact[SCN_MEM_NOT_CACHED] = "not cachable";
-
35 secHdrCharact[SCN_MEM_NOT_PAGED] = "pageable";
-
36 secHdrCharact[SCN_MEM_SHARED] = "shareable";
-
37 secHdrCharact[SCN_CNT_CODE] = "code";
-
38 secHdrCharact[SCN_CNT_INITIALIZED_DATA] = "initialized data";
-
39 secHdrCharact[SCN_CNT_UNINITIALIZED_DATA] = "uninitialized data";
+
32 secHdrCharact[SCN_LNK_NRELOC_OVFL] = "contains extended relocations";
+
33 secHdrCharact[SCN_MEM_DISCARDABLE] = "discardable";
+
34 secHdrCharact[SCN_MEM_NOT_CACHED] = "not cachable";
+
35 secHdrCharact[SCN_MEM_NOT_PAGED] = "pageable";
+
36 secHdrCharact[SCN_MEM_SHARED] = "shareable";
+
37 secHdrCharact[SCN_CNT_CODE] = "code";
+
38 secHdrCharact[SCN_CNT_INITIALIZED_DATA] = "initialized data";
+
39 secHdrCharact[SCN_CNT_UNINITIALIZED_DATA] = "uninitialized data";
40}
+
41
-
42std::vector<DWORD> SectionHdrWrapper::splitCharacteristics(DWORD charact)
+
+
42std::vector<DWORD> SectionHdrWrapper::splitCharacteristics(DWORD charact)
43{
44 if (s_secHdrCharact.size() == 0) {
45 initSecCharacter(s_secHdrCharact);
46 }
-
47 std::vector<DWORD> chSet;
-
48 std::map<DWORD, QString>::iterator iter;
-
49 for (iter = s_secHdrCharact.begin(); iter != s_secHdrCharact.end(); ++iter) {
-
50 if (charact & iter->first) {
-
51 chSet.push_back(iter->first);
+
47 std::vector<DWORD> chSet;
+
48 std::map<DWORD, QString>::iterator iter;
+
49 for (iter = s_secHdrCharact.begin(); iter != s_secHdrCharact.end(); ++iter) {
+
50 if (charact & iter->first) {
+
51 chSet.push_back(iter->first);
52 }
53 }
-
54 return chSet;
+
54 return chSet;
55}
+
56
-
57QString SectionHdrWrapper::translateCharacteristics(DWORD charact)
+
+
57QString SectionHdrWrapper::translateCharacteristics(DWORD charact)
58{
59 if (s_secHdrCharact.size() == 0) {
60 initSecCharacter(s_secHdrCharact);
61 }
62
-
63 if (s_secHdrCharact.find(charact) == s_secHdrCharact.end()) return "";
-
64 return s_secHdrCharact[charact];
+
63 if (s_secHdrCharact.find(charact) == s_secHdrCharact.end()) return "";
+
64 return s_secHdrCharact[charact];
65}
+
66
67//----
68
+
69bool SectionHdrWrapper::wrap()
70{
71 this->clear();
72
-
73 this->header = NULL;
+
73 this->header = NULL;
74 getPtr();
75 reloadName();
76 return true;
77}
+
78
+
79void* SectionHdrWrapper::getPtr()
80{
-
81 if (m_PE == NULL) return NULL;
+
81 if (m_PE == NULL) return NULL;
82
-
83 if (header != NULL) {
+
83 if (header != NULL) {
84 return (void*) this->header;
85 }
86
-
87 offset_t firstSecOffset = m_PE->secHdrsOffset();
-
88 offset_t secOffset = firstSecOffset + (this->sectNum * sizeof(IMAGE_SECTION_HEADER));
+
87 offset_t firstSecOffset = m_PE->secHdrsOffset();
+
88 offset_t secOffset = firstSecOffset + (this->sectNum * sizeof(IMAGE_SECTION_HEADER));
89
90 //cache the header:
-
91 this->header = (IMAGE_SECTION_HEADER*) m_PE->getContentAt(secOffset, sizeof(IMAGE_SECTION_HEADER));
+
91 this->header = (IMAGE_SECTION_HEADER*) m_PE->getContentAt(secOffset, sizeof(IMAGE_SECTION_HEADER));
92 return (void*) this->header;
93}
+
94
+
95bool SectionHdrWrapper::reloadName()
96{
-
97 IMAGE_SECTION_HEADER* header = (IMAGE_SECTION_HEADER*) getPtr();
+
97 IMAGE_SECTION_HEADER* header = (IMAGE_SECTION_HEADER*) getPtr();
98 if (!header) return false;
99
100 if (this->name) {
-
101 if (memcmp(this->name, header->Name, SECNAME_LEN) == 0) {
+
101 if (memcmp(this->name, header->Name, SECNAME_LEN) == 0) {
102 return true; //no need to reload
103 }
104 }
-
105 const size_t BUF_LEN = SECNAME_LEN + 2;
+
105 const size_t BUF_LEN = SECNAME_LEN + 2;
106 if (!this->name) {
-
107 this->name = (char*)::calloc(BUF_LEN, 1);
+
107 this->name = (char*)::calloc(BUF_LEN, 1);
108 }
-
109 ::memset(this->name, 0, BUF_LEN);
-
110 ::memcpy(this->name, header->Name, SECNAME_LEN);
+
109 ::memset(this->name, 0, BUF_LEN);
+
110 ::memcpy(this->name, header->Name, SECNAME_LEN);
111 this->mappedName = this->name;
112 if (this->mappedName.length() == 0) {
113 this->mappedName = "#" + QString::number(this->sectNum, 10);
114 }
115 return true;
116}
+
117
+
118bufsize_t SectionHdrWrapper::getSize()
119{
-
120 if (m_PE == NULL) return 0;
-
121 return sizeof(IMAGE_SECTION_HEADER);
+
120 if (m_PE == NULL) return 0;
+
121 return sizeof(IMAGE_SECTION_HEADER);
122}
+
123
-
124QString SectionHdrWrapper::getName()
+
+
124QString SectionHdrWrapper::getName()
125{
126 //reloadName();
127 if (!this->name) return ""; //cannot load
128 return this->name;
129}
+
130
-
131void* SectionHdrWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
+
131void* SectionHdrWrapper::getFieldPtr(size_t fieldId, size_t subField)
132{
-
133 IMAGE_SECTION_HEADER* sec = (IMAGE_SECTION_HEADER*) getPtr();
-
134 if (!sec) return NULL;
-
135 if (!this->name) return NULL;
+
133 IMAGE_SECTION_HEADER* sec = (IMAGE_SECTION_HEADER*) getPtr();
+
134 if (!sec) return NULL;
+
135 if (!this->name) return NULL;
136 switch (fieldId)
137 {
-
138 case NAME: return (void*) &sec->Name;
-
139 case VSIZE: return (void*) &sec->Misc.VirtualSize;
-
140 case VPTR: return (void*) &sec->VirtualAddress;
-
141 case RSIZE: return (void*) &sec->SizeOfRawData;
-
142 case RPTR: return(void*) &sec->PointerToRawData;
+
138 case NAME: return (void*) &sec->Name;
+
139 case VSIZE: return (void*) &sec->Misc.VirtualSize;
+
140 case VPTR: return (void*) &sec->VirtualAddress;
+
141 case RSIZE: return (void*) &sec->SizeOfRawData;
+
142 case RPTR: return(void*) &sec->PointerToRawData;
143
-
144 case RELOC_PTR: return (void*) &sec->PointerToRelocations;
-
145 case RELOC_NUM: return (void*) &sec->NumberOfRelocations;
-
146 case LINENUM_PTR: return (void*) &sec->PointerToLinenumbers;
-
147 case LINENUM_NUM: return (void*) &sec->NumberOfLinenumbers;
+
144 case RELOC_PTR: return (void*) &sec->PointerToRelocations;
+
145 case RELOC_NUM: return (void*) &sec->NumberOfRelocations;
+
146 case LINENUM_PTR: return (void*) &sec->PointerToLinenumbers;
+
147 case LINENUM_NUM: return (void*) &sec->NumberOfLinenumbers;
148
-
149 case CHARACT: return (void*) &sec->Characteristics;
+
149 case CHARACT: return (void*) &sec->Characteristics;
150 }
151 return this->getPtr();
152}
+
153
-
154QString SectionHdrWrapper::getFieldName(size_t fieldId)
+
+
154QString SectionHdrWrapper::getFieldName(size_t fieldId)
155{
156 switch (fieldId)
157 {
@@ -247,10 +273,12 @@ $(function() {
168 }
169 return "";
170}
+
171
-
172Executable::addr_type SectionHdrWrapper::containsAddrType(size_t fieldId, size_t subField)
+
+
172Executable::addr_type SectionHdrWrapper::containsAddrType(size_t fieldId, size_t subField)
173{
-
174 switch (fieldId)
+
174 switch (fieldId)
175 {
176 case VPTR: return Executable::RVA;
177 case RPTR: return Executable::RAW;
@@ -258,335 +286,374 @@ $(function() {
179 }
180 return Executable::NOT_ADDR;
181}
+
182
-
183WrappedValue::data_type SectionHdrWrapper::containsDataType(size_t fieldId, size_t subField)
+
+
183WrappedValue::data_type SectionHdrWrapper::containsDataType(size_t fieldId, size_t subField)
184{
-
185 if (fieldId == NAME) {
+
185 if (fieldId == NAME) {
186 return WrappedValue::STRING;
187 }
188 return WrappedValue::INT;
189}
+
190
191
192// offset that is declared in header
-
193offset_t SectionHdrWrapper::getContentDeclaredOffset(Executable::addr_type aType)
+
+
193offset_t SectionHdrWrapper::getContentDeclaredOffset(Executable::addr_type aType)
194{
-
195 if (this->header == NULL) return INVALID_ADDR;
+
195 if (this->header == NULL) return INVALID_ADDR;
196 offset_t offset = INVALID_ADDR;
197
-
198 if (aType == Executable::RAW) {
+
198 if (aType == Executable::RAW) {
199 offset = static_cast<offset_t>(this->header->PointerToRawData);//(this->getNumValue(RPTR, &isOk));
-
200 } else if (aType == Executable::VA || aType == Executable::RVA) {
+
200 } else if (aType == Executable::VA || aType == Executable::RVA) {
201 offset = static_cast<offset_t>(this->header->VirtualAddress);//this->getNumValue(VPTR, &isOk));
202 }
203 return offset;
204}
+
205
-
206offset_t SectionHdrWrapper::getContentOffset(Executable::addr_type aType, bool useMapped)
+
+
206offset_t SectionHdrWrapper::getContentOffset(Executable::addr_type aType, bool useMapped)
207{
-
208 offset_t offset = getContentDeclaredOffset(aType);
-
209 if (!useMapped) {
+
208 offset_t offset = getContentDeclaredOffset(aType);
+
209 if (!useMapped) {
210 return offset; //returning as is
211 }
-
212 if (aType == Executable::RAW) {
-
213 bufsize_t align = m_PE->getAlignment(Executable::RAW);
-
214 const size_t units = pe_util::unitsCount(offset, align, false);
-
215 const offset_t rounded = units * align; //round down to section alignment
-
216 if (rounded != 0) {
-
217 offset = rounded;
+
212 if (aType == Executable::RAW) {
+
213 bufsize_t align = m_PE->getAlignment(Executable::RAW);
+
214 const size_t units = pe_util::unitsCount(offset, align, false);
+
215 const offset_t rounded = units * align; //round down to section alignment
+
216 if (rounded != 0) {
+
217 offset = rounded;
218 }
-
219 const size_t peSize = m_PE->getMappedSize(aType);
-
220 if (offset > peSize) {
+
219 const size_t peSize = m_PE->getMappedSize(aType);
+
220 if (offset > peSize) {
221 offset = INVALID_ADDR;
222 }
223 }
224 return offset;
225}
+
226
-
227offset_t SectionHdrWrapper::getContentEndOffset(Executable::addr_type addrType, bool recalculate)
+
+
227offset_t SectionHdrWrapper::getContentEndOffset(Executable::addr_type addrType, bool recalculate)
228{
-
229 const bool useMapped = true;
-
230 offset_t startOffset = getContentOffset(addrType, useMapped);
-
231 if (startOffset == INVALID_ADDR) return INVALID_ADDR;
+
229 const bool useMapped = true;
+
230 offset_t startOffset = getContentOffset(addrType, useMapped);
+
231 if (startOffset == INVALID_ADDR) return INVALID_ADDR;
232
-
233 offset_t endOffset = static_cast<offset_t>(getContentSize(addrType, recalculate)) + startOffset;
-
234 return endOffset;
+
233 offset_t endOffset = static_cast<offset_t>(getContentSize(addrType, recalculate)) + startOffset;
+
234 return endOffset;
235}
+
236
237// size that is declared in header
-
238bufsize_t SectionHdrWrapper::getContentDeclaredSize(Executable::addr_type aType)
+
+
238bufsize_t SectionHdrWrapper::getContentDeclaredSize(Executable::addr_type aType)
239{
-
240 if (this->header == NULL) return 0;
+
240 if (this->header == NULL) return 0;
241 bufsize_t size = 0;
242
-
243 if (aType == Executable::RAW) {
+
243 if (aType == Executable::RAW) {
244 size = static_cast<bufsize_t>(this->header->SizeOfRawData);//this->getNumValue(RSIZE, &isOk));
-
245 } else if (aType == Executable::VA || aType == Executable::RVA) {
+
245 } else if (aType == Executable::VA || aType == Executable::RVA) {
246 size = static_cast<bufsize_t>(this->header->Misc.VirtualSize);//this->getNumValue(VSIZE, &isOk));
247 }
248 return size;
249}
+
250
251//RAW size that is really mapped
+
252bufsize_t SectionHdrWrapper::getMappedRawSize()
253{
-
254 const Executable::addr_type aType = Executable::RAW;
+
254 const Executable::addr_type aType = Executable::RAW;
255
-
256 const offset_t secOffset = getContentOffset(aType);
-
257 if (secOffset == INVALID_ADDR) {
+
256 const offset_t secOffset = getContentOffset(aType);
+
257 if (secOffset == INVALID_ADDR) {
258 return 0; //invalid addr, nothing is mapped
259 }
-
260 const bufsize_t peSize = m_PE->getRawSize();
-
261 if (secOffset > peSize) {
+
260 const bufsize_t peSize = m_PE->getRawSize();
+
261 if (secOffset > peSize) {
262 return 0; //out of scope
263 }
-
264 bufsize_t rawSize = getContentDeclaredSize(aType);
-
265 if (rawSize == 0) {
+
264 bufsize_t rawSize = getContentDeclaredSize(aType);
+
265 if (rawSize == 0) {
266 return 0; // no changes
267 }
-
268 bufsize_t virtualSize = getContentDeclaredSize(Executable::RVA);
-
269 if (virtualSize < rawSize) {
+
268 bufsize_t virtualSize = getContentDeclaredSize(Executable::RVA);
+
269 if (virtualSize < rawSize) {
270 // if Virtual Size is smaller than the raw size, it means not full raw size will be mapped
-
271 rawSize = virtualSize;
+
271 rawSize = virtualSize;
272 }
273 // round up to the file alignment unit:
-
274 bufsize_t unit = m_PE->getAlignment(aType);
-
275 if (unit != 0) {
-
276 rawSize = roundupToUnit(rawSize, unit);
+
274 bufsize_t unit = m_PE->getAlignment(aType);
+
275 if (unit != 0) {
+
276 rawSize = roundupToUnit(rawSize, unit);
277 }
-
278 const bufsize_t secEnd = secOffset + rawSize;
+
278 const bufsize_t secEnd = secOffset + rawSize;
279 //trim to the file size:
-
280 if (secEnd > peSize) {
-
281 const bufsize_t trimmedSize = peSize - secOffset; // trim to the file size
-
282 if (virtualSize) {
-
283 bufsize_t unit = m_PE->getAlignment(Executable::RVA);
-
284 if (unit != 0) {
-
285 virtualSize = roundupToUnit(virtualSize, unit);
+
280 if (secEnd > peSize) {
+
281 const bufsize_t trimmedSize = peSize - secOffset; // trim to the file size
+
282 if (virtualSize) {
+
283 bufsize_t unit = m_PE->getAlignment(Executable::RVA);
+
284 if (unit != 0) {
+
285 virtualSize = roundupToUnit(virtualSize, unit);
286 }
287 }
-
288 if ((virtualSize != 0) && (trimmedSize > virtualSize)) {
-
289 return virtualSize;
+
288 if ((virtualSize != 0) && (trimmedSize > virtualSize)) {
+
289 return virtualSize;
290 }
-
291 return trimmedSize;
+
291 return trimmedSize;
292 }
-
293 return rawSize;
+
293 return rawSize;
294}
+
295
296//VirtualSize that is really mapped
+
297bufsize_t SectionHdrWrapper::getMappedVirtualSize()
298{
299 if (!m_PE) return 0;
300
-
301 const Executable::addr_type aType = Executable::RVA;
+
301 const Executable::addr_type aType = Executable::RVA;
302
-
303 const offset_t startOffset = getContentOffset(aType);
-
304 if (startOffset == INVALID_ADDR) {
+
303 const offset_t startOffset = getContentOffset(aType);
+
304 if (startOffset == INVALID_ADDR) {
305 return 0; //invalid addr, nothing is mapped
306 }
307
-
308 bufsize_t dVirtualSize = getContentDeclaredSize(aType);
-
309 bufsize_t mRawSize = getMappedRawSize();
+
308 bufsize_t dVirtualSize = getContentDeclaredSize(aType);
+
309 bufsize_t mRawSize = getMappedRawSize();
310
-
311 bufsize_t mVirtualSize = (dVirtualSize > mRawSize) ? dVirtualSize : mRawSize;
-
312 bufsize_t unit = m_PE->getAlignment(aType);
-
313 if (unit) {
-
314 mVirtualSize = roundupToUnit(mVirtualSize, unit);
+
311 bufsize_t mVirtualSize = (dVirtualSize > mRawSize) ? dVirtualSize : mRawSize;
+
312 bufsize_t unit = m_PE->getAlignment(aType);
+
313 if (unit) {
+
314 mVirtualSize = roundupToUnit(mVirtualSize, unit);
315 }
316 // trim to Image Size:
-
317 bufsize_t secEnd = startOffset + mVirtualSize;
-
318 const bufsize_t imgSize = m_PE->getImageSize();
-
319 if (imgSize < startOffset) {
+
317 bufsize_t secEnd = startOffset + mVirtualSize;
+
318 const bufsize_t imgSize = m_PE->getImageSize();
+
319 if (imgSize < startOffset) {
320 return 0;
321 }
322
323 // trim to next section
-
324 int secCounter = m_PE->getSectionsCount(true);
-
325 for (size_t i = 0; i < secCounter; i++) {
-
326 SectionHdrWrapper *sec = m_PE->getSecHdr(i);
-
327 if (!sec) continue;
+
324 int secCounter = m_PE->getSectionsCount(true);
+
325 for (size_t i = 0; i < secCounter; i++) {
+
326 SectionHdrWrapper *sec = m_PE->getSecHdr(i);
+
327 if (!sec) continue;
328
-
329 offset_t currOffset = sec->getContentOffset(aType, true);
-
330 if (currOffset == INVALID_ADDR) continue;
-
331 if (currOffset > startOffset && currOffset < secEnd) {
-
332 secEnd = currOffset;
+
329 offset_t currOffset = sec->getContentOffset(aType, true);
+
330 if (currOffset == INVALID_ADDR) continue;
+
331 if (currOffset > startOffset && currOffset < secEnd) {
+
332 secEnd = currOffset;
333 }
334 }
335 //trim to image size:
-
336 if (secEnd > imgSize) {
-
337 const bufsize_t trimmedSize = imgSize - startOffset;
-
338 return trimmedSize;
+
336 if (secEnd > imgSize) {
+
337 const bufsize_t trimmedSize = imgSize - startOffset;
+
338 return trimmedSize;
339 }
-
340 return (secEnd - startOffset);
+
340 return (secEnd - startOffset);
341}
+
342
-
343bufsize_t SectionHdrWrapper::getContentSize(Executable::addr_type aType, bool recalculate)
+
+
343bufsize_t SectionHdrWrapper::getContentSize(Executable::addr_type aType, bool recalculate)
344{
345 if (!this->header || !m_PE) return 0;
346
347 bufsize_t size = 0;
-
348 if (!recalculate) {
-
349 size = getContentDeclaredSize(aType);
+
348 if (!recalculate) {
+
349 size = getContentDeclaredSize(aType);
350 //printf("Declared size = %llx\n---\n", size);
351 return size;
352 }
353 //---
-
354 if (aType == Executable::RAW) {
+
354 if (aType == Executable::RAW) {
355 //printf ("R: ");
356 size = getMappedRawSize();
357 }
-
358 if (aType == Executable::RVA || aType == Executable::VA) {
+
358 if (aType == Executable::RVA || aType == Executable::VA) {
359 size = getMappedVirtualSize();
360 //printf ("V: ");
361 }
362 //printf("Mapped size = %llx\n", size);
363 return size;
364}
+
365
366//-----------------------------------------------------------------------------------
367
-
368bool SectHdrsWrapper::isMyEntryType(ExeNodeWrapper *entry)
+
+
368bool SectHdrsWrapper::isMyEntryType(ExeNodeWrapper *entry)
369{
-
370 SectionHdrWrapper* sEntry = dynamic_cast<SectionHdrWrapper*> (entry);
-
371 if (sEntry == NULL) {
+
370 SectionHdrWrapper* sEntry = dynamic_cast<SectionHdrWrapper*> (entry);
+
371 if (sEntry == NULL) {
372 return false;
373 }
374 return true;
375}
+
376
+
377bool SectHdrsWrapper::canAddEntry()
378{
-
379 offset_t nextOffset = getNextEntryOffset();
-
380 bufsize_t entrySize = geEntrySize();
-
381 if (entrySize == 0) return false;
+
379 offset_t nextOffset = getNextEntryOffset();
+
380 bufsize_t entrySize = geEntrySize();
+
381 if (entrySize == 0) return false;
382
-
383 bufsize_t paddedSize = entrySize;
-
384 bool haveSpace = this->m_Exe->isAreaEmpty(nextOffset, paddedSize);
-
385 return haveSpace;
+
383 bufsize_t paddedSize = entrySize;
+
384 bool haveSpace = this->m_Exe->isAreaEmpty(nextOffset, paddedSize);
+
385 return haveSpace;
386}
+
387
-
388ExeNodeWrapper* SectHdrsWrapper::addEntry(ExeNodeWrapper *entry)
+
+
388ExeNodeWrapper* SectHdrsWrapper::addEntry(ExeNodeWrapper *entry)
389{
-
390 if (m_PE == NULL) return NULL;
+
390 if (m_PE == NULL) return NULL;
391
-
392 size_t secCount = m_PE->hdrSectionsNum();
-
393 if (secCount == SECT_COUNT_MAX) return NULL; //limit exceeded
+
392 size_t secCount = m_PE->hdrSectionsNum();
+
393 if (secCount == SECT_COUNT_MAX) return NULL; //limit exceeded
394
-
395 if (ExeNodeWrapper::addEntry(entry) == NULL) return NULL;
+
395 if (ExeNodeWrapper::addEntry(entry) == NULL) return NULL;
396
-
397 size_t count = secCount + 1;
+
397 size_t count = secCount + 1;
398 if (m_PE->setHdrSectionsNum(count) == false) {
-
399 return NULL;
+
399 return NULL;
400 }
401 return getLastEntry();
402}
+
403
+
404void SectHdrsWrapper::clear()
405{
406 ExeNodeWrapper::clear();
407 this->rSec.clear();
408 this->vSec.clear();
409}
+
410
+
411bool SectHdrsWrapper::loadNextEntry(size_t entryNum)
412{
-
413 SectionHdrWrapper *sec = new SectionHdrWrapper(this->m_PE, entryNum);
-
414 if (sec == NULL) return false;
-
415 if (sec->getPtr() == NULL) {
+
413 SectionHdrWrapper *sec = new SectionHdrWrapper(this->m_PE, entryNum);
+
414 if (sec == NULL) return false;
+
415 if (sec->getPtr() == NULL) {
416 Logger::append(Logger::D_WARNING, "Deleting invalid section...");
-
417 delete sec;
-
418 sec = NULL;
+
417 delete sec;
+
418 sec = NULL;
419 return false;
420 }
421 this->entries.push_back(sec);
-
422 addMapping(sec);
+
422 addMapping(sec);
423 return true;
424}
+
425
-
426void SectHdrsWrapper::addMapping(SectionHdrWrapper *sec)
+
+
426void SectHdrsWrapper::addMapping(SectionHdrWrapper *sec)
427{
-
428 if (sec == NULL) return;
+
428 if (sec == NULL) return;
429
-
430 bool recalculate = true;
-
431 if (sec->getContentSize(Executable::RAW, true) == 0) {
+
430 bool recalculate = true;
+
431 if (sec->getContentSize(Executable::RAW, true) == 0) {
432 //printf("skipping empty section..\n");
433 return;
434 }
435
-
436 const offset_t endRVA = sec->getContentEndOffset(Executable::RVA, recalculate);
-
437 const offset_t endRaw = sec->getContentEndOffset(Executable::RAW, recalculate);
+
436 const offset_t endRVA = sec->getContentEndOffset(Executable::RVA, recalculate);
+
437 const offset_t endRaw = sec->getContentEndOffset(Executable::RAW, recalculate);
438
-
439 if (rSec.find(endRaw) != rSec.end()) { //already exist
-
440 SectionHdrWrapper* prevSec = rSec[endRaw];
-
441 if (prevSec == NULL) return;
+
439 if (rSec.find(endRaw) != rSec.end()) { //already exist
+
440 SectionHdrWrapper* prevSec = rSec[endRaw];
+
441 if (prevSec == NULL) return;
442 // keep the bigger one (with lower start address) in the mapping
-
443 if (prevSec->getContentOffset(Executable::RAW) < sec->getContentOffset(Executable::RAW)) {
+
443 if (prevSec->getContentOffset(Executable::RAW) < sec->getContentOffset(Executable::RAW)) {
444 return; //skip
445 }
446 }
-
447 if (vSec.find(endRVA) != vSec.end()) { //already exist
-
448 SectionHdrWrapper* prevSec = vSec[endRaw];
-
449 if (prevSec == NULL) return;
+
447 if (vSec.find(endRVA) != vSec.end()) { //already exist
+
448 SectionHdrWrapper* prevSec = vSec[endRaw];
+
449 if (prevSec == NULL) return;
450 // keep the bigger one (with lower start address) in the mapping
-
451 if (prevSec->getContentOffset(Executable::RVA) < sec->getContentOffset(Executable::RVA)) {
+
451 if (prevSec->getContentOffset(Executable::RVA) < sec->getContentOffset(Executable::RVA)) {
452 return; //skip
453 }
454 }
-
455 vSec[endRVA] = sec;
-
456 rSec[endRaw] = sec;
+
455 vSec[endRVA] = sec;
+
456 rSec[endRaw] = sec;
457 return;
458}
+
459
+
460void SectHdrsWrapper::reloadMapping()
461{
-
462 this->rSec.clear();
+
462 this->rSec.clear();
463 this->vSec.clear();
464
465 size_t count = this->getEntriesCount();
-
466 for (size_t i = 0; i < count; i++) {
-
467 SectionHdrWrapper* sec = dynamic_cast<SectionHdrWrapper*>(this->getEntryAt(i));
-
468 if (sec == NULL) continue;
-
469 addMapping(sec);
+
466 for (size_t i = 0; i < count; i++) {
+
467 SectionHdrWrapper* sec = dynamic_cast<SectionHdrWrapper*>(this->getEntryAt(i));
+
468 if (sec == NULL) continue;
+
469 addMapping(sec);
470 }
471}
+
472
+
473bool SectHdrsWrapper::wrap()
474{
475 this->clear();
-
476 if (this->m_PE == NULL) return false;
+
476 if (this->m_PE == NULL) return false;
477
478 size_t count = this->m_PE->hdrSectionsNum();
-
479 for (size_t i = 0; i < count && i < SECT_COUNT_MAX; i++) {
-
480 if (this->loadNextEntry(i) == false) break;
+
479 for (size_t i = 0; i < count && i < SECT_COUNT_MAX; i++) {
+
480 if (this->loadNextEntry(i) == false) break;
481 }
482 return true;
483}
+
484
+
485size_t SectHdrsWrapper::getFieldsCount()
486{
487 return this->entries.size();
488}
+
489
+
490void* SectHdrsWrapper::getPtr()
491{
-
492 if (entries.size() == 0) return NULL;
+
492 if (entries.size() == 0) return NULL;
493 return entries[0]->getPtr();
494}
+
495
+
496bufsize_t SectHdrsWrapper::getSize()
497{
-
498 if (this->m_PE == NULL) return 0;
+
498 if (this->m_PE == NULL) return 0;
499
-
500 size_t secCount = getFieldsCount();
+
500 size_t secCount = getFieldsCount();
501
-
502 offset_t hdrOffset = m_PE->secHdrsOffset();
+
502 offset_t hdrOffset = m_PE->secHdrsOffset();
503 offset_t fileSize = m_PE->getRawSize();
-
504 offset_t endOffset = hdrOffset + (secCount * sizeof(IMAGE_SECTION_HEADER));
+
504 offset_t endOffset = hdrOffset + (secCount * sizeof(IMAGE_SECTION_HEADER));
505
-
506 if (endOffset > fileSize) {
-
507 return bufsize_t (fileSize - hdrOffset);
+
506 if (endOffset > fileSize) {
+
507 return bufsize_t (fileSize - hdrOffset);
508 }
-
509 return bufsize_t (endOffset - hdrOffset);
+
509 return bufsize_t (endOffset - hdrOffset);
510}
+
511/*
512void* SectHdrsWrapper::getFieldPtr(size_t fieldId, size_t subField)
513{
@@ -594,77 +661,84 @@ $(function() {
515 return entries[fieldId]->getFieldPtr(subField);
516}
517*/
-
518QString SectHdrsWrapper::getFieldName(size_t fieldId)
+
+
518QString SectHdrsWrapper::getFieldName(size_t fieldId)
519{
-
520 if (fieldId >= entries.size()) return NULL;
-
521 return entries[fieldId]->getName();
+
520 if (fieldId >= entries.size()) return NULL;
+
521 return entries[fieldId]->getName();
522}
+
523
-
524SectionHdrWrapper* SectHdrsWrapper::getSecHdrAtOffset(offset_t offset, Executable::addr_type addrType, bool recalculate, bool verbose)
+
+
524SectionHdrWrapper* SectHdrsWrapper::getSecHdrAtOffset(offset_t offset, Executable::addr_type addrType, bool recalculate, bool verbose)
525{
526 size_t size = this->entries.size();
-
527 std::map<offset_t, SectionHdrWrapper*> *secMap = NULL;
+
527 std::map<offset_t, SectionHdrWrapper*> *secMap = NULL;
528
-
529 if (addrType == Executable::RAW) {
-
530 secMap = &this->rSec;
-
531 } else if (addrType == Executable::RVA || addrType == Executable::VA) {
-
532 secMap = &this->vSec;
+
529 if (addrType == Executable::RAW) {
+
530 secMap = &this->rSec;
+
531 } else if (addrType == Executable::RVA || addrType == Executable::VA) {
+
532 secMap = &this->vSec;
533 }
-
534 if (secMap == NULL) return NULL;
+
534 if (secMap == NULL) return NULL;
535
-
536 std::map<offset_t, SectionHdrWrapper*>::iterator found = secMap->lower_bound(offset);
-
537 std::map<offset_t, SectionHdrWrapper*>::iterator itr;
-
538 for (itr = found; itr != secMap->end(); ++itr) {
-
539 SectionHdrWrapper* sec = itr->second;
-
540 if (sec == NULL) continue; //TODO: check it
-
541 if (verbose) {
-
542 printf("found [%llX] key: %llX sec: %llX %llX\n",
+
536 std::map<offset_t, SectionHdrWrapper*>::iterator found = secMap->lower_bound(offset);
+
537 std::map<offset_t, SectionHdrWrapper*>::iterator itr;
+
538 for (itr = found; itr != secMap->end(); ++itr) {
+
539 SectionHdrWrapper* sec = itr->second;
+
540 if (sec == NULL) continue; //TODO: check it
+
541 if (verbose) {
+
542 printf("found [%llX] key: %llX sec: %llX %llX\n",
543 static_cast<unsigned long long>(offset),
-
544 static_cast<unsigned long long>(itr->first),
-
545 static_cast<unsigned long long>(sec->getContentOffset(addrType)),
-
546 static_cast<unsigned long long>(sec->getContentEndOffset(addrType, false))
+
544 static_cast<unsigned long long>(itr->first),
+
545 static_cast<unsigned long long>(sec->getContentOffset(addrType)),
+
546 static_cast<unsigned long long>(sec->getContentEndOffset(addrType, false))
547 );
548 }
549
-
550 offset_t startOffset = sec->getContentOffset(addrType);
-
551 if (startOffset == INVALID_ADDR) continue;
+
550 offset_t startOffset = sec->getContentOffset(addrType);
+
551 if (startOffset == INVALID_ADDR) continue;
552
-
553 offset_t endOffset = sec->getContentEndOffset(addrType, recalculate);
+
553 offset_t endOffset = sec->getContentEndOffset(addrType, recalculate);
554
-
555 if (offset >= startOffset && offset < endOffset) {
-
556 return sec;
+
555 if (offset >= startOffset && offset < endOffset) {
+
556 return sec;
557 }
-
558 if (offset < startOffset) break;
+
558 if (offset < startOffset) break;
559 }
-
560 return NULL;
+
560 return NULL;
561}
+
562
-
563void SectHdrsWrapper::printSectionsMapping(Executable::addr_type aType)
+
+
563void SectHdrsWrapper::printSectionsMapping(Executable::addr_type aType)
564{
-
565 std::map<offset_t, SectionHdrWrapper*> *secMap = NULL;
+
565 std::map<offset_t, SectionHdrWrapper*> *secMap = NULL;
566
-
567 if (aType == Executable::RAW) {
-
568 secMap = &this->rSec;
-
569 } else if (aType == Executable::RVA || aType == Executable::VA) {
-
570 secMap = &this->vSec;
+
567 if (aType == Executable::RAW) {
+
568 secMap = &this->rSec;
+
569 } else if (aType == Executable::RVA || aType == Executable::VA) {
+
570 secMap = &this->vSec;
571 }
-
572 if (secMap == NULL) return;
+
572 if (secMap == NULL) return;
573
-
574 std::map<offset_t, SectionHdrWrapper*>::iterator itr;
-
575 for (itr = secMap->begin(); itr != secMap->end(); ++itr) {
-
576 SectionHdrWrapper* sec = itr->second;
-
577 offset_t secEnd = itr->first;
+
574 std::map<offset_t, SectionHdrWrapper*>::iterator itr;
+
575 for (itr = secMap->begin(); itr != secMap->end(); ++itr) {
+
576 SectionHdrWrapper* sec = itr->second;
+
577 offset_t secEnd = itr->first;
578
-
579 printf("[%llX] %s %llX %llX\n",
-
580 static_cast<unsigned long long>(secEnd),
-
581 sec->getName().toStdString().c_str(),
-
582 static_cast<unsigned long long>(sec->getContentOffset(aType)),
-
583 static_cast<unsigned long long>(sec->getContentEndOffset(aType, true))
+
579 printf("[%llX] %s %llX %llX\n",
+
580 static_cast<unsigned long long>(secEnd),
+
581 sec->getName().toStdString().c_str(),
+
582 static_cast<unsigned long long>(sec->getContentOffset(aType)),
+
583 static_cast<unsigned long long>(sec->getContentEndOffset(aType, true))
584 );
585 }
-
586 printf("---\n\n");
+
586 printf("---\n\n");
587}
+
588
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -741,7 +815,6 @@ $(function() {
SectionHdrWrapper::getContentDeclaredSize
bufsize_t getContentDeclaredSize(Executable::addr_type aType)
Definition SectHdrsWrapper.cpp:238
SectionHdrWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition SectHdrsWrapper.cpp:172
SectionHdrWrapper::translateCharacteristics
static QString translateCharacteristics(DWORD charact)
Definition SectHdrsWrapper.cpp:57
-
SectionHdrWrapper::getContentSize
bufsize_t getContentSize(Executable::addr_type aType, bool recalculate)
Definition SectHdrsWrapper.cpp:343
SectionHdrWrapper::getContentEndOffset
offset_t getContentEndOffset(Executable::addr_type aType, bool roundup)
Definition SectHdrsWrapper.cpp:227
SectionHdrWrapper::getContentOffset
offset_t getContentOffset(Executable::addr_type aType, bool useMapped=true)
Definition SectHdrsWrapper.cpp:206
SectionHdrWrapper::getSecHdrAccessRightsDesc
static QString getSecHdrAccessRightsDesc(DWORD characteristics)
Definition SectHdrsWrapper.cpp:13
@@ -763,7 +836,7 @@ $(function() { diff --git a/_sect_hdrs_wrapper_8h.html b/_sect_hdrs_wrapper_8h.html index 9c0770e8..39a2d2a4 100644 --- a/_sect_hdrs_wrapper_8h.html +++ b/_sect_hdrs_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/SectHdrsWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
4#include <vector>
5#include <map>
6
+
7class SectionHdrWrapper : public PENodeWrapper
8{
9public:
10 static const size_t SECNAME_LEN;
11
-
12 static std::vector<DWORD> splitCharacteristics(DWORD characteristics);
-
13 static QString getSecHdrAccessRightsDesc(DWORD characteristics);
+
12 static std::vector<DWORD> splitCharacteristics(DWORD characteristics);
+
13 static QString getSecHdrAccessRightsDesc(DWORD characteristics);
14
-
15 static void initSecCharacter(std::map<DWORD, QString> &secHdrCharact);
-
16 static QString translateCharacteristics(DWORD charact);
+
15 static void initSecCharacter(std::map<DWORD, QString> &secHdrCharact);
+
16 static QString translateCharacteristics(DWORD charact);
17
18 /* fields :*/
+
20 NAME = 0,
@@ -112,70 +119,79 @@ $(function() {
35 };
+
36
-
37 SectionHdrWrapper(PEFile *pe, size_t sectionNumber)
-
38 : PENodeWrapper(pe), sectNum(sectionNumber), name(NULL), header(NULL) { wrap(); }
+
+ +
38 : PENodeWrapper(pe), sectNum(sectionNumber), name(NULL), header(NULL) { wrap(); }
+
39
+
41 {
42 if (name) {
-
43 ::free(name);
+
43 ::free(name);
44 }
45 }
+
46
47 bool wrap();
48
49 /* full structure boundaries */
50 virtual void* getPtr();
51 virtual bufsize_t getSize();
-
52 virtual QString getName();
+
52 virtual QString getName();
53 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
54 virtual size_t getSubFieldsCount() { return 1; }
55
56 /* specific field boundaries */
-
57 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
-
58 virtual QString getFieldName(size_t fieldId);
+
57 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE);
+
58 virtual QString getFieldName(size_t fieldId);
59
-
60 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
-
61 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE);
+
60 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
61 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE);
62
-
63 offset_t getContentOffset(Executable::addr_type aType, bool useMapped = true);
-
64 offset_t getContentEndOffset(Executable::addr_type aType, bool roundup); //always useMapped startOFfset
+
63 offset_t getContentOffset(Executable::addr_type aType, bool useMapped = true);
+
64 offset_t getContentEndOffset(Executable::addr_type aType, bool roundup); //always useMapped startOFfset
65
-
66 bufsize_t getContentSize(Executable::addr_type aType, bool recalculate);
+
66 bufsize_t getContentSize(Executable::addr_type aType, bool recalculate);
67
68 /* wrappers */
-
69 DWORD getCharacteristics() { return header ? header->Characteristics : 0; }
+
69 DWORD getCharacteristics() { return header ? header->Characteristics : 0; }
70
-
71 DWORD getRawPtr() { return header ? header->PointerToRawData : 0; }
+
71 DWORD getRawPtr() { return header ? header->PointerToRawData : 0; }
72
-
73 DWORD getVirtualPtr() { return header ? header->VirtualAddress : 0; }
+
73 DWORD getVirtualPtr() { return header ? header->VirtualAddress : 0; }
74
75//modifications:
76
-
77 bool setCharacteristics(DWORD newCharacteristics)
+
+
78 {
79 if (!header) return false;
80 //TODO: validate newCharacteristics
81
-
82 header->Characteristics = newCharacteristics;
+
82 header->Characteristics = newCharacteristics;
83 return true;
84 }
+
85
86 bool reloadName();
87
-
88 QString mappedName;
+
88 QString mappedName;
89
90protected:
-
91 SectionHdrWrapper(PEFile *pe, IMAGE_SECTION_HEADER *v_header) //standalone entry
-
92 : PENodeWrapper(pe), sectNum(INVALID_ENTRYNUM), name(NULL), header(v_header)
+
+ +
93 {
94 reloadName();
95 }
+
96
-
97 offset_t getContentDeclaredOffset(Executable::addr_type aType);
+
97 offset_t getContentDeclaredOffset(Executable::addr_type aType);
98
-
99 bufsize_t getContentDeclaredSize(Executable::addr_type aType);
+
99 bufsize_t getContentDeclaredSize(Executable::addr_type aType);
100 bufsize_t getMappedRawSize();
101 bufsize_t getMappedVirtualSize();
102
@@ -184,13 +200,15 @@ $(function() {
105
106private:
107 static std::map<DWORD, QString> s_secHdrCharact;
-
108 IMAGE_SECTION_HEADER *header;
+
108 IMAGE_SECTION_HEADER *header;
109
110friend class PEFile;
111};
+
112
113//----
114
+
115class SectHdrsWrapper : public PENodeWrapper
116{
117public:
@@ -205,49 +223,55 @@ $(function() {
126 // full structure boundaries
127 virtual void* getPtr();
128 virtual bufsize_t getSize();
-
129 virtual QString getName() { return "Section Hdrs"; }
+
129 virtual QString getName() { return "Section Hdrs"; }
130 virtual size_t getFieldsCount();
131
132 // specific field boundaries
-
133 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
-
134 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField) { return getSubfieldSize(fieldId, subField ); }
-
135 virtual QString getFieldName(size_t fieldId);
+
133 virtual void* getFieldPtr(size_t fieldId, size_t subField) { return getSubfieldPtr(fieldId, subField ); }
+
134 virtual bufsize_t getFieldSize(size_t fieldId, size_t subField) { return getSubfieldSize(fieldId, subField ); }
+
135 virtual QString getFieldName(size_t fieldId);
136
-
137 SectionHdrWrapper* getSecHdrAtOffset(offset_t offset, Executable::addr_type addrType, bool roundup, bool verbose = false);
+
137 SectionHdrWrapper* getSecHdrAtOffset(offset_t offset, Executable::addr_type addrType, bool roundup, bool verbose = false);
138
-
139 void printSectionsMapping(Executable::addr_type aType);
+
139 void printSectionsMapping(Executable::addr_type aType);
140
-
141 size_t getSecIndex(SectionHdrWrapper* sec) const
+
+
142 {
-
143 if (!sec || !entries.size()) return SECT_INVALID_INDEX;
-
144 size_t indx = 0;
-
145 for (auto itr = entries.begin(); itr != entries.end(); ++itr, ++indx) {
-
146 if (sec == *itr) {
-
147 return indx;
+
143 if (!sec || !entries.size()) return SECT_INVALID_INDEX;
+
144 size_t indx = 0;
+
145 for (auto itr = entries.begin(); itr != entries.end(); ++itr, ++indx) {
+
146 if (sec == *itr) {
+
147 return indx;
148 }
149 }
-
150 return indx;
+
150 return indx;
151 }
+
152
-
153 SectionHdrWrapper* getSecHdr(size_t index) const
+
+
154 {
-
155 if (index == SECT_INVALID_INDEX || index >= entries.size()) return NULL;
-
156 return dynamic_cast<SectionHdrWrapper*>(entries.at(index));
+
155 if (index == SECT_INVALID_INDEX || index >= entries.size()) return NULL;
+
156 return dynamic_cast<SectionHdrWrapper*>(entries.at(index));
157 }
+
158
159 //---
160 bool canAddEntry();
-
161 ExeNodeWrapper* addEntry(ExeNodeWrapper *entry);
+
161 ExeNodeWrapper* addEntry(ExeNodeWrapper *entry);
162
163protected:
164 void clear();
-
165 void addMapping(SectionHdrWrapper *sec);
+
165 void addMapping(SectionHdrWrapper *sec);
166 virtual bool loadNextEntry(size_t entryNum);
-
167 bool isMyEntryType(ExeNodeWrapper *entry); // is it an entry of appropriate type
+
167 bool isMyEntryType(ExeNodeWrapper *entry); // is it an entry of appropriate type
168
169 std::map<offset_t, SectionHdrWrapper*> vSec;
170 std::map<offset_t, SectionHdrWrapper*> rSec;
171};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -336,7 +360,7 @@ $(function() { diff --git a/_security_dir_wrapper_8cpp.html b/_security_dir_wrapper_8cpp.html index 3897e601..41c1a994 100644 --- a/_security_dir_wrapper_8cpp.html +++ b/_security_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/SecurityDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
3
4pe::WIN_CERTIFICATE* SecurityDirWrapper::getCert()
5{
-
6 offset_t rva = getDirEntryAddress();
+
6 offset_t rva = getDirEntryAddress();
7
-
8 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RAW, sizeof(pe::WIN_CERTIFICATE));
-
9 if (ptr == NULL) return NULL;
+
8 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RAW, sizeof(pe::WIN_CERTIFICATE));
+
9 if (ptr == NULL) return NULL;
10
11 return (pe::WIN_CERTIFICATE*) ptr;
12}
13
+
14bool SecurityDirWrapper::wrap()
15{
16 this->sizeOk = false;
17
-
18 pe::WIN_CERTIFICATE* cert = getCert();
-
19 if (cert == NULL) return false;
+
18 pe::WIN_CERTIFICATE* cert = getCert();
+
19 if (cert == NULL) return false;
20
21 offset_t offset = this->getFieldOffset(SecurityDirWrapper::CERT_CONTENT);
22 if (offset == INVALID_ADDR) return false;
-
23 BYTE *ptr = NULL;
+
23 BYTE *ptr = NULL;
24
-
25 size_t fieldsSize = sizeof(cert->dwLength) + sizeof(cert->wRevision) + sizeof(cert->dwLength);
-
26 size_t certSize = cert->dwLength - fieldsSize;
-
27 ptr = m_Exe->getContentAt(offset, Executable::RAW, static_cast<bufsize_t>(certSize));
+
25 size_t fieldsSize = sizeof(cert->dwLength) + sizeof(cert->wRevision) + sizeof(cert->dwLength);
+
26 size_t certSize = cert->dwLength - fieldsSize;
+
27 ptr = m_Exe->getContentAt(offset, Executable::RAW, static_cast<bufsize_t>(certSize));
28
-
29 if (ptr == NULL) return false;
+
29 if (ptr == NULL) return false;
30
31 this->sizeOk = true;
32 return true;
33}
+
34
+
35void* SecurityDirWrapper::getPtr()
36{
37 return getCert();
38}
+
39
+
40bufsize_t SecurityDirWrapper::getSize()
41{
-
42 pe::WIN_CERTIFICATE* cert = getCert();
-
43 if (cert == NULL) return 0;
+
42 pe::WIN_CERTIFICATE* cert = getCert();
+
43 if (cert == NULL) return 0;
44
-
45 bufsize_t fullSize = static_cast<bufsize_t>(sizeof(pe::WIN_CERTIFICATE)); // TODO: check it
+
45 bufsize_t fullSize = static_cast<bufsize_t>(sizeof(pe::WIN_CERTIFICATE)); // TODO: check it
46 if (this->sizeOk) {
-
47 fullSize = static_cast<bufsize_t>(cert->dwLength);
+
47 fullSize = static_cast<bufsize_t>(cert->dwLength);
48 }
-
49 return fullSize;
+
49 return fullSize;
50}
+
51
52
-
53void* SecurityDirWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
53void* SecurityDirWrapper::getFieldPtr(size_t fId, size_t subField)
54{
-
55 pe::WIN_CERTIFICATE* cert = getCert();
-
56 if (cert == NULL) return 0;
+
55 pe::WIN_CERTIFICATE* cert = getCert();
+
56 if (cert == NULL) return 0;
57
-
58 switch (fId) {
-
59 case CERT_LEN : return &cert->dwLength;
-
60 case REVISION : return &cert->wRevision;
-
61 case TYPE : return &cert->wCertificateType;
-
62 case CERT_CONTENT : return &cert->bCertificate;
+
58 switch (fId) {
+
59 case CERT_LEN : return &cert->dwLength;
+
60 case REVISION : return &cert->wRevision;
+
61 case TYPE : return &cert->wCertificateType;
+
62 case CERT_CONTENT : return &cert->bCertificate;
63 }
64 return this->getPtr();
65}
+
66
-
67QString SecurityDirWrapper::getFieldName(size_t fieldId)
+
+
67QString SecurityDirWrapper::getFieldName(size_t fieldId)
68{
69 switch (fieldId) {
70 case CERT_LEN : return "Length";
@@ -153,18 +167,22 @@ $(function() {
74 }
75 return getName();
76}
+
77
-
78WrappedValue::data_type SecurityDirWrapper::containsDataType(size_t fieldId, size_t subField)
+
+
78WrappedValue::data_type SecurityDirWrapper::containsDataType(size_t fieldId, size_t subField)
79{
-
80 if (fieldId == CERT_CONTENT){
+
80 if (fieldId == CERT_CONTENT){
81 return WrappedValue::COMPLEX;
82 }
83 return WrappedValue::INT;
84}
+
85
-
86QString SecurityDirWrapper::translateType(int type)
+
+
86QString SecurityDirWrapper::translateType(int type)
87{
-
88 switch (type) {
+
88 switch (type) {
89 case pe::WIN_CERT_TYPE_X509 : return "X.509 certificate";
90 case pe::WIN_CERT_TYPE_PKCS_SIGNED_DATA : return "PKCS Signed Data";
91 case pe::WIN_CERT_TYPE_RESERVED_1 : return "Reserved";
@@ -172,16 +190,20 @@ $(function() {
93 }
94 return "";
95}
+
96
-
97QString SecurityDirWrapper::translateFieldContent(size_t fieldId)
+
+
97QString SecurityDirWrapper::translateFieldContent(size_t fieldId)
98{
-
99 if (fieldId != TYPE) return "";
+
99 if (fieldId != TYPE) return "";
100
-
101 pe::WIN_CERTIFICATE* cert = getCert();
-
102 if (cert == NULL) return "";
+
101 pe::WIN_CERTIFICATE* cert = getCert();
+
102 if (cert == NULL) return "";
103
-
104 return translateType(cert->wCertificateType);
+
104 return translateType(cert->wCertificateType);
105}
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
offset_t
uint64_t offset_t
Definition AbstractByteBuffer.h:17
@@ -211,7 +233,7 @@ $(function() { diff --git a/_security_dir_wrapper_8h.html b/_security_dir_wrapper_8h.html index cd396aba..05768e2d 100644 --- a/_security_dir_wrapper_8h.html +++ b/_security_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/SecurityDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
11} WIN_CERTIFICATE, *LPWIN_CERTIFICATE;
12*/
13
+
14class SecurityDirWrapper : public DataDirEntryWrapper
15{
16public:
17
+
@@ -102,12 +109,15 @@ $(function() {
25 };
+
26
+
-
28 : DataDirEntryWrapper(pe, pe::DIR_SECURITY), sizeOk(false)
+
28 : DataDirEntryWrapper(pe, pe::DIR_SECURITY), sizeOk(false)
29 {
30 wrap();
31 }
+
32
33 ~SecurityDirWrapper() { clear(); }
34
@@ -116,16 +126,16 @@ $(function() {
37 virtual void* getPtr();
38
39 virtual bufsize_t getSize();
-
40 virtual QString getName() { return "Security"; }
+
40 virtual QString getName() { return "Security"; }
41 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
42 virtual size_t getSubFieldsCount() { return 1; }
43
-
44 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
45 virtual QString getFieldName(size_t fieldId);
-
46 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE);
+
44 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
45 virtual QString getFieldName(size_t fieldId);
+
46 virtual WrappedValue::data_type containsDataType(size_t fieldId, size_t subField = FIELD_NONE);
47
-
48 QString translateType(int type);
-
49 virtual QString translateFieldContent(size_t fieldId);
+
48 QString translateType(int type);
+
49 virtual QString translateFieldContent(size_t fieldId);
50
51private:
52 pe::WIN_CERTIFICATE* getCert();
@@ -133,6 +143,8 @@ $(function() {
54
55 bool sizeOk;
56};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
DataDirEntryWrapper.h
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -163,7 +175,7 @@ $(function() { diff --git a/_tls_dir_wrapper_8cpp.html b/_tls_dir_wrapper_8cpp.html index 7dba8faf..0f27de29 100644 --- a/_tls_dir_wrapper_8cpp.html +++ b/_tls_dir_wrapper_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/pe/TlsDirWrapper.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "pe/TlsDirWrapper.h"
2#include "pe/PEFile.h"
3
+
5{
6 clear();
-
7 size_t entryId = 0;
+
7 size_t entryId = 0;
8 while (true) {
-
9 TlsEntryWrapper* entry = new TlsEntryWrapper(this->m_Exe, this, entryId++);
+
9 TlsEntryWrapper* entry = new TlsEntryWrapper(this->m_Exe, this, entryId++);
10
-
11 if (entry->getPtr() == NULL) {
-
12 delete entry;
+
11 if (entry->getPtr() == NULL) {
+
12 delete entry;
13 break;
14 }
15
-
16 bool isOk = false;
-
17 uint64_t val = entry->getNumValue(TlsEntryWrapper::CALLBACK_ADDR, &isOk);
-
18 if (!isOk || val == 0) {
-
19 delete entry;
+
16 bool isOk = false;
+ +
18 if (!isOk || val == 0) {
+
19 delete entry;
20 break;
21 }
22 this->entries.push_back(entry);
23 }
24 return true;
25}
+
26
+
28{
@@ -110,62 +118,68 @@ $(function() {
31 }
32 return tls64();
33}
+
34
+
36{
-
37 if (getPtr() == NULL) return 0;
+
37 if (getPtr() == NULL) return 0;
-
39 return sizeof(IMAGE_TLS_DIRECTORY32);
+
39 return sizeof(IMAGE_TLS_DIRECTORY32);
40 }
-
41 return sizeof(IMAGE_TLS_DIRECTORY64);
+
41 return sizeof(IMAGE_TLS_DIRECTORY64);
42}
+
43
44void* TlsDirWrapper::getTlsDirPtr()
45{
-
46 bufsize_t dirSize = 0;
+
47
-
49 dirSize = sizeof(IMAGE_TLS_DIRECTORY32);
+
50 } else if (m_Exe->getBitMode() == Executable::BITS_64) {
-
51 dirSize = sizeof(IMAGE_TLS_DIRECTORY64);
+
52 }
53
- -
55 BYTE *ptr = m_Exe->getContentAt(rva, Executable::RVA, dirSize);
+ +
56 return ptr;
57}
58
-
59IMAGE_TLS_DIRECTORY32* TlsDirWrapper::tls32()
+
59IMAGE_TLS_DIRECTORY32* TlsDirWrapper::tls32()
60{
-
61 if (m_Exe->getBitMode() != Executable::BITS_32) return NULL;
-
62 return (IMAGE_TLS_DIRECTORY32*) getTlsDirPtr();
+
61 if (m_Exe->getBitMode() != Executable::BITS_32) return NULL;
+
62 return (IMAGE_TLS_DIRECTORY32*) getTlsDirPtr();
63}
64
-
65IMAGE_TLS_DIRECTORY64* TlsDirWrapper::tls64()
+
65IMAGE_TLS_DIRECTORY64* TlsDirWrapper::tls64()
66{
-
67 if (m_Exe->getBitMode() != Executable::BITS_64) return NULL;
-
68 return (IMAGE_TLS_DIRECTORY64*) getTlsDirPtr();
+
67 if (m_Exe->getBitMode() != Executable::BITS_64) return NULL;
+
68 return (IMAGE_TLS_DIRECTORY64*) getTlsDirPtr();
69}
70
-
71void* TlsDirWrapper::getFieldPtr(size_t fId, size_t subField)
+
+
72{
-
73 IMAGE_TLS_DIRECTORY32* t32 = tls32();
-
74 IMAGE_TLS_DIRECTORY64* t64 = tls64();
+
73 IMAGE_TLS_DIRECTORY32* t32 = tls32();
+
74 IMAGE_TLS_DIRECTORY64* t64 = tls64();
75
-
76 if (t32 == NULL && t64 == NULL) return NULL;
+
76 if (t32 == NULL && t64 == NULL) return NULL;
77
-
78 switch (fId) {
-
79 case START_ADDR : return t32 ? (void*) &t32->StartAddressOfRawData : (void*) &t64->StartAddressOfRawData;
-
80 case END_ADDR : return t32 ? (void*) &t32->EndAddressOfRawData : (void*) &t64->EndAddressOfRawData;
-
81 case INDEX_ADDR : return t32 ? (void*) &t32->AddressOfIndex : (void*) &t64->AddressOfIndex;
-
82 case CALLBACKS_ADDR : return t32 ? (void*) &t32->AddressOfCallBacks : (void*) &t64->AddressOfCallBacks;
-
83 case ZEROF_SIZE : return t32 ? (void*) &t32->SizeOfZeroFill : (void*) &t64->SizeOfZeroFill;
-
84 case CHARACT : return t32 ? (void*) &t32->Characteristics : (void*) &t64->Characteristics;
+
78 switch (fId) {
+
79 case START_ADDR : return t32 ? (void*) &t32->StartAddressOfRawData : (void*) &t64->StartAddressOfRawData;
+
80 case END_ADDR : return t32 ? (void*) &t32->EndAddressOfRawData : (void*) &t64->EndAddressOfRawData;
+
81 case INDEX_ADDR : return t32 ? (void*) &t32->AddressOfIndex : (void*) &t64->AddressOfIndex;
+
82 case CALLBACKS_ADDR : return t32 ? (void*) &t32->AddressOfCallBacks : (void*) &t64->AddressOfCallBacks;
+
83 case ZEROF_SIZE : return t32 ? (void*) &t32->SizeOfZeroFill : (void*) &t64->SizeOfZeroFill;
+
84 case CHARACT : return t32 ? (void*) &t32->Characteristics : (void*) &t64->Characteristics;
85 }
86 return this->getPtr();
87}
+
88
-
89QString TlsDirWrapper::getFieldName(size_t fieldId)
+
+
90{
91 switch (fieldId) {
92 case START_ADDR : return "StartAddressOfRawData";
@@ -177,10 +191,12 @@ $(function() {
98 }
99 return getName();
100}
+
101
- +
+
103{
-
104 switch (fieldId) {
+
104 switch (fieldId) {
105 case START_ADDR :
106 case END_ADDR :
107 case INDEX_ADDR :
@@ -189,33 +205,39 @@ $(function() {
110 }
112}
+
113
114//----------------
+
116{
-
117 if (this->parentDir == NULL) return NULL;
+
117 if (this->parentDir == NULL) return NULL;
118
-
119 bool isOk = false;
-
120 offset_t firstVA = static_cast<offset_t>(this->parentDir->getNumValue(TlsDirWrapper::CALLBACKS_ADDR, &isOk));
-
121 if (!isOk) return NULL;
+
119 bool isOk = false;
+
120 offset_t firstVA = static_cast<offset_t>(this->parentDir->getNumValue(TlsDirWrapper::CALLBACKS_ADDR, &isOk));
+
121 if (!isOk) return NULL;
122
-
123 offset_t firstRaw = m_Exe->toRaw(firstVA, Executable::VA);
-
124 if (firstRaw == INVALID_ADDR) {
-
125 return NULL;
+ +
124 if (firstRaw == INVALID_ADDR) {
+
125 return NULL;
126 }
127
-
128 bufsize_t addrSize = this->parentDir->getFieldSize(TlsDirWrapper::CALLBACKS_ADDR);
-
129 offset_t myRaw = firstRaw + (addrSize * this->entryNum);
-
130 BYTE *ptr = m_Exe->getContentAt(myRaw, Executable::RAW, addrSize);
+ + +
131 return ptr;
132}
+
133
+
135{
-
136 if (this->parentDir == NULL) return 0;
-
137 bufsize_t addrSize = this->parentDir->getFieldSize(TlsDirWrapper::CALLBACKS_ADDR);
-
138 return addrSize;
+
136 if (this->parentDir == NULL) return 0;
+ +
138 return addrSize;
139}
+
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -258,7 +280,7 @@ $(function() {
diff --git a/_tls_dir_wrapper_8h.html b/_tls_dir_wrapper_8h.html index 2a04c009..fc85fffe 100644 --- a/_tls_dir_wrapper_8h.html +++ b/_tls_dir_wrapper_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/TlsDirWrapper.h File Reference @@ -30,7 +30,7 @@ - + +
6class TlsEntryWrapper;
7class TlsDirWrapper;
8
+
9class TlsDirWrapper : public DataDirEntryWrapper
10{
11public:
12 /* fields :*/
+
13 enum TlsDirFID {
@@ -99,60 +106,71 @@ $(function() {
22 };
+
23
+
-
25 : DataDirEntryWrapper(pe, pe::DIR_TLS) { wrap(); }
+
25 : DataDirEntryWrapper(pe, pe::DIR_TLS) { wrap(); }
+
26
27 bool wrap();
28
29 virtual void* getPtr();
30 virtual bufsize_t getSize();
31
-
32 virtual QString getName() { return "TLS"; }
+
32 virtual QString getName() { return "TLS"; }
33 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
34 virtual size_t getSubFieldsCount() { return 1; }
35
-
36 virtual void* getFieldPtr(size_t fieldId, size_t subField);
-
37 virtual QString getFieldName(size_t fieldId);
-
38 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
+
36 virtual void* getFieldPtr(size_t fieldId, size_t subField);
+
37 virtual QString getFieldName(size_t fieldId);
+
38 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
39
40private:
41 inline void* getTlsDirPtr();
-
42 IMAGE_TLS_DIRECTORY64* tls64();
-
43 IMAGE_TLS_DIRECTORY32* tls32();
+
42 IMAGE_TLS_DIRECTORY64* tls64();
+
43 IMAGE_TLS_DIRECTORY32* tls32();
44};
+
45
46
+
47class TlsEntryWrapper : public ExeNodeWrapper
48{
49public:
50 // fields :
+
51 enum FieldID {
55 };
+
56
-
57 TlsEntryWrapper(Executable *pe, TlsDirWrapper *parentDir, size_t entryNumber)
-
58 : ExeNodeWrapper(pe, parentDir, entryNumber) { this->parentDir = parentDir; }
+
+ +
58 : ExeNodeWrapper(pe, parentDir, entryNumber) { this->parentDir = parentDir; }
+
59
60 // full structure boundaries
61 virtual void* getPtr();
62 virtual bufsize_t getSize();
63
-
64 virtual QString getName() { return "TLS Callback"; }
+
64 virtual QString getName() { return "TLS Callback"; }
65 virtual size_t getFieldsCount() { return FIELD_COUNTER; }
66 virtual size_t getSubFieldsCount() { return 1; }
67
68 // specific field boundaries
-
69 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE) { return getPtr(); }
-
70 virtual QString getFieldName(size_t fieldId) { return getName(); }
-
71 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::VA; }
+
69 virtual void* getFieldPtr(size_t fieldId, size_t subField = FIELD_NONE) { return getPtr(); }
+
70 virtual QString getFieldName(size_t fieldId) { return getName(); }
+
71 virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField) { return Executable::VA; }
72
73private:
74 TlsDirWrapper* parentDir;
75
76};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
DataDirEntryWrapper.h
FIELD_NONE
#define FIELD_NONE
Definition ExeElementWrapper.h:9
@@ -200,7 +218,7 @@ $(function() { diff --git a/_util_8cpp.html b/_util_8cpp.html index 0896a3b3..fbf80f0e 100644 --- a/_util_8cpp.html +++ b/_util_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/Util.cpp File Reference @@ -30,7 +30,7 @@ - + +
5
6#define MAX_LINE 255
7
-
8bool Logger::append(dbg_level lvl, const char* format, ...)
+
+
8bool Logger::append(dbg_level lvl, const char* format, ...)
9{
-
10 if (lvl > DBG_LVL) {
+
10 if (lvl > DBG_LVL) {
11 return false;
12 }
-
13 if (format == NULL) {
+
13 if (format == NULL) {
14 return false;
15 }
-
16 va_list argptr;
+
16 va_list argptr;
17 // Initializing arguments to store all values after format
-
18 va_start(argptr, format);
+
18 va_start(argptr, format);
19
-
20 char line[MAX_LINE + 1];
-
21 memset(line, 0, MAX_LINE + 1);
+
20 char line[MAX_LINE + 1];
+
21 memset(line, 0, MAX_LINE + 1);
22
-
23 int printed = vsnprintf(line, MAX_LINE, format, argptr);
+
23 int printed = vsnprintf(line, MAX_LINE, format, argptr);
24
25 //cleaning up the list:
-
26 va_end(argptr);
-
27 if (printed <= 0) return false;
+
26 va_end(argptr);
+
27 if (printed <= 0) return false;
28
-
29 const char *prefixes[D_LVL_COUNT] = { "ERROR", "WARNING", "INFO" };
-
30 if (static_cast<unsigned>(lvl) > static_cast<unsigned>(D_LVL_COUNT)) {
-
31 lvl = Logger::D_ERROR;
+
29 const char *prefixes[D_LVL_COUNT] = { "ERROR", "WARNING", "INFO" };
+
30 if (static_cast<unsigned>(lvl) > static_cast<unsigned>(D_LVL_COUNT)) {
+
31 lvl = Logger::D_ERROR;
32 }
33
-
34 fprintf(stderr, "[%s] %s\n", prefixes[lvl], line);
+
34 fprintf(stderr, "[%s] %s\n", prefixes[lvl], line);
35 return true;
36}
+
37
-
38bool pe_util::isStrLonger(const char *inp, size_t maxLen)
+
+
38bool pe_util::isStrLonger(const char *inp, size_t maxLen)
39{
-
40 for (size_t i = 0; i < maxLen; i++ ) {
-
41 if (inp[i] == '\0') return false;
+
40 for (size_t i = 0; i < maxLen; i++ ) {
+
41 if (inp[i] == '\0') return false;
42 }
43 return true;
44}
+
45
-
46size_t pe_util::getAsciiLen(const char *inp, size_t maxInp, bool acceptNotTerminated)
+
+
46size_t pe_util::getAsciiLen(const char *inp, size_t maxInp, bool acceptNotTerminated)
47{
-
48 size_t i = 0;
-
49 for (; i < maxInp; i++) {
-
50 const char c = inp[i];
-
51 if (c == '\0') return i; //end of string
-
52 if (!IS_PRINTABLE(c) && !IS_ENDLINE(c)) return 0;
+
48 size_t i = 0;
+
49 for (; i < maxInp; i++) {
+
50 const char c = inp[i];
+
51 if (c == '\0') return i; //end of string
+
52 if (!IS_PRINTABLE(c) && !IS_ENDLINE(c)) return 0;
53 }
-
54 if (acceptNotTerminated) return i;
+
54 if (acceptNotTerminated) return i;
55 return 0;
56}
+
57
-
58size_t pe_util::getAsciiLenW(const WORD *inp, size_t maxInp, bool acceptNotTerminated)
+
+
58size_t pe_util::getAsciiLenW(const WORD *inp, size_t maxInp, bool acceptNotTerminated)
59{
-
60 size_t i = 0;
-
61 for (; i < maxInp; i++) {
-
62 const WORD w = inp[i];
-
63 if (w == 0) return i; //end of string
-
64 if (!IS_PRINTABLE(w) && !IS_ENDLINE(w)) return 0;
+
60 size_t i = 0;
+
61 for (; i < maxInp; i++) {
+
62 const WORD w = inp[i];
+
63 if (w == 0) return i; //end of string
+
64 if (!IS_PRINTABLE(w) && !IS_ENDLINE(w)) return 0;
65 }
-
66 if (acceptNotTerminated) return i;
+
66 if (acceptNotTerminated) return i;
67 return 0;
68}
+
69
-
70bool pe_util::hasNonPrintable(const char *inp, size_t maxInp)
+
+
70bool pe_util::hasNonPrintable(const char *inp, size_t maxInp)
71{
-
72 unsigned int i = 0;
-
73 for ( i = 0; i < maxInp; i++) {
-
74 char c = inp[i];
-
75 if (c == '\0') break; //end of string
-
76 if (!IS_PRINTABLE(c)) return true;
+
72 unsigned int i = 0;
+
73 for ( i = 0; i < maxInp; i++) {
+
74 char c = inp[i];
+
75 if (c == '\0') break; //end of string
+
76 if (!IS_PRINTABLE(c)) return true;
77 }
78 return false;
79}
+
80
-
81bool _isFuncChar(const char c)
+
+
81bool _isFuncChar(const char c)
82{
-
83 if ((c >= 'a' && c <= 'z')
-
84 || (c >= 'A' && c <= 'Z')
-
85 || (c >= '0' && c <= '9')
-
86 || (c == '_')
-
87 || (c == '.')
-
88 || (c== '#')
-
89 || (c == '@')
-
90 || (c == '?')
-
91 || (c == '-')
+
83 if ((c >= 'a' && c <= 'z')
+
84 || (c >= 'A' && c <= 'Z')
+
85 || (c >= '0' && c <= '9')
+
86 || (c == '_')
+
87 || (c == '.')
+
88 || (c== '#')
+
89 || (c == '@')
+
90 || (c == '?')
+
91 || (c == '-')
92 )
93 {
94 return true;
95 }
96 return false;
97}
+
98
-
99bool pe_util::validateFuncName(const char* fPtr, size_t bufSize)
+
+
99bool pe_util::validateFuncName(const char* fPtr, size_t bufSize)
100{
-
101 if (!fPtr || !bufSize) return false;
+
101 if (!fPtr || !bufSize) return false;
102
-
103 for (char i = 0; i < bufSize; i++) {
-
104 const char c = fPtr[i];
-
105 if (c == 0) break;
-
106 if (!_isFuncChar(c)) {
+
103 for (char i = 0; i < bufSize; i++) {
+
104 const char c = fPtr[i];
+
105 if (c == 0) break;
+
106 if (!_isFuncChar(c)) {
107 return false;
108 }
109 }
110 return true;
111}
+
112
-
113size_t pe_util::forwarderNameLen(const char* fPtr, size_t bufSize)
+
+
113size_t pe_util::forwarderNameLen(const char* fPtr, size_t bufSize)
114{
-
115 if (!fPtr || bufSize == 0) return 0;
+
115 if (!fPtr || bufSize == 0) return 0;
116
117 // names can be also mangled, i.e. MSVCRT.??0__non_rtti_object@std@@QAE@ABV01@@Z
-
118 bool has_dot = false;
-
119 size_t len = 0;
-
120 while ((*fPtr == '.') || _isFuncChar(*fPtr))
+
118 bool has_dot = false;
+
119 size_t len = 0;
+
120 while ((*fPtr == '.') || _isFuncChar(*fPtr))
121 {
-
122 if (*fPtr == '.') has_dot = true;
-
123 len++;
-
124 if ((--bufSize) == 0) break;
-
125 fPtr++;
+
122 if (*fPtr == '.') has_dot = true;
+
123 len++;
+
124 if ((--bufSize) == 0) break;
+
125 fPtr++;
126 }
-
127 if (*fPtr == '\0') {
-
128 if (!has_dot) {
+
127 if (*fPtr == '\0') {
+
128 if (!has_dot) {
129 return 0; //this is not a valid forwarder
130 }
-
131 return len;
+
131 return len;
132 }
133 return 0;
134}
+
135
-
136size_t pe_util::noWhiteCount(char *buf, size_t bufSize) {
-
137 size_t cntr = 0;
-
138 size_t i = 0;
-
139 for (i = 0; i < bufSize; i++) {
-
140 if (IS_PRINTABLE(buf[i]) && buf[i] != ' ')
-
141 cntr++;
+
+
136size_t pe_util::noWhiteCount(char *buf, size_t bufSize) {
+
137 size_t cntr = 0;
+
138 size_t i = 0;
+
139 for (i = 0; i < bufSize; i++) {
+
140 if (IS_PRINTABLE(buf[i]) && buf[i] != ' ')
+
141 cntr++;
142 }
-
143 return cntr;
+
143 return cntr;
144}
+
145
-
146size_t pe_util::noWhiteCount(std::string s)
+
+
146size_t pe_util::noWhiteCount(std::string s)
147{
-
148 size_t bufSize = s.length();
-
149 size_t cntr = 0;
-
150 size_t i = 0;
-
151 for (i = 0; i < bufSize; i++) {
-
152 if (IS_PRINTABLE(s[i]) && s[i] != ' ')
-
153 cntr++;
+
148 size_t bufSize = s.length();
+
149 size_t cntr = 0;
+
150 size_t i = 0;
+
151 for (i = 0; i < bufSize; i++) {
+
152 if (IS_PRINTABLE(s[i]) && s[i] != ' ')
+
153 cntr++;
154 }
-
155 return cntr;
+
155 return cntr;
156}
+
157
-
158bool pe_util::isSpaceClear(void* ptr, uint64_t size)
+
+
158bool pe_util::isSpaceClear(void* ptr, uint64_t size)
159{
-
160 BYTE* testblock = (BYTE*) calloc(size, sizeof(BYTE));
-
161 bool isClear = true;
-
162 if (memcmp (testblock, ptr, size)) {
-
163 isClear = false;
+
160 BYTE* testblock = (BYTE*) calloc(size, sizeof(BYTE));
+
161 bool isClear = true;
+
162 if (memcmp (testblock, ptr, size)) {
+
163 isClear = false;
164 }
-
165 free(testblock);
-
166 return isClear;
+
165 free(testblock);
+
166 return isClear;
167}
+
168
-
169bool pe_util::isHexChar(char c)
+
+
169bool pe_util::isHexChar(char c)
170{
-
171 if (isdigit(c)) return true;
-
172 if (c >= 'A' && c <= 'F') return true;
-
173 if (c >= 'a' && c <= 'f') return true;
+
171 if (isdigit(c)) return true;
+
172 if (c >= 'A' && c <= 'F') return true;
+
173 if (c >= 'a' && c <= 'f') return true;
174 return false;
175}
+
176
-
177void pe_util::hexdump(BYTE *buf, size_t bufSize, size_t pad)
+
+
177void pe_util::hexdump(BYTE *buf, size_t bufSize, size_t pad)
178{
-
179 if (buf == NULL) return;
-
180 printf("\n---\n");
-
181 for (size_t i = 0; i < bufSize; i++) {
-
182 if (i % pad == 0) printf("\n");
-
183 printf("0x%02X ", buf[i]);
+
179 if (buf == NULL) return;
+
180 printf("\n---\n");
+
181 for (size_t i = 0; i < bufSize; i++) {
+
182 if (i % pad == 0) printf("\n");
+
183 printf("0x%02X ", buf[i]);
184 }
-
185 printf("\n---\n");
+
185 printf("\n---\n");
186}
+
187
-
188bool pe_util::endsWith(std::string str, std::string endStr)
+
+
188bool pe_util::endsWith(std::string str, std::string endStr)
189{
-
190 if (str.length() < endStr.length()) {
+
190 if (str.length() < endStr.length()) {
191 return false;
192 }
-
193 size_t pos = str.length() - endStr.length();
-
194 std::string str3 = str.substr(pos);
-
195 if ( str3 == endStr ) {
+
193 size_t pos = str.length() - endStr.length();
+
194 std::string str3 = str.substr(pos);
+
195 if ( str3 == endStr ) {
196 return true;
197 }
198 return false;
199}
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
MAX_LINE
#define MAX_LINE
Definition Util.cpp:6
_isFuncChar
bool _isFuncChar(const char c)
Definition Util.cpp:81
Util.h
@@ -301,7 +335,7 @@ $(function() { diff --git a/_util_8h.html b/_util_8h.html index 87c92d00..aabb5941 100644 --- a/_util_8h.html +++ b/_util_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/Util.h File Reference @@ -30,7 +30,7 @@ - + +
18#define DBG_LVL 0
19#endif
20
-
21#define TRACE() if (DBG_LVL) printf(">%s line: %d [%s]\n", __FUNCTION__, __LINE__, __FILE__);
-
22#define LOG(msg) if (DBG_LVL) printf("%s: %s\n", __FUNCTION__,msg);
+
21#define TRACE() if (DBG_LVL) printf(">%s line: %d [%s]\n", __FUNCTION__, __LINE__, __FILE__);
+
22#define LOG(msg) if (DBG_LVL) printf("%s: %s\n", __FUNCTION__,msg);
23
+
24namespace Logger {
+
27 };
-
28 bool append(dbg_level lvl, const char* format, ...);
+
+
28 bool append(dbg_level lvl, const char* format, ...);
29};
+
30//----
+
31namespace pe_util {
-
32 inline bool isPrintable(char c) { return IS_PRINTABLE(c); }
+
32 inline bool isPrintable(char c) { return IS_PRINTABLE(c); }
33
-
34 bool isStrLonger(const char *inp, size_t maxLen);
+
34 bool isStrLonger(const char *inp, size_t maxLen);
35 //QString getString(const char *ptr, size_t maxInp, size_t maxBuf = DEFAULT_BUFSIZE);
-
36 bool hasNonPrintable(const char *ptr, size_t maxInp);
-
37 size_t getAsciiLen(const char *ptr, size_t maxCount, bool acceptNotTerminated = false);
-
38 size_t getAsciiLenW(const WORD *ptr, size_t maxCount, bool acceptNotTerminated = false);
+
36 bool hasNonPrintable(const char *ptr, size_t maxInp);
+
37 size_t getAsciiLen(const char *ptr, size_t maxCount, bool acceptNotTerminated = false);
+
38 size_t getAsciiLenW(const WORD *ptr, size_t maxCount, bool acceptNotTerminated = false);
39
-
40 size_t noWhiteCount(char *buf, size_t bufSize);
+
40 size_t noWhiteCount(char *buf, size_t bufSize);
41 size_t noWhiteCount(std::string);
-
42 bool validateFuncName(const char* fPtr, size_t bufSize);
-
43 size_t forwarderNameLen(const char *ptr, size_t max_len);
+
42 bool validateFuncName(const char* fPtr, size_t bufSize);
+
43 size_t forwarderNameLen(const char *ptr, size_t max_len);
44
-
45 void hexdump(BYTE *buf, size_t bufSize, size_t pad);
+
45 void hexdump(BYTE *buf, size_t bufSize, size_t pad);
46
-
47 inline size_t unitsCount(uint64_t value, uint64_t unit, bool roundup = true)
+
+
47 inline size_t unitsCount(uint64_t value, uint64_t unit, bool roundup = true)
48 {
-
49 if (unit == 0) return 0;
-
50 size_t units = value / unit;
+
49 if (unit == 0) return 0;
+
50 size_t units = value / unit;
51 if (roundup) {
-
52 if (value % unit) units++;
+
52 if (value % unit) units++;
53 }
-
54 return units;
+
54 return units;
55 }
+
56
-
57 inline uint64_t roundup(uint64_t value, uint64_t unit)
+
+
58 {
-
59 const size_t units = unitsCount(value, unit);
-
60 return units * unit;
+
59 const size_t units = unitsCount(value, unit);
+
60 return units * unit;
61 }
+
62
-
63 bool isSpaceClear(void* ptr, uint64_t size);
-
64 bool isHexChar(char c);
+
63 bool isSpaceClear(void* ptr, uint64_t size);
+
64 bool isHexChar(char c);
65
-
66 bool endsWith(std::string string, std::string endStr);
+
66 bool endsWith(std::string string, std::string endStr);
67};
+
68
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
IS_PRINTABLE
#define IS_PRINTABLE(c)
Definition Util.h:11
Logger
Definition Util.h:24
Logger::append
bool append(dbg_level lvl, const char *format,...)
Definition Util.cpp:8
@@ -171,7 +187,7 @@ $(function() { diff --git a/_wrapped_value_8cpp.html b/_wrapped_value_8cpp.html index 2f20d137..90b2e7aa 100644 --- a/_wrapped_value_8cpp.html +++ b/_wrapped_value_8cpp.html @@ -3,7 +3,7 @@ - + BearParser: parser/WrappedValue.cpp File Reference @@ -30,7 +30,7 @@ - + +
Go to the documentation of this file.
1#include "WrappedValue.h"
2
- +
+
4{
5 if (m_Type == INT) {
-
6 bool isOk = false;
+
6 bool isOk = false;
7
-
8 qlonglong num = (qlonglong) m_Owner->getNumValue(m_Offset, m_Size, &isOk);
-
9 if (!isOk) return QVariant("INVALID");
-
10 return QVariant(num);
+ +
9 if (!isOk) return QVariant("INVALID");
+
10 return QVariant(num);
11 }
12 if (m_Type == STRING) {
-
13 char *strPtr = (char*) this->m_Owner->getContentAt(m_Offset, m_Size);
-
14 if (strPtr == NULL) return QVariant();
-
15 return QString(strPtr);
+
13 char *strPtr = (char*) this->m_Owner->getContentAt(m_Offset, m_Size);
+
14 if (strPtr == NULL) return QVariant();
+
15 return QString(strPtr);
16 }
17 if (this->m_Type == WSTRING) {
18
-
19 bufsize_t wSize = m_Size / bufsize_t(sizeof(WORD));
-
20 WORD *strPtr = (WORD*) this->m_Owner->getContentAt(m_Offset, m_Size);
-
21 return QString::fromUtf16(strPtr, static_cast<int>(wSize));
+
19 bufsize_t wSize = m_Size / bufsize_t(sizeof(WORD));
+ +
21 return QString::fromUtf16(strPtr, static_cast<int>(wSize));
22 }
-
23 return QVariant("...");
+
23 return QVariant("...");
24}
+
25
- +
+
27{
-
28 QString format = "%0" + QString::number(m_Size * 2) +"llX";
-
29 return format;
+
28 QString format = "%0" + QString::number(m_Size * 2) +"llX";
+
29 return format;
30}
+
31
- +
+
33{
34 if (this->m_Type == NONE) return "";
35 if (this->m_Type == COMPLEX) return "...";
36
-
37 QVariant val = getQVariant();
+
38
39 if (this->m_Type == STRING || this->m_Type == WSTRING) {
40 return val.toString();
@@ -121,21 +131,23 @@ $(function() {
42 if (this->m_Type == INT) {
43
44 bufsize_t size = this->m_Size;
-
45 if (size > sizeof(uint64_t)) return "...";
+
45 if (size > sizeof(uint64_t)) return "...";
46
-
47 bool isOk = false;
-
48 uint64_t num = m_Owner->getNumValue(m_Offset, m_Size, &isOk);
-
49 if (!isOk) return "INVALID";
-
50 QString out;
+
47 bool isOk = false;
+ +
49 if (!isOk) return "INVALID";
+
51#if QT_VERSION >= 0x050000
-
52 out = QString::asprintf(getIntFormat().toStdString().c_str(), num);
+
52 out = QString::asprintf(getIntFormat().toStdString().c_str(), num);
53#else
-
54 out.sprintf(getIntFormat().toStdString().c_str(), num);
+
54 out.sprintf(getIntFormat().toStdString().c_str(), num);
55#endif
-
56 return out;
+
56 return out;
57 }
58 return getQVariant().toString();
59}
+
+
INT_TYPE _getNumValue(void *ptr)
uint32_t bufsize_t
virtual BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
@@ -155,7 +167,7 @@ $(function() {
diff --git a/_wrapped_value_8h.html b/_wrapped_value_8h.html index 927aad58..159d3da2 100644 --- a/_wrapped_value_8h.html +++ b/_wrapped_value_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/WrappedValue.h File Reference @@ -30,7 +30,7 @@ - + +
9#include <iostream>
10#include <stdlib.h>
11
+
12class WrappedValue {
13public:
14
+
15 enum data_type {
16 NONE = 0,
@@ -99,26 +106,33 @@ $(function() {
22 };
+
23
+
- + +
26
-
27 WrappedValue(AbstractByteBuffer *owner, offset_t offset, bufsize_t size, data_type type)
-
28 : m_Type(type), m_Owner(owner), m_Offset(offset), m_Size(size) {}
+
+ +
28 : m_Type(type), m_Owner(owner), m_Offset(offset), m_Size(size) {}
+
29
30 data_type getDataType() { return m_Type; }
-
31 QVariant getQVariant();
-
32 QString toQString();
+
31 QVariant getQVariant();
+
32 QString toQString();
33 bool isValid() { return (m_Size != 0); }
34
35protected:
-
36 virtual QString getIntFormat();
+
36 virtual QString getIntFormat();
37
38 data_type m_Type;
39 AbstractByteBuffer* m_Owner;
40 offset_t m_Offset;
41 bufsize_t m_Size;
42};
+
+
_getNumValue
INT_TYPE _getNumValue(void *ptr)
Definition AbstractByteBuffer.cpp:291
AbstractByteBuffer.h
bufsize_t
uint32_t bufsize_t
Definition AbstractByteBuffer.h:14
INVALID_ADDR
const offset_t INVALID_ADDR
Definition AbstractByteBuffer.h:18
@@ -147,7 +161,7 @@ $(function() { diff --git a/annotated.html b/annotated.html index d128dc77..ae2c80a0 100644 --- a/annotated.html +++ b/annotated.html @@ -3,7 +3,7 @@ - + BearParser: Class List @@ -30,7 +30,7 @@ - + +
diff --git a/class_abstract_byte_buffer-members.html b/class_abstract_byte_buffer-members.html index 094a1a13..9944038c 100644 --- a/class_abstract_byte_buffer-members.html +++ b/class_abstract_byte_buffer-members.html @@ -3,7 +3,7 @@ - + BearParser: Member List @@ -30,7 +30,7 @@ - + +
diff --git a/dir_000000_000004.html b/dir_000000_000004.html index 4f6f96dd..2252af47 100644 --- a/dir_000000_000004.html +++ b/dir_000000_000004.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser -> pe Relation @@ -30,7 +30,7 @@ - + +
diff --git a/pe__rsrc_8h.html b/pe__rsrc_8h.html index a0118213..c22027a4 100644 --- a/pe__rsrc_8h.html +++ b/pe__rsrc_8h.html @@ -3,7 +3,7 @@ - + BearParser: parser/include/bearparser/pe/rsrc/pe_rsrc.h File Reference @@ -30,7 +30,7 @@ - + +
diff --git a/plus.svg b/plus.svg new file mode 100644 index 00000000..07520165 --- /dev/null +++ b/plus.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/plusd.svg b/plusd.svg new file mode 100644 index 00000000..0c65bfe9 --- /dev/null +++ b/plusd.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/search/all_1.js b/search/all_1.js index 5a760d44..3e994957 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -1,13 +1,13 @@ var searchData= [ - ['abstractbytebuffer_0',['AbstractByteBuffer',['../class_abstract_byte_buffer.html#a083856a64bf8a0682a6a7799830f0ec1',1,'AbstractByteBuffer::AbstractByteBuffer()'],['../class_abstract_byte_buffer.html',1,'AbstractByteBuffer']]], + ['abstractbytebuffer_0',['abstractbytebuffer',['../class_abstract_byte_buffer.html#a083856a64bf8a0682a6a7799830f0ec1',1,'AbstractByteBuffer::AbstractByteBuffer()'],['../class_abstract_byte_buffer.html',1,'AbstractByteBuffer']]], ['abstractbytebuffer_2ecpp_1',['AbstractByteBuffer.cpp',['../_abstract_byte_buffer_8cpp.html',1,'']]], ['abstractbytebuffer_2eh_2',['AbstractByteBuffer.h',['../_abstract_byte_buffer_8h.html',1,'']]], - ['abstractfilebuffer_3',['AbstractFileBuffer',['../class_abstract_file_buffer.html',1,'AbstractFileBuffer'],['../class_abstract_file_buffer.html#ad81001a3650854c762c761b8c21ff762',1,'AbstractFileBuffer::AbstractFileBuffer()']]], - ['abstractformatter_4',['AbstractFormatter',['../class_abstract_formatter.html',1,'AbstractFormatter'],['../class_abstract_formatter.html#a57a59b2942bb9c829fcc1b45aba1bbb1',1,'AbstractFormatter::AbstractFormatter()']]], - ['addentry_5',['addEntry',['../class_exe_node_wrapper.html#ad3ccdd5e4f04f961dd84a201a9b8a1f4',1,'ExeNodeWrapper::addEntry()'],['../class_sect_hdrs_wrapper.html#a49ab96b47b072e3f0b2c1e360e550d68',1,'SectHdrsWrapper::addEntry()']]], + ['abstractfilebuffer_3',['abstractfilebuffer',['../class_abstract_file_buffer.html',1,'AbstractFileBuffer'],['../class_abstract_file_buffer.html#ad81001a3650854c762c761b8c21ff762',1,'AbstractFileBuffer::AbstractFileBuffer()']]], + ['abstractformatter_4',['abstractformatter',['../class_abstract_formatter.html',1,'AbstractFormatter'],['../class_abstract_formatter.html#a57a59b2942bb9c829fcc1b45aba1bbb1',1,'AbstractFormatter::AbstractFormatter()']]], + ['addentry_5',['addentry',['../class_exe_node_wrapper.html#ad3ccdd5e4f04f961dd84a201a9b8a1f4',1,'ExeNodeWrapper::addEntry()'],['../class_sect_hdrs_wrapper.html#a49ab96b47b072e3f0b2c1e360e550d68',1,'SectHdrsWrapper::addEntry()']]], ['addentryat_6',['addEntryAt',['../class_exe_node_wrapper.html#a22e7c147e4a0f6f9882d6ac3bb40ed25',1,'ExeNodeWrapper']]], - ['addmapping_7',['addMapping',['../class_import_base_dir_wrapper.html#ae3401167a9ee3eee123cb42728d90b42',1,'ImportBaseDirWrapper::addMapping()'],['../class_sect_hdrs_wrapper.html#ab6d8b5a465ce5b8163f3975b302ea087',1,'SectHdrsWrapper::addMapping()'],['../class_import_base_entry_wrapper.html#abc5866cd92a0da7af6faa18b674e8e9a',1,'ImportBaseEntryWrapper::addMapping()'],['../class_exe_node_wrapper.html#a7689f2efd4ed0f43890385839a0b617a',1,'ExeNodeWrapper::addMapping()']]], + ['addmapping_7',['addmapping',['../class_import_base_dir_wrapper.html#ae3401167a9ee3eee123cb42728d90b42',1,'ImportBaseDirWrapper::addMapping()'],['../class_sect_hdrs_wrapper.html#ab6d8b5a465ce5b8163f3975b302ea087',1,'SectHdrsWrapper::addMapping()'],['../class_import_base_entry_wrapper.html#abc5866cd92a0da7af6faa18b674e8e9a',1,'ImportBaseEntryWrapper::addMapping()'],['../class_exe_node_wrapper.html#a7689f2efd4ed0f43890385839a0b617a',1,'ExeNodeWrapper::addMapping()']]], ['addnewsection_8',['addNewSection',['../class_p_e_file.html#afdb1b254ee5f6d557c4d850196abd6e3',1,'PEFile']]], ['addr_5ftype_9',['addr_type',['../class_executable.html#a2202e0db9d88f3be2b26fc138ddd3b5b',1,'Executable']]], ['address_10',['ADDRESS',['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6a3c9e67519120c837a331888955ba46a0',1,'DataDirWrapper']]], diff --git a/search/all_10.js b/search/all_10.js index 035e1030..7d024272 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -11,18 +11,18 @@ var searchData= ['sec_5fnum_8',['SEC_NUM',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a8a8d556b7c561fbfad19ca316537e16c',1,'FileHdrWrapper']]], ['secfieldid_9',['SecFieldId',['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730',1,'SectionHdrWrapper']]], ['sechdrsendoffset_10',['secHdrsEndOffset',['../class_p_e_file.html#ab2bff011d7bf559482adc90a5e669911',1,'PEFile']]], - ['sechdrsoffset_11',['secHdrsOffset',['../class_p_e_core.html#ac2d793b316b1ee2a64fa8ed606e028b8',1,'PECore::secHdrsOffset()'],['../class_p_e_file.html#a35ddafbeba19abd9fe72e18afad43f0b',1,'PEFile::secHdrsOffset()']]], + ['sechdrsoffset_11',['sechdrsoffset',['../class_p_e_core.html#ac2d793b316b1ee2a64fa8ed606e028b8',1,'PECore::secHdrsOffset()'],['../class_p_e_file.html#a35ddafbeba19abd9fe72e18afad43f0b',1,'PEFile::secHdrsOffset()']]], ['secname_5flen_12',['SECNAME_LEN',['../class_section_hdr_wrapper.html#aaded2eed3da0fe7576f7ecef8c6d0f4b',1,'SectionHdrWrapper']]], ['sect_5fcount_5fmax_13',['SECT_COUNT_MAX',['../class_sect_hdrs_wrapper.html#a8a8d5a95bcd849820fa18adcc5dbede5',1,'SectHdrsWrapper']]], ['sect_5finvalid_5findex_14',['SECT_INVALID_INDEX',['../class_sect_hdrs_wrapper.html#ae6b4f5c7cd26f2366f21ba22dceb97c6',1,'SectHdrsWrapper']]], - ['secthdrswrapper_15',['SectHdrsWrapper',['../class_p_e_file.html#a427a01ab3e47934a4cb7cf52befc6271',1,'PEFile::SectHdrsWrapper'],['../class_sect_hdrs_wrapper.html#a16122d83260892062668fdca12cdf296',1,'SectHdrsWrapper::SectHdrsWrapper()'],['../class_sect_hdrs_wrapper.html',1,'SectHdrsWrapper']]], + ['secthdrswrapper_15',['secthdrswrapper',['../class_p_e_file.html#a427a01ab3e47934a4cb7cf52befc6271',1,'PEFile::SectHdrsWrapper'],['../class_sect_hdrs_wrapper.html#a16122d83260892062668fdca12cdf296',1,'SectHdrsWrapper::SectHdrsWrapper()'],['../class_sect_hdrs_wrapper.html',1,'SectHdrsWrapper']]], ['secthdrswrapper_2ecpp_16',['SectHdrsWrapper.cpp',['../_sect_hdrs_wrapper_8cpp.html',1,'']]], ['secthdrswrapper_2eh_17',['SectHdrsWrapper.h',['../_sect_hdrs_wrapper_8h.html',1,'']]], - ['sectionhdrwrapper_18',['SectionHdrWrapper',['../class_section_hdr_wrapper.html',1,'SectionHdrWrapper'],['../class_section_hdr_wrapper.html#a36e21a830a294c26c9d5a750fdf23d54',1,'SectionHdrWrapper::SectionHdrWrapper(PEFile *pe, size_t sectionNumber)'],['../class_section_hdr_wrapper.html#a6ea887e1a18e11f53812ebef79ad2133',1,'SectionHdrWrapper::SectionHdrWrapper(PEFile *pe, IMAGE_SECTION_HEADER *v_header)']]], + ['sectionhdrwrapper_18',['sectionhdrwrapper',['../class_section_hdr_wrapper.html',1,'SectionHdrWrapper'],['../class_section_hdr_wrapper.html#a36e21a830a294c26c9d5a750fdf23d54',1,'SectionHdrWrapper::SectionHdrWrapper(PEFile *pe, size_t sectionNumber)'],['../class_section_hdr_wrapper.html#a6ea887e1a18e11f53812ebef79ad2133',1,'SectionHdrWrapper::SectionHdrWrapper(PEFile *pe, IMAGE_SECTION_HEADER *v_header)']]], ['sectnum_19',['sectNum',['../class_section_hdr_wrapper.html#a6b899f0435971717e8e8c450c16cd959',1,'SectionHdrWrapper']]], ['sects_20',['sects',['../class_p_e_file.html#a1dd347e771ea42e009f3309969f7a7f5',1,'PEFile']]], ['securitydirfid_21',['SecurityDirFID',['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1',1,'SecurityDirWrapper']]], - ['securitydirwrapper_22',['SecurityDirWrapper',['../class_security_dir_wrapper.html',1,'SecurityDirWrapper'],['../class_security_dir_wrapper.html#a60257e021043a0cb4a777d58c9137614',1,'SecurityDirWrapper::SecurityDirWrapper()']]], + ['securitydirwrapper_22',['securitydirwrapper',['../class_security_dir_wrapper.html',1,'SecurityDirWrapper'],['../class_security_dir_wrapper.html#a60257e021043a0cb4a777d58c9137614',1,'SecurityDirWrapper::SecurityDirWrapper()']]], ['securitydirwrapper_2ecpp_23',['SecurityDirWrapper.cpp',['../_security_dir_wrapper_8cpp.html',1,'']]], ['securitydirwrapper_2eh_24',['SecurityDirWrapper.h',['../_security_dir_wrapper_8h.html',1,'']]], ['seh_5fcount_25',['SEH_COUNT',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a3e0022ede464f7628914c1dc3b76e156',1,'LdConfigDirWrapper']]], @@ -32,37 +32,36 @@ var searchData= ['setentrypoint_29',['setEntryPoint',['../class_p_e_file.html#a540e79b6105e41a69f04fc5374367b36',1,'PEFile']]], ['sethdrsectionsnum_30',['setHdrSectionsNum',['../class_p_e_file.html#a893f8c6b03ccb7785757b5d4aee95f07',1,'PEFile']]], ['sethex_31',['setHex',['../class_formatter.html#af14f0559fb635c3a5afaa71fbc0e87ae',1,'Formatter']]], - ['setimagesize_32',['setImageSize',['../class_p_e_file.html#ac401f0d815819cd69fdb3e522af88fa0',1,'PEFile::setImageSize()'],['../class_p_e_core.html#af05d45f16fb865550d00bdbdf3d9d8e8',1,'PECore::setImageSize()']]], - ['setnumvalue_33',['setNumValue',['../class_abstract_byte_buffer.html#a5e4be1e74690ad6517c3d19ed946b857',1,'AbstractByteBuffer::setNumValue()'],['../class_exe_element_wrapper.html#a60e6c709525c912e4f4b60e7ecbdfb12',1,'ExeElementWrapper::setNumValue(size_t fieldId, uint64_t val)'],['../class_exe_element_wrapper.html#a1e74b95ca63396ca3f720b05a54f2b62',1,'ExeElementWrapper::setNumValue(size_t fieldId, size_t subField, uint64_t val)']]], + ['setimagesize_32',['setimagesize',['../class_p_e_file.html#ac401f0d815819cd69fdb3e522af88fa0',1,'PEFile::setImageSize()'],['../class_p_e_core.html#af05d45f16fb865550d00bdbdf3d9d8e8',1,'PECore::setImageSize()']]], + ['setnumvalue_33',['setnumvalue',['../class_abstract_byte_buffer.html#a5e4be1e74690ad6517c3d19ed946b857',1,'AbstractByteBuffer::setNumValue()'],['../class_exe_element_wrapper.html#a60e6c709525c912e4f4b60e7ecbdfb12',1,'ExeElementWrapper::setNumValue(size_t fieldId, uint64_t val)'],['../class_exe_element_wrapper.html#a1e74b95ca63396ca3f720b05a54f2b62',1,'ExeElementWrapper::setNumValue(size_t fieldId, size_t subField, uint64_t val)']]], ['setskipnonprintable_34',['setSkipNonPrintable',['../class_formatter.html#a184c36e62fb95e0df57aefdbc200a65b',1,'Formatter']]], ['setstringvalue_35',['setStringValue',['../class_abstract_byte_buffer.html#a91f67da45e60fe85a4b03bd4e2b1c59e',1,'AbstractByteBuffer']]], ['settextvalue_36',['setTextValue',['../class_abstract_byte_buffer.html#a39e77f97d0d667575ef574cc68255ae6',1,'AbstractByteBuffer']]], ['setvirtualsize_37',['setVirtualSize',['../class_p_e_file.html#a8b2bc35baf12d93820b5c10f78459bf6',1,'PEFile']]], ['signature_38',['SIGNATURE',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a328f3b3f04ee440c638d1d9bc7ae518f',1,'ResourceVersionWrapper']]], - ['signaturematches_39',['signatureMatches',['../class_p_e_file_builder.html#ae651cc6bbd420150f4226ed0d515dd8c',1,'PEFileBuilder::signatureMatches()'],['../class_d_o_s_exe_builder.html#af61a6197a24802577d439e2ce587b3ca',1,'DOSExeBuilder::signatureMatches()'],['../class_exe_builder.html#a9990099be9b3ccf17637ef6f8fce3291',1,'ExeBuilder::signatureMatches()']]], - ['size_40',['size',['../class_buffer_view.html#a9f2fd71058cc38e721a07c0967971389',1,'BufferView']]], - ['size_41',['SIZE',['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6ab63d06bc0edd4b48645310bfe8e66f9e',1,'DataDirWrapper::SIZE'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a7551b2d2fcbe9db008417c94fb64a04c',1,'LdConfigDirWrapper::SIZE']]], - ['sizeptr_42',['sizePtr',['../class_res_string.html#ada06623351d8c2875d2093a743eed66a',1,'ResString']]], - ['sp_43',['SP',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a8babb7797752c266d316ffdd3f41d4ea',1,'DosHdrWrapper']]], - ['splitcharact_44',['splitCharact',['../class_file_hdr_wrapper.html#a29344e2019d8fa008f54b891543adf8a',1,'FileHdrWrapper']]], - ['splitcharacteristics_45',['splitCharacteristics',['../class_section_hdr_wrapper.html#a1aa87e70606004870956c53281b1ae8d',1,'SectionHdrWrapper']]], - ['splitdllcharact_46',['splitDllCharact',['../class_opt_hdr_wrapper.html#ae91a419a391f6a31059c9f245035c534',1,'OptHdrWrapper']]], - ['ss_47',['SS',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a12556fc7061e290cf36859cc10c64cc7',1,'DosHdrWrapper']]], - ['stack_5fcommit_5fsize_48',['STACK_COMMIT_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac831ffabde3fdc4d2e82375da0733e15',1,'OptHdrWrapper']]], - ['stack_5frsrv_5fsize_49',['STACK_RSRV_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a38cad995ac435465741a6cc124b81a0b',1,'OptHdrWrapper']]], - ['start_5faddr_50',['START_ADDR',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a9cb78556ab6dd1f074ab6d495f427c93',1,'TlsDirWrapper']]], - ['str_5flen_51',['STR_LEN',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba9d7000a340ecf42702fe2dcfc5828e3e',1,'ResString::STR_LEN'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2ab42d5e8b1c9b6d7536f0d68ffb2c1db5',1,'ResourceStringsWrapper::STR_LEN']]], - ['string_52',['STRING',['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aad8b842fd00d4b14f0473c9663dea2c0b',1,'WrappedValue']]], - ['strong_5fname_5fsignature_5fsize_53',['STRONG_NAME_SIGNATURE_SIZE',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a784c7b07f3914ef485966a0127f6cefe',1,'ClrDirWrapper']]], - ['strong_5fname_5fsignature_5fva_54',['STRONG_NAME_SIGNATURE_VA',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987aaac47c3e547e24759381d384f6ffe850',1,'ClrDirWrapper']]], - ['struct_5flen_55',['STRUCT_LEN',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928afba6b1c605d37b4962feee017b81338c',1,'ResourceVersionWrapper']]], - ['struct_5ftype_56',['STRUCT_TYPE',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a86a71588883c25708b37a640e74ada41',1,'ResourceVersionWrapper']]], - ['struct_5fver_57',['STRUCT_VER',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a6abf8df895997f79799a2a0520a20970',1,'ResourceVersionWrapper']]], - ['substfragmentbyfile_58',['substFragmentByFile',['../class_abstract_byte_buffer.html#a74943c97716eb8c33448a883f384f64c',1,'AbstractByteBuffer']]], - ['subsys_59',['SUBSYS',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a41d3f3973171cf81251df4476b62472c',1,'OptHdrWrapper']]], - ['subsysver_5fmajor_60',['SUBSYSVER_MAJOR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a66854d2ad3ca84320d67ad6f5311505e',1,'OptHdrWrapper']]], - ['subsysver_5fminor_61',['SUBSYSVER_MINOR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ad7ba8829c583465dbc57360076ca17dc',1,'OptHdrWrapper']]], - ['subtype_62',['SUBTYPE',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a325d7769109ad620a09d6efbbe581821',1,'ResourceVersionWrapper']]], - ['symbol_5fnum_63',['SYMBOL_NUM',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a055f79cc90fe7057b9ac7ddaa72bc68c',1,'FileHdrWrapper']]], - ['symbol_5fptr_64',['SYMBOL_PTR',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a7c553336ec79ada8f1758ba43cdd2da6',1,'FileHdrWrapper']]] + ['signaturematches_39',['signaturematches',['../class_p_e_file_builder.html#ae651cc6bbd420150f4226ed0d515dd8c',1,'PEFileBuilder::signatureMatches()'],['../class_d_o_s_exe_builder.html#af61a6197a24802577d439e2ce587b3ca',1,'DOSExeBuilder::signatureMatches()'],['../class_exe_builder.html#a9990099be9b3ccf17637ef6f8fce3291',1,'ExeBuilder::signatureMatches()']]], + ['size_40',['size',['../class_buffer_view.html#a9f2fd71058cc38e721a07c0967971389',1,'BufferView::size'],['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6ab63d06bc0edd4b48645310bfe8e66f9e',1,'DataDirWrapper::SIZE'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a7551b2d2fcbe9db008417c94fb64a04c',1,'LdConfigDirWrapper::SIZE']]], + ['sizeptr_41',['sizePtr',['../class_res_string.html#ada06623351d8c2875d2093a743eed66a',1,'ResString']]], + ['sp_42',['SP',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a8babb7797752c266d316ffdd3f41d4ea',1,'DosHdrWrapper']]], + ['splitcharact_43',['splitCharact',['../class_file_hdr_wrapper.html#a29344e2019d8fa008f54b891543adf8a',1,'FileHdrWrapper']]], + ['splitcharacteristics_44',['splitCharacteristics',['../class_section_hdr_wrapper.html#a1aa87e70606004870956c53281b1ae8d',1,'SectionHdrWrapper']]], + ['splitdllcharact_45',['splitDllCharact',['../class_opt_hdr_wrapper.html#ae91a419a391f6a31059c9f245035c534',1,'OptHdrWrapper']]], + ['ss_46',['SS',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a12556fc7061e290cf36859cc10c64cc7',1,'DosHdrWrapper']]], + ['stack_5fcommit_5fsize_47',['STACK_COMMIT_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac831ffabde3fdc4d2e82375da0733e15',1,'OptHdrWrapper']]], + ['stack_5frsrv_5fsize_48',['STACK_RSRV_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a38cad995ac435465741a6cc124b81a0b',1,'OptHdrWrapper']]], + ['start_5faddr_49',['START_ADDR',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a9cb78556ab6dd1f074ab6d495f427c93',1,'TlsDirWrapper']]], + ['str_5flen_50',['str_len',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba9d7000a340ecf42702fe2dcfc5828e3e',1,'ResString::STR_LEN'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2ab42d5e8b1c9b6d7536f0d68ffb2c1db5',1,'ResourceStringsWrapper::STR_LEN']]], + ['string_51',['STRING',['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aad8b842fd00d4b14f0473c9663dea2c0b',1,'WrappedValue']]], + ['strong_5fname_5fsignature_5fsize_52',['STRONG_NAME_SIGNATURE_SIZE',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a784c7b07f3914ef485966a0127f6cefe',1,'ClrDirWrapper']]], + ['strong_5fname_5fsignature_5fva_53',['STRONG_NAME_SIGNATURE_VA',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987aaac47c3e547e24759381d384f6ffe850',1,'ClrDirWrapper']]], + ['struct_5flen_54',['STRUCT_LEN',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928afba6b1c605d37b4962feee017b81338c',1,'ResourceVersionWrapper']]], + ['struct_5ftype_55',['STRUCT_TYPE',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a86a71588883c25708b37a640e74ada41',1,'ResourceVersionWrapper']]], + ['struct_5fver_56',['STRUCT_VER',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a6abf8df895997f79799a2a0520a20970',1,'ResourceVersionWrapper']]], + ['substfragmentbyfile_57',['substFragmentByFile',['../class_abstract_byte_buffer.html#a74943c97716eb8c33448a883f384f64c',1,'AbstractByteBuffer']]], + ['subsys_58',['SUBSYS',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a41d3f3973171cf81251df4476b62472c',1,'OptHdrWrapper']]], + ['subsysver_5fmajor_59',['SUBSYSVER_MAJOR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a66854d2ad3ca84320d67ad6f5311505e',1,'OptHdrWrapper']]], + ['subsysver_5fminor_60',['SUBSYSVER_MINOR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ad7ba8829c583465dbc57360076ca17dc',1,'OptHdrWrapper']]], + ['subtype_61',['SUBTYPE',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a325d7769109ad620a09d6efbbe581821',1,'ResourceVersionWrapper']]], + ['symbol_5fnum_62',['SYMBOL_NUM',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a055f79cc90fe7057b9ac7ddaa72bc68c',1,'FileHdrWrapper']]], + ['symbol_5fptr_63',['SYMBOL_PTR',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a7c553336ec79ada8f1758ba43cdd2da6',1,'FileHdrWrapper']]] ]; diff --git a/search/all_11.js b/search/all_11.js index 4f2c7a31..59cf71d8 100644 --- a/search/all_11.js +++ b/search/all_11.js @@ -10,22 +10,22 @@ var searchData= ['thunktolibmap_7',['thunkToLibMap',['../class_import_base_dir_wrapper.html#a56857fa5954e00fb6e38228df31fd544',1,'ImportBaseDirWrapper']]], ['thunktolibname_8',['thunkToLibName',['../class_import_base_dir_wrapper.html#ad3fa35be445a16b5f2bc7a708c09931d',1,'ImportBaseDirWrapper']]], ['timest_9',['TIMEST',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aa18cb72f5cb3cb77fddf9ea32cf90b49',1,'LdConfigDirWrapper']]], - ['timestamp_10',['TIMESTAMP',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa33a0e4c95be9409e1c77b4fcd857ffff',1,'ResourceDirWrapper::TIMESTAMP'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986ad46d9bba5e489e0cefcf2ebca86c6e28',1,'ImportEntryWrapper::TIMESTAMP'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389abf8f7d97cd9f1422adaa337933e59f7e',1,'FileHdrWrapper::TIMESTAMP'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a405efe24209ca0d6e4f0d3c2610204ec',1,'ExportDirWrapper::TIMESTAMP'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa3125918209e5d5416b0a87b0b46a3086',1,'DelayImpEntryWrapper::TIMESTAMP'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768cadeb59065b1799c7857487db415d5d6db',1,'DebugDirEntryWrapper::TIMESTAMP'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a60a0cbbc2bb7b27561ec9ea8801cc870',1,'BoundEntryWrapper::TIMESTAMP']]], + ['timestamp_10',['timestamp',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa33a0e4c95be9409e1c77b4fcd857ffff',1,'ResourceDirWrapper::TIMESTAMP'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986ad46d9bba5e489e0cefcf2ebca86c6e28',1,'ImportEntryWrapper::TIMESTAMP'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389abf8f7d97cd9f1422adaa337933e59f7e',1,'FileHdrWrapper::TIMESTAMP'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a405efe24209ca0d6e4f0d3c2610204ec',1,'ExportDirWrapper::TIMESTAMP'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa3125918209e5d5416b0a87b0b46a3086',1,'DelayImpEntryWrapper::TIMESTAMP'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768cadeb59065b1799c7857487db415d5d6db',1,'DebugDirEntryWrapper::TIMESTAMP'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a60a0cbbc2bb7b27561ec9ea8801cc870',1,'BoundEntryWrapper::TIMESTAMP']]], ['timestamp_5f0_11',['TIMESTAMP_0',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928af584ece6bc61667742baaeaa1e34648b',1,'ResourceVersionWrapper']]], ['timestamp_5f1_12',['TIMESTAMP_1',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a6b1d448e2fbed80fa5ea1af6bf1b68ff',1,'ResourceVersionWrapper']]], ['tlsdirfid_13',['TlsDirFID',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33',1,'TlsDirWrapper']]], - ['tlsdirwrapper_14',['TlsDirWrapper',['../class_tls_dir_wrapper.html#ab2c8d1fad578d9c0d440008430c03471',1,'TlsDirWrapper::TlsDirWrapper()'],['../class_tls_dir_wrapper.html',1,'TlsDirWrapper']]], + ['tlsdirwrapper_14',['tlsdirwrapper',['../class_tls_dir_wrapper.html#ab2c8d1fad578d9c0d440008430c03471',1,'TlsDirWrapper::TlsDirWrapper()'],['../class_tls_dir_wrapper.html',1,'TlsDirWrapper']]], ['tlsdirwrapper_2ecpp_15',['TlsDirWrapper.cpp',['../_tls_dir_wrapper_8cpp.html',1,'']]], ['tlsdirwrapper_2eh_16',['TlsDirWrapper.h',['../_tls_dir_wrapper_8h.html',1,'']]], - ['tlsentrywrapper_17',['TlsEntryWrapper',['../class_tls_entry_wrapper.html',1,'TlsEntryWrapper'],['../class_tls_entry_wrapper.html#ab74215796ec6421dfcefc558176211d7',1,'TlsEntryWrapper::TlsEntryWrapper()']]], + ['tlsentrywrapper_17',['tlsentrywrapper',['../class_tls_entry_wrapper.html',1,'TlsEntryWrapper'],['../class_tls_entry_wrapper.html#ab74215796ec6421dfcefc558176211d7',1,'TlsEntryWrapper::TlsEntryWrapper()']]], ['top_5fentry_5froot_18',['TOP_ENTRY_ROOT',['../_resources_album_8h.html#a348b402ab6e5cc1183108919ab5fa4fb',1,'ResourcesAlbum.h']]], ['topentryid_19',['topEntryID',['../class_resource_leaf_wrapper.html#aed1828190c88c47abc3c1f12e16cbeb8',1,'ResourceLeafWrapper']]], ['toqstring_20',['toQString',['../class_wrapped_value.html#aa298dfda5c7e3d9ab829e913a74fd9a7',1,'WrappedValue']]], ['toraw_21',['toRaw',['../class_executable.html#a310a106a5d61c54137c75c54042f4fa0',1,'Executable']]], ['trace_22',['TRACE',['../_util_8h.html#a7d020b5dd8606c615fa96fbe2647a4b0',1,'Util.h']]], - ['translatecharacteristics_23',['translateCharacteristics',['../class_file_hdr_wrapper.html#ae9a17e4f6f2c4948e7146ad105be5eb3',1,'FileHdrWrapper::translateCharacteristics()'],['../class_section_hdr_wrapper.html#a9671a2f5ab425dba30ca121432c3b6a3',1,'SectionHdrWrapper::translateCharacteristics()']]], + ['translatecharacteristics_23',['translatecharacteristics',['../class_file_hdr_wrapper.html#ae9a17e4f6f2c4948e7146ad105be5eb3',1,'FileHdrWrapper::translateCharacteristics()'],['../class_section_hdr_wrapper.html#a9671a2f5ab425dba30ca121432c3b6a3',1,'SectionHdrWrapper::translateCharacteristics()']]], ['translatedllcharacteristics_24',['translateDllCharacteristics',['../class_opt_hdr_wrapper.html#a50f3b338cb73ef1ac92df67a19f04843',1,'OptHdrWrapper']]], - ['translatefieldcontent_25',['translateFieldContent',['../class_exe_element_wrapper.html#ac39b13e7ac41c89db1b66c6e7a57e757',1,'ExeElementWrapper::translateFieldContent()'],['../class_security_dir_wrapper.html#a037ebd28792517e6eae87e06c9adb3f6',1,'SecurityDirWrapper::translateFieldContent()'],['../class_rich_hdr_wrapper.html#afefee16bb14c27a7f58cb6601fab5e2e',1,'RichHdrWrapper::translateFieldContent()'],['../class_opt_hdr_wrapper.html#a2f58952996bd80a93a8df5085e1ec900',1,'OptHdrWrapper::translateFieldContent()'],['../class_file_hdr_wrapper.html#a0de6339250f5c01a465fc7751db042f9',1,'FileHdrWrapper::translateFieldContent()'],['../class_clr_dir_wrapper.html#a5e92bf89a741f2b78a30a8c280e9cb7a',1,'ClrDirWrapper::translateFieldContent()'],['../class_debug_dir_entry_wrapper.html#a34f1efb7b3acf7b77d2c9ac484ec026e',1,'DebugDirEntryWrapper::translateFieldContent()'],['../class_ld_config_dir_wrapper.html#abc88c0479f8e3f5879090893c01b71e4',1,'LdConfigDirWrapper::translateFieldContent()'],['../class_debug_dir_c_v_entry_wrapper.html#a0276e3f847dce139dea8c1ab2c72e79f',1,'DebugDirCVEntryWrapper::translateFieldContent()']]], + ['translatefieldcontent_25',['translatefieldcontent',['../class_exe_element_wrapper.html#ac39b13e7ac41c89db1b66c6e7a57e757',1,'ExeElementWrapper::translateFieldContent()'],['../class_security_dir_wrapper.html#a037ebd28792517e6eae87e06c9adb3f6',1,'SecurityDirWrapper::translateFieldContent()'],['../class_rich_hdr_wrapper.html#afefee16bb14c27a7f58cb6601fab5e2e',1,'RichHdrWrapper::translateFieldContent()'],['../class_opt_hdr_wrapper.html#a2f58952996bd80a93a8df5085e1ec900',1,'OptHdrWrapper::translateFieldContent()'],['../class_file_hdr_wrapper.html#a0de6339250f5c01a465fc7751db042f9',1,'FileHdrWrapper::translateFieldContent()'],['../class_clr_dir_wrapper.html#a5e92bf89a741f2b78a30a8c280e9cb7a',1,'ClrDirWrapper::translateFieldContent()'],['../class_debug_dir_entry_wrapper.html#a34f1efb7b3acf7b77d2c9ac484ec026e',1,'DebugDirEntryWrapper::translateFieldContent()'],['../class_ld_config_dir_wrapper.html#abc88c0479f8e3f5879090893c01b71e4',1,'LdConfigDirWrapper::translateFieldContent()'],['../class_debug_dir_c_v_entry_wrapper.html#a0276e3f847dce139dea8c1ab2c72e79f',1,'DebugDirCVEntryWrapper::translateFieldContent()']]], ['translateflag_26',['translateFlag',['../class_clr_dir_wrapper.html#a6482ec54df71bff3d6c5bc29d0aeb6f2',1,'ClrDirWrapper']]], ['translateguardflag_27',['translateGuardFlag',['../class_ld_config_dir_wrapper.html#a43d84755174b5dcb0e8a4f8121996634',1,'LdConfigDirWrapper']]], ['translateguardflagscontent_28',['translateGuardFlagsContent',['../class_ld_config_dir_wrapper.html#a532f20c9b0555cb948fc303fd7bc9cf3',1,'LdConfigDirWrapper']]], @@ -33,9 +33,9 @@ var searchData= ['translateoptmagic_30',['translateOptMagic',['../class_opt_hdr_wrapper.html#a1bc7b80d2b5c95acf0cd5e98e6c6bcd4',1,'OptHdrWrapper']]], ['translateosversion_31',['translateOSVersion',['../class_opt_hdr_wrapper.html#a589cbcae1d89b2295ab5af8e0bc82d8f',1,'OptHdrWrapper']]], ['translatesubsystem_32',['translateSubsystem',['../class_opt_hdr_wrapper.html#a2d25477dc0fe8e3de6f756d5ba4c7cbb',1,'OptHdrWrapper']]], - ['translatetype_33',['translateType',['../class_reloc_entry_wrapper.html#a0cd1f93bc857038e2773f7a4dbc55bf2',1,'RelocEntryWrapper::translateType()'],['../class_resource_entry_wrapper.html#aaf62191e5615d7504c94742edaacb56a',1,'ResourceEntryWrapper::translateType()'],['../class_resource_content_wrapper.html#a1947080dfd20756de608c2e40029be4e',1,'ResourceContentWrapper::translateType()'],['../class_security_dir_wrapper.html#ae527f94810e106aed6ae4246358e9ef1',1,'SecurityDirWrapper::translateType()'],['../class_debug_dir_entry_wrapper.html#aefefbb26d3a28d455fbeb50dc831e255',1,'DebugDirEntryWrapper::translateType(int type)']]], - ['type_34',['TYPE',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca9a1511e88c2d14241c118312f3b899e6',1,'DebugDirEntryWrapper::TYPE'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928ac30a4eabb4d236925ec0fdc2d695085c',1,'ResourceVersionWrapper::TYPE'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1a6f7742c514ec2ba309f372beee91039b',1,'SecurityDirWrapper::TYPE']]], + ['translatetype_33',['translatetype',['../class_reloc_entry_wrapper.html#a0cd1f93bc857038e2773f7a4dbc55bf2',1,'RelocEntryWrapper::translateType()'],['../class_resource_entry_wrapper.html#aaf62191e5615d7504c94742edaacb56a',1,'ResourceEntryWrapper::translateType()'],['../class_resource_content_wrapper.html#a1947080dfd20756de608c2e40029be4e',1,'ResourceContentWrapper::translateType()'],['../class_security_dir_wrapper.html#ae527f94810e106aed6ae4246358e9ef1',1,'SecurityDirWrapper::translateType()'],['../class_debug_dir_entry_wrapper.html#aefefbb26d3a28d455fbeb50dc831e255',1,'DebugDirEntryWrapper::translateType(int type)']]], + ['type_34',['type',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca9a1511e88c2d14241c118312f3b899e6',1,'DebugDirEntryWrapper::TYPE'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928ac30a4eabb4d236925ec0fdc2d695085c',1,'ResourceVersionWrapper::TYPE'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1a6f7742c514ec2ba309f372beee91039b',1,'SecurityDirWrapper::TYPE']]], ['typeid_35',['typeId',['../class_resource_content_wrapper.html#ada5b12996cece47f1769f352019848dc',1,'ResourceContentWrapper']]], - ['typename_36',['typeName',['../class_exe_builder.html#ac80d9e1cf0d54bf93d915f249998cdc7',1,'ExeBuilder::typeName()'],['../class_d_o_s_exe_builder.html#a7ed22551a14df510965098dec9c737b5',1,'DOSExeBuilder::typeName()'],['../class_p_e_file_builder.html#a98168c0ec3abe40a825d418d97af666e',1,'PEFileBuilder::typeName()']]], + ['typename_36',['typename',['../class_exe_builder.html#ac80d9e1cf0d54bf93d915f249998cdc7',1,'ExeBuilder::typeName()'],['../class_d_o_s_exe_builder.html#a7ed22551a14df510965098dec9c737b5',1,'DOSExeBuilder::typeName()'],['../class_p_e_file_builder.html#a98168c0ec3abe40a825d418d97af666e',1,'PEFileBuilder::typeName()']]], ['types_5fcount_37',['TYPES_COUNT',['../class_exe_factory.html#adc59e611b34ce9a0c6888fddd3699715a404daf8c7bf0d37bc89eec70c7a10651',1,'ExeFactory']]] ]; diff --git a/search/all_14.js b/search/all_14.js index 8c8221b6..a1a90c20 100644 --- a/search/all_14.js +++ b/search/all_14.js @@ -5,19 +5,18 @@ var searchData= ['wr_5fdatadir_2',['WR_DATADIR',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbea20fbab7b3a38f1e3325870d0d9059257',1,'PEFile']]], ['wr_5fdir_5fentry_3',['WR_DIR_ENTRY',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbea1cca759f1f49d1264123301da89d36cc',1,'PEFile']]], ['wr_5fdir_5fentry_5fend_4',['WR_DIR_ENTRY_END',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeaa7ec741256258f4231e6c50c33adedae',1,'PEFile']]], - ['wr_5fdos_5fhdr_5',['WR_DOS_HDR',['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6af6cea8f13093c049d24cf07f45b3b784',1,'DOSExe::WR_DOS_HDR'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbead09a642c1ab2e8998c9e70dd3b1973fa',1,'PEFile::WR_DOS_HDR']]], + ['wr_5fdos_5fhdr_5',['wr_dos_hdr',['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6af6cea8f13093c049d24cf07f45b3b784',1,'DOSExe::WR_DOS_HDR'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbead09a642c1ab2e8998c9e70dd3b1973fa',1,'PEFile::WR_DOS_HDR']]], ['wr_5ffile_5fhdr_6',['WR_FILE_HDR',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeac047b8bc87d2d6ac1c6c2c511bdd9f51',1,'PEFile']]], - ['wr_5fnone_7',['WR_NONE',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195baa56e88c8b27cfa1d4ec1bba2147c5ab73',1,'ExeWrappersContainer::WR_NONE'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6a415faa43146ed061aa769881b2dc0e42',1,'DOSExe::WR_NONE'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbea8fedba5aaf4adc0c2aba45142e429181',1,'PEFile::WR_NONE']]], + ['wr_5fnone_7',['wr_none',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195baa56e88c8b27cfa1d4ec1bba2147c5ab73',1,'ExeWrappersContainer::WR_NONE'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6a415faa43146ed061aa769881b2dc0e42',1,'DOSExe::WR_NONE'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbea8fedba5aaf4adc0c2aba45142e429181',1,'PEFile::WR_NONE']]], ['wr_5foptional_5fhdr_8',['WR_OPTIONAL_HDR',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeaaaa46d11501dd590955b6770d6c8825e',1,'PEFile']]], ['wr_5frich_5fhdr_9',['WR_RICH_HDR',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbead565153667edff3db6527c5732b33ac6',1,'PEFile']]], ['wr_5fsections_10',['WR_SECTIONS',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbead0e41312e3cf9609c1e742c18821b0a4',1,'PEFile']]], ['wrap_11',['wrap',['../class_p_e_file.html#a716ee06f43de71d1885443d861edfb8d',1,'PEFile::wrap()'],['../class_reloc_dir_wrapper.html#a0ebd8bd0012704d6677b1f247537b6a7',1,'RelocDirWrapper::wrap()'],['../class_p_e_core.html#a7d654edc4d82e1d1643e49081bc5657c',1,'PECore::wrap()'],['../class_p_e_file.html#ab6c8d2e43a306a0011301370705af1a7',1,'PEFile::wrap()'],['../class_import_base_dir_wrapper.html#a8d69d5e98e7fd4bd1761730621ce1c9a',1,'ImportBaseDirWrapper::wrap()'],['../class_opt_hdr_wrapper.html#a88217306b4a5133e605ed8476f8afdbb',1,'OptHdrWrapper::wrap()'],['../class_ld_config_dir_wrapper.html#a9725e4776e97d6d1b229c7b50098b516',1,'LdConfigDirWrapper::wrap()'],['../class_import_base_entry_wrapper.html#aa176da686bdcec05c9a4acd23c2cdf13',1,'ImportBaseEntryWrapper::wrap()'],['../class_clr_dir_wrapper.html#a2baf0bbdc4c5d75c50044d8d5fe010a7',1,'ClrDirWrapper::wrap()'],['../class_reloc_block_wrapper.html#a7abe3fc11581a1c23c27251b9e09d4ab',1,'RelocBlockWrapper::wrap()'],['../class_resource_dir_wrapper.html#a3c8214b5261e5970e8da5acacf3c6222',1,'ResourceDirWrapper::wrap()'],['../class_resource_entry_wrapper.html#ac326068e4c8fee45d83e10a9799290c0',1,'ResourceEntryWrapper::wrap()'],['../class_rich_hdr_wrapper.html#a5b8139d2b81d4508cfbb81c26662a96c',1,'RichHdrWrapper::wrap()'],['../class_resource_strings_wrapper.html#ab7fdbd278641336a3356f184318a5a4c',1,'ResourceStringsWrapper::wrap()'],['../class_section_hdr_wrapper.html#a0654b98cb5a6b16c6bdbaa6d70231586',1,'SectionHdrWrapper::wrap()'],['../class_sect_hdrs_wrapper.html#aa3f5a79d62f8053557740949bb8ace4b',1,'SectHdrsWrapper::wrap()'],['../class_security_dir_wrapper.html#ae7bd72bbd0ea4c1b0be99568cadbbbdc',1,'SecurityDirWrapper::wrap()'],['../class_tls_dir_wrapper.html#a3a60743f4c55cf39f23dbbb77fe796cf',1,'TlsDirWrapper::wrap()'],['../class_export_dir_wrapper.html#a88aaf739c6239484688dd17e188d092f',1,'ExportDirWrapper::wrap()'],['../class_exe_element_wrapper.html#af1cd1e9dfaedea5c17a07c9e39d3150f',1,'ExeElementWrapper::wrap()'],['../class_exe_node_wrapper.html#a5cd7f16e4529be2a96f87237e31b2611',1,'ExeNodeWrapper::wrap()'],['../class_exe_wrappers_container.html#a8bd5ec898de13cafe645dc6f3bad76bf',1,'ExeWrappersContainer::wrap()'],['../class_mapped_exe.html#a936dd29ca35e9234aa8b9c800034d28d',1,'MappedExe::wrap()'],['../class_mapped_exe.html#af7bed138e662b4551ea3e9c8cd2edf94',1,'MappedExe::wrap(AbstractByteBuffer *v_buf)=0'],['../class_bound_imp_dir_wrapper.html#aa333f4aed19caef73594687fd0be321e',1,'BoundImpDirWrapper::wrap()'],['../class_bound_entry_wrapper.html#abc7259183410be2a23ed2469b44fa915',1,'BoundEntryWrapper::wrap()'],['../class_debug_dir_wrapper.html#ac081e75c9eed3c5f67aa9826bd335b82',1,'DebugDirWrapper::wrap()'],['../class_debug_dir_entry_wrapper.html#a094321c2f8f21b0e267683b7a84c7231',1,'DebugDirEntryWrapper::wrap()'],['../class_d_o_s_exe.html#abc0fd3216a5eb7bd3e1d307f44ce116b',1,'DOSExe::wrap()'],['../class_exception_dir_wrapper.html#a9780166edee43854b4bdbe996e076ff1',1,'ExceptionDirWrapper::wrap()'],['../class_exception_entry_wrapper.html#a410c44c5ed1cb185a004f69cdfb2ec35',1,'ExceptionEntryWrapper::wrap()'],['../class_file_hdr_wrapper.html#a0c2aaa155ea4ec20770b59bcebd7f27a',1,'FileHdrWrapper::wrap()']]], ['wrapleafscontent_12',['wrapLeafsContent',['../class_resources_album.html#a45775c8f0746ad67f1e406a7e221852f',1,'ResourcesAlbum']]], - ['wrappedvalue_13',['WrappedValue',['../class_wrapped_value.html#a25417732791f92ad155e1713f53afba8',1,'WrappedValue::WrappedValue(AbstractByteBuffer *owner, offset_t offset, bufsize_t size, data_type type)'],['../class_wrapped_value.html#aa5efdb1c423a01139611e6ab1729e53e',1,'WrappedValue::WrappedValue()'],['../class_wrapped_value.html',1,'WrappedValue']]], + ['wrappedvalue_13',['wrappedvalue',['../class_wrapped_value.html#a25417732791f92ad155e1713f53afba8',1,'WrappedValue::WrappedValue(AbstractByteBuffer *owner, offset_t offset, bufsize_t size, data_type type)'],['../class_wrapped_value.html#aa5efdb1c423a01139611e6ab1729e53e',1,'WrappedValue::WrappedValue()'],['../class_wrapped_value.html',1,'WrappedValue']]], ['wrappedvalue_2ecpp_14',['WrappedValue.cpp',['../_wrapped_value_8cpp.html',1,'']]], ['wrappedvalue_2eh_15',['WrappedValue.h',['../_wrapped_value_8h.html',1,'']]], - ['wrappers_16',['wrappers',['../class_exe_wrappers_container.html#a1951bc11aa86eb00c6a3c9044a58655b',1,'ExeWrappersContainer::wrappers'],['../class_resources_container.html#a911552d5d31f91b24ec7803fa5b78107',1,'ResourcesContainer::wrappers']]], - ['wrappers_17',['WRAPPERS',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195ba',1,'ExeWrappersContainer::WRAPPERS'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6',1,'DOSExe::WRAPPERS'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbe',1,'PEFile::WRAPPERS']]], - ['wrapperscount_18',['wrappersCount',['../class_exe_wrappers_container.html#a320d0e2d4475f1bd5c36f93fdea9f43e',1,'ExeWrappersContainer']]], - ['wstring_19',['WSTRING',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899bab897d3e759fbc72109e473213b5ac0a6',1,'ResString::WSTRING'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a286d99e0e4e343b570a63e93821947cc',1,'ResourceStringsWrapper::WSTRING'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa68fcb332e868bb023fe3f7d7bab408ff',1,'WrappedValue::WSTRING']]] + ['wrappers_16',['wrappers',['../class_exe_wrappers_container.html#a1951bc11aa86eb00c6a3c9044a58655b',1,'ExeWrappersContainer::wrappers'],['../class_resources_container.html#a911552d5d31f91b24ec7803fa5b78107',1,'ResourcesContainer::wrappers'],['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195ba',1,'ExeWrappersContainer::WRAPPERS'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6',1,'DOSExe::WRAPPERS'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbe',1,'PEFile::WRAPPERS']]], + ['wrapperscount_17',['wrappersCount',['../class_exe_wrappers_container.html#a320d0e2d4475f1bd5c36f93fdea9f43e',1,'ExeWrappersContainer']]], + ['wstring_18',['wstring',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899bab897d3e759fbc72109e473213b5ac0a6',1,'ResString::WSTRING'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a286d99e0e4e343b570a63e93821947cc',1,'ResourceStringsWrapper::WSTRING'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa68fcb332e868bb023fe3f7d7bab408ff',1,'WrappedValue::WSTRING']]] ]; diff --git a/search/all_2.js b/search/all_2.js index 59a105cb..c69c05ce 100644 --- a/search/all_2.js +++ b/search/all_2.js @@ -11,20 +11,20 @@ var searchData= ['block_5fsize_8',['BLOCK_SIZE',['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03aa9dd4ea21b0287efd6297afac74a1b9d',1,'RelocBlockWrapper']]], ['bound_5fiat_9',['BOUND_IAT',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa3f88f0a8b5a0f8079b649a79033e0b23',1,'DelayImpEntryWrapper']]], ['bound_5fiat_5faddr_10',['BOUND_IAT_ADDR',['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246a3da94eaca46f2f4e5d7174d814303d41',1,'DelayImpFuncWrapper']]], - ['boundentrywrapper_11',['BoundEntryWrapper',['../class_bound_imp_dir_wrapper.html#aaa17a010931e9cb518c1e28685d24be7',1,'BoundImpDirWrapper::BoundEntryWrapper'],['../class_bound_entry_wrapper.html#a271b79db61a6ef2edc9bb24ba43e9c37',1,'BoundEntryWrapper::BoundEntryWrapper()'],['../class_bound_entry_wrapper.html',1,'BoundEntryWrapper']]], + ['boundentrywrapper_11',['boundentrywrapper',['../class_bound_imp_dir_wrapper.html#aaa17a010931e9cb518c1e28685d24be7',1,'BoundImpDirWrapper::BoundEntryWrapper'],['../class_bound_entry_wrapper.html#a271b79db61a6ef2edc9bb24ba43e9c37',1,'BoundEntryWrapper::BoundEntryWrapper()'],['../class_bound_entry_wrapper.html',1,'BoundEntryWrapper']]], ['boundimp_12',['boundImp',['../class_bound_imp_dir_wrapper.html#a5f98993d37168562466f60abe3a035e0',1,'BoundImpDirWrapper']]], - ['boundimpdirwrapper_13',['BoundImpDirWrapper',['../class_bound_imp_dir_wrapper.html',1,'BoundImpDirWrapper'],['../class_bound_imp_dir_wrapper.html#a0e48e217aac30ee1ae8b703255a7e8d3',1,'BoundImpDirWrapper::BoundImpDirWrapper()']]], + ['boundimpdirwrapper_13',['boundimpdirwrapper',['../class_bound_imp_dir_wrapper.html',1,'BoundImpDirWrapper'],['../class_bound_imp_dir_wrapper.html#a0e48e217aac30ee1ae8b703255a7e8d3',1,'BoundImpDirWrapper::BoundImpDirWrapper()']]], ['boundimpdirwrapper_2ecpp_14',['BoundImpDirWrapper.cpp',['../_bound_imp_dir_wrapper_8cpp.html',1,'']]], ['boundimpdirwrapper_2eh_15',['BoundImpDirWrapper.h',['../_bound_imp_dir_wrapper_8h.html',1,'']]], ['buf_16',['buf',['../class_p_e_core.html#a8b0fbf4bbe04a98e2573b48abe0aea18',1,'PECore::buf'],['../class_executable.html#a0763ee39e64c17cc9488de63de79390e',1,'Executable::buf'],['../class_abstract_formatter.html#abe6b55fd6f0d1cfecca5d35e53b84223',1,'AbstractFormatter::buf']]], ['buf_5futil_17',['buf_util',['../namespacebuf__util.html',1,'']]], - ['bufferexception_18',['BufferException',['../class_buffer_exception.html',1,'BufferException'],['../class_buffer_exception.html#a4af32a7ca757175a41906ec6e889b126',1,'BufferException::BufferException()']]], - ['bufferview_19',['BufferView',['../class_buffer_view.html#a7e28aa60f3734aecc9595741f5bba11c',1,'BufferView::BufferView()'],['../class_buffer_view.html',1,'BufferView']]], + ['bufferexception_18',['bufferexception',['../class_buffer_exception.html',1,'BufferException'],['../class_buffer_exception.html#a4af32a7ca757175a41906ec6e889b126',1,'BufferException::BufferException()']]], + ['bufferview_19',['bufferview',['../class_buffer_view.html#a7e28aa60f3734aecc9595741f5bba11c',1,'BufferView::BufferView()'],['../class_buffer_view.html',1,'BufferView']]], ['bufsize_5fmax_20',['BUFSIZE_MAX',['../_abstract_byte_buffer_8h.html#a06eeddcfd3f26853ac1210c897f8a003',1,'AbstractByteBuffer.h']]], ['bufsize_5ft_21',['bufsize_t',['../_abstract_byte_buffer_8h.html#a9067dc831274514d508e98df05bf015d',1,'AbstractByteBuffer.h']]], ['build_22',['build',['../class_exe_builder.html#a7eed0fb932d27efb3bef6b7f461df3a7',1,'ExeBuilder::build()'],['../class_exe_factory.html#a3998dc482c24498b474b801b2b9f4ddf',1,'ExeFactory::build()'],['../class_d_o_s_exe_builder.html#a5f40fd34d7e0eb259c258e14cc6f16f0',1,'DOSExeBuilder::build()'],['../class_p_e_file_builder.html#a85aed87fd79505c5a9bf111d51bfd503',1,'PEFileBuilder::build()']]], ['builders_23',['builders',['../class_exe_factory.html#a32bf534192e902b75a294cfc5b602ee6',1,'ExeFactory']]], - ['bytebuffer_24',['ByteBuffer',['../class_byte_buffer.html',1,'ByteBuffer'],['../class_byte_buffer.html#a7aa532de539fe0d1218349bb9dd043df',1,'ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)'],['../class_byte_buffer.html#aec65ed51a3f5a493df804a85f35af51c',1,'ByteBuffer::ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)'],['../class_byte_buffer.html#a9e0b0a64bb772e273d82f3069e2fb7fb',1,'ByteBuffer::ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding=DEFAULT_PADDING)']]], + ['bytebuffer_24',['bytebuffer',['../class_byte_buffer.html',1,'ByteBuffer'],['../class_byte_buffer.html#a7aa532de539fe0d1218349bb9dd043df',1,'ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)'],['../class_byte_buffer.html#aec65ed51a3f5a493df804a85f35af51c',1,'ByteBuffer::ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)'],['../class_byte_buffer.html#a9e0b0a64bb772e273d82f3069e2fb7fb',1,'ByteBuffer::ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding=DEFAULT_PADDING)']]], ['bytebuffer_2ecpp_25',['ByteBuffer.cpp',['../_byte_buffer_8cpp.html',1,'']]], ['bytebuffer_2eh_26',['ByteBuffer.h',['../_byte_buffer_8h.html',1,'']]] ]; diff --git a/search/all_3.js b/search/all_3.js index 11c58952..65db6191 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -3,26 +3,26 @@ var searchData= ['calcchecksum_0',['calcChecksum',['../class_rich_hdr_wrapper.html#a947afa6580dac5e7f0b4e20c41d2185e',1,'RichHdrWrapper']]], ['callback_5faddr_1',['CALLBACK_ADDR',['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5eadee310e098806e92de695d00a58fd975',1,'TlsEntryWrapper']]], ['callbacks_5faddr_2',['CALLBACKS_ADDR',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a18dd7e3fac1561b591c3318f84e07adf',1,'TlsDirWrapper']]], - ['callvia_3',['callVia',['../class_import_base_func_wrapper.html#ab7262c25838f7e5b8ab9e243f5e616ce',1,'ImportBaseFuncWrapper::callVia()'],['../class_delay_imp_func_wrapper.html#aea462a1e1a003bc6069bcda415c90d95',1,'DelayImpFuncWrapper::callVia()'],['../class_imported_func_wrapper.html#abeabc9dc8ff6a3c55907fbbf0c1ca232',1,'ImportedFuncWrapper::callVia()']]], - ['canaddentry_4',['canAddEntry',['../class_exe_node_wrapper.html#a93babf789a4e49566b20395e43ffc797',1,'ExeNodeWrapper::canAddEntry()'],['../class_sect_hdrs_wrapper.html#a4db6152b11ac5f460f3fffa932144b89',1,'SectHdrsWrapper::canAddEntry()']]], + ['callvia_3',['callvia',['../class_import_base_func_wrapper.html#ab7262c25838f7e5b8ab9e243f5e616ce',1,'ImportBaseFuncWrapper::callVia()'],['../class_delay_imp_func_wrapper.html#aea462a1e1a003bc6069bcda415c90d95',1,'DelayImpFuncWrapper::callVia()'],['../class_imported_func_wrapper.html#abeabc9dc8ff6a3c55907fbbf0c1ca232',1,'ImportedFuncWrapper::callVia()']]], + ['canaddentry_4',['canaddentry',['../class_exe_node_wrapper.html#a93babf789a4e49566b20395e43ffc797',1,'ExeNodeWrapper::canAddEntry()'],['../class_sect_hdrs_wrapper.html#a4db6152b11ac5f460f3fffa932144b89',1,'SectHdrsWrapper::canAddEntry()']]], ['canaddnewsection_5',['canAddNewSection',['../class_p_e_file.html#ae4e53b490f606ebec77317b0b7e7f996',1,'PEFile']]], ['cancopytooffset_6',['canCopyToOffset',['../class_exe_element_wrapper.html#a1f58acc525be97f70b60d8a3ab1df6da',1,'ExeElementWrapper']]], - ['canresize_7',['canResize',['../class_mapped_exe.html#a0086dbc7e88025fc100cd258d1aa7df4',1,'MappedExe::canResize()'],['../class_p_e_file.html#adc9a572357c081d5fb8c6f7bb212c6a9',1,'PEFile::canResize()']]], + ['canresize_7',['canresize',['../class_mapped_exe.html#a0086dbc7e88025fc100cd258d1aa7df4',1,'MappedExe::canResize()'],['../class_p_e_file.html#adc9a572357c081d5fb8c6f7bb212c6a9',1,'PEFile::canResize()']]], ['cb_8',['CB',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987aace346b4624986ccc4fcbcd758ed47b8',1,'ClrDirWrapper']]], ['cblp_9',['CBLP',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a1a53e62c243b01f1b26fa976dfafa0a5',1,'DosHdrWrapper']]], ['cert_5fcontent_10',['CERT_CONTENT',['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1ad9e37f7b91843a72af119d16c04fc636',1,'SecurityDirWrapper']]], ['cert_5flen_11',['CERT_LEN',['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1aa2f1979eb635e05fa3f632bd4771feb7',1,'SecurityDirWrapper']]], - ['charact_12',['CHARACT',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a68dbaf11cbaeaab233dae52bb776a705',1,'TlsDirWrapper::CHARACT'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389afdc50ad0970e62ca9fc2c4eba9dc3ca3',1,'FileHdrWrapper::CHARACT'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730af7c70586f8e9b86ace1652c7d83bc148',1,'SectionHdrWrapper::CHARACT']]], - ['characteristic_13',['CHARACTERISTIC',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca2f99dac39d7828e1a3a78f218c0f7e33',1,'DebugDirEntryWrapper::CHARACTERISTIC'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a372e998427427f989def40fed8cdbdf4',1,'ExportDirWrapper::CHARACTERISTIC'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa4d46d47ca1273a5d717a9aa2f4c5b9d7',1,'ResourceDirWrapper::CHARACTERISTIC']]], - ['checksum_14',['CHECKSUM',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a601b9f43dd948b375e99ed9e4e4340e2',1,'OptHdrWrapper::CHECKSUM'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a53379b9a73cdcf510560de8080a57bcf',1,'RichHdrWrapper::CHECKSUM']]], + ['charact_12',['charact',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a68dbaf11cbaeaab233dae52bb776a705',1,'TlsDirWrapper::CHARACT'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389afdc50ad0970e62ca9fc2c4eba9dc3ca3',1,'FileHdrWrapper::CHARACT'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730af7c70586f8e9b86ace1652c7d83bc148',1,'SectionHdrWrapper::CHARACT']]], + ['characteristic_13',['characteristic',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca2f99dac39d7828e1a3a78f218c0f7e33',1,'DebugDirEntryWrapper::CHARACTERISTIC'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a372e998427427f989def40fed8cdbdf4',1,'ExportDirWrapper::CHARACTERISTIC'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa4d46d47ca1273a5d717a9aa2f4c5b9d7',1,'ResourceDirWrapper::CHARACTERISTIC']]], + ['checksum_14',['checksum',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a601b9f43dd948b375e99ed9e4e4340e2',1,'OptHdrWrapper::CHECKSUM'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a53379b9a73cdcf510560de8080a57bcf',1,'RichHdrWrapper::CHECKSUM']]], ['children_15',['CHILDREN',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a31d2a89b741a0554d05aeb734c1fa9a0',1,'ResourceVersionWrapper']]], ['chpe_5fmetadata_5fptr_16',['CHPE_METADATA_PTR',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a05992de4c35c5593b7cdbbda2871cee3',1,'LdConfigDirWrapper']]], ['clear_17',['clear',['../class_exe_node_wrapper.html#abd74c2637211cf471d022b528654c84c',1,'ExeNodeWrapper::clear()'],['../class_common_ordinals_lookup.html#afca9209195b50366aaf379bf1f236a88',1,'CommonOrdinalsLookup::clear()'],['../class_export_dir_wrapper.html#a706eeb2665046143ff6fc2379a451bec',1,'ExportDirWrapper::clear()'],['../class_ld_config_dir_wrapper.html#a9ef0c9517e89724c92ab76e87a767387',1,'LdConfigDirWrapper::clear()'],['../class_resource_entry_wrapper.html#a8a963b1e9d2a70fb23bcbc057ad87208',1,'ResourceEntryWrapper::clear()'],['../class_resources_album.html#a11466f13115f4491c5d1796d6092cffc',1,'ResourcesAlbum::clear()'],['../class_sect_hdrs_wrapper.html#ad8cb1252bf430a536664675ffd31a6b0',1,'SectHdrsWrapper::clear()']]], ['clearcontent_18',['clearContent',['../class_p_e_file.html#a9d533e42b3fcf6d6de7d0b188326ea74',1,'PEFile']]], ['clearleafscontent_19',['clearLeafsContent',['../class_resources_album.html#a3787964dab392032ae17f74ba747b9d8',1,'ResourcesAlbum']]], ['clearmapping_20',['clearMapping',['../class_import_base_dir_wrapper.html#aae9d0cf2cf11d4701bebb430b0326b08',1,'ImportBaseDirWrapper']]], - ['clearwrappers_21',['clearWrappers',['../class_exe_wrappers_container.html#a54af5aa313aaa568653fb32395a80195',1,'ExeWrappersContainer::clearWrappers()'],['../class_p_e_file.html#aa84f5074e8e5f9c6b29becd0ddfd523c',1,'PEFile::clearWrappers()']]], - ['clrdirwrapper_22',['ClrDirWrapper',['../class_clr_dir_wrapper.html#a016ad3aeb121981fb4d55c0d1a4e8a98',1,'ClrDirWrapper::ClrDirWrapper()'],['../class_clr_dir_wrapper.html',1,'ClrDirWrapper']]], + ['clearwrappers_21',['clearwrappers',['../class_exe_wrappers_container.html#a54af5aa313aaa568653fb32395a80195',1,'ExeWrappersContainer::clearWrappers()'],['../class_p_e_file.html#aa84f5074e8e5f9c6b29becd0ddfd523c',1,'PEFile::clearWrappers()']]], + ['clrdirwrapper_22',['clrdirwrapper',['../class_clr_dir_wrapper.html#a016ad3aeb121981fb4d55c0d1a4e8a98',1,'ClrDirWrapper::ClrDirWrapper()'],['../class_clr_dir_wrapper.html',1,'ClrDirWrapper']]], ['clrdirwrapper_2ecpp_23',['ClrDirWrapper.cpp',['../_clr_dir_wrapper_8cpp.html',1,'']]], ['clrdirwrapper_2eh_24',['ClrDirWrapper.h',['../_clr_dir_wrapper_8h.html',1,'']]], ['code_5fbase_25',['CODE_BASE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ae66214434fd16d5eb1f92b66e4bc3188',1,'OptHdrWrapper']]], @@ -36,22 +36,22 @@ var searchData= ['code_5fsize_33',['CODE_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013aeee88e1c7a89cbdf04afe00fe3c32a95',1,'OptHdrWrapper']]], ['codeoffset_34',['codeOffset',['../class_d_o_s_exe.html#a0dc602c68c8eb5b146b93112d86893a9',1,'DOSExe']]], ['codetostring_35',['codeToString',['../class_custom_exception.html#a956cad0ac8cc9568d8f06e7f11dc51a2',1,'CustomException']]], - ['commonordinalslookup_36',['CommonOrdinalsLookup',['../class_common_ordinals_lookup.html#ad4a0c4e72ec13a1f5e9c9944ecd43132',1,'CommonOrdinalsLookup::CommonOrdinalsLookup()'],['../class_common_ordinals_lookup.html',1,'CommonOrdinalsLookup']]], + ['commonordinalslookup_36',['commonordinalslookup',['../class_common_ordinals_lookup.html#ad4a0c4e72ec13a1f5e9c9944ecd43132',1,'CommonOrdinalsLookup::CommonOrdinalsLookup()'],['../class_common_ordinals_lookup.html',1,'CommonOrdinalsLookup']]], ['commonordinalslookup_2eh_37',['CommonOrdinalsLookup.h',['../_common_ordinals_lookup_8h.html',1,'']]], - ['commonordinalsmap_38',['CommonOrdinalsMap',['../class_common_ordinals_map.html#a59e06f8c0779dfe150dd3e5ba23fb3f8',1,'CommonOrdinalsMap::CommonOrdinalsMap()'],['../class_common_ordinals_map.html#ae683dc0b100af8f9aeb1169a727fd2b3',1,'CommonOrdinalsMap::CommonOrdinalsMap(QString _dllName)'],['../class_common_ordinals_map.html',1,'CommonOrdinalsMap']]], + ['commonordinalsmap_38',['commonordinalsmap',['../class_common_ordinals_map.html#a59e06f8c0779dfe150dd3e5ba23fb3f8',1,'CommonOrdinalsMap::CommonOrdinalsMap()'],['../class_common_ordinals_map.html#ae683dc0b100af8f9aeb1169a727fd2b3',1,'CommonOrdinalsMap::CommonOrdinalsMap(QString _dllName)'],['../class_common_ordinals_map.html',1,'CommonOrdinalsMap']]], ['commonordinalsmap_2eh_39',['CommonOrdinalsMap.h',['../_common_ordinals_map_8h.html',1,'']]], - ['commonordinalsoleaut32_40',['CommonOrdinalsOleaut32',['../class_common_ordinals_oleaut32.html',1,'CommonOrdinalsOleaut32'],['../class_common_ordinals_oleaut32.html#a4d4f52ee8b2e2de7cedef847536997cc',1,'CommonOrdinalsOleaut32::CommonOrdinalsOleaut32()']]], + ['commonordinalsoleaut32_40',['commonordinalsoleaut32',['../class_common_ordinals_oleaut32.html',1,'CommonOrdinalsOleaut32'],['../class_common_ordinals_oleaut32.html#a4d4f52ee8b2e2de7cedef847536997cc',1,'CommonOrdinalsOleaut32::CommonOrdinalsOleaut32()']]], ['commonordinalsoleaut32_2eh_41',['CommonOrdinalsOleaut32.h',['../_common_ordinals_oleaut32_8h.html',1,'']]], - ['commonordinalsws2_5f32_42',['CommonOrdinalsWS2_32',['../class_common_ordinals_w_s2__32.html',1,'CommonOrdinalsWS2_32'],['../class_common_ordinals_w_s2__32.html#a9439a5235aa2f216ec4bb81d07f474d8',1,'CommonOrdinalsWS2_32::CommonOrdinalsWS2_32()']]], + ['commonordinalsws2_5f32_42',['commonordinalsws2_32',['../class_common_ordinals_w_s2__32.html',1,'CommonOrdinalsWS2_32'],['../class_common_ordinals_w_s2__32.html#a9439a5235aa2f216ec4bb81d07f474d8',1,'CommonOrdinalsWS2_32::CommonOrdinalsWS2_32()']]], ['commonordinalsws2_5f32_2eh_43',['CommonOrdinalsWS2_32.h',['../_common_ordinals_w_s2__32_8h.html',1,'']]], ['comp_5fid_5f1_44',['COMP_ID_1',['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ad0e88caeba8511669e82637541f6cf05',1,'RichHdrWrapper']]], ['compidcount_45',['compIdCount',['../class_rich_hdr_wrapper.html#a9fa2a440b039172e68a3966841dea293',1,'RichHdrWrapper']]], ['compidcounter_46',['compIdCounter',['../class_rich_hdr_wrapper.html#a52fe8eb39cbfc5905d1a8801d1a17bef',1,'RichHdrWrapper']]], ['complex_47',['COMPLEX',['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aaa3a63d5724d6624f3752721825bbfd8f',1,'WrappedValue']]], ['computechecksum_48',['computeChecksum',['../class_p_e_file.html#ae7d8f52aaf0c8e5945eb68b76bbb5d96',1,'PEFile']]], - ['containsaddrtype_49',['containsAddrType',['../class_section_hdr_wrapper.html#a95b3f58e69a7b38367a2701ca7df89eb',1,'SectionHdrWrapper::containsAddrType()'],['../class_tls_dir_wrapper.html#afc047beec3fff8fea78e5535e19b28af',1,'TlsDirWrapper::containsAddrType()'],['../class_rich_hdr_wrapper.html#a049aada35e8dca15ea4004c32d7861e0',1,'RichHdrWrapper::containsAddrType()'],['../class_tls_entry_wrapper.html#a8284e4b6950efe8d22ffc18dca14ab1a',1,'TlsEntryWrapper::containsAddrType()'],['../class_resource_leaf_wrapper.html#ae5d8a275e186d4588d595dd714c04dd2',1,'ResourceLeafWrapper::containsAddrType()'],['../class_resource_entry_wrapper.html#a53813936738fccc36c3d23d0153d7166',1,'ResourceEntryWrapper::containsAddrType()'],['../class_reloc_entry_wrapper.html#a10cd6f8cd74ce170ec4712aa3b3ef42f',1,'RelocEntryWrapper::containsAddrType()'],['../class_reloc_block_wrapper.html#ab8b0e353acb1fd577cf454d10f987585',1,'RelocBlockWrapper::containsAddrType()'],['../class_opt_hdr_wrapper.html#a1237d1e844f5a5fbfbbee66b061b4b75',1,'OptHdrWrapper::containsAddrType()'],['../class_ld_config_entry_wrapper.html#a33d4ceb10f68fdaa812da22f2c0b8d9d',1,'LdConfigEntryWrapper::containsAddrType()'],['../class_ld_config_dir_wrapper.html#ad8ebfc0a9bb4875d5e4347d104ef027b',1,'LdConfigDirWrapper::containsAddrType()'],['../class_imported_func_wrapper.html#a86a7797cd4c3881c787a90cdc619d8ce',1,'ImportedFuncWrapper::containsAddrType()'],['../class_import_entry_wrapper.html#a7ffe9f8539b4305ace49513c696de90c',1,'ImportEntryWrapper::containsAddrType()'],['../class_file_hdr_wrapper.html#a21f95f34fc7e0a77a4fad8830d11b13c',1,'FileHdrWrapper::containsAddrType()'],['../class_export_dir_wrapper.html#ab2f4f6ac5b4e50a0ef9e96ecfa3ca0d2',1,'ExportDirWrapper::containsAddrType()'],['../class_export_entry_wrapper.html#ab31921f4cae18bccd7781e6863290ef7',1,'ExportEntryWrapper::containsAddrType()'],['../class_exe_element_wrapper.html#a8108914de5353bd75c8874bb3fb17129',1,'ExeElementWrapper::containsAddrType()'],['../class_clr_dir_wrapper.html#a8bc11566fdb90d7962b86e0f2d5bdd41',1,'ClrDirWrapper::containsAddrType()'],['../class_data_dir_wrapper.html#a70f6562f2d0fdcabdab258ae438b0884',1,'DataDirWrapper::containsAddrType()'],['../class_debug_dir_entry_wrapper.html#aebcd309b79ac748e398fd5911a4904bf',1,'DebugDirEntryWrapper::containsAddrType()'],['../class_debug_dir_c_v_entry_wrapper.html#ac59a2e632af154ef8eafeae33482c246',1,'DebugDirCVEntryWrapper::containsAddrType()'],['../class_delay_imp_entry_wrapper.html#a4fb7884c5a6a8dbcaa4122d55bf4e2fc',1,'DelayImpEntryWrapper::containsAddrType()'],['../class_delay_imp_func_wrapper.html#a2d8546adf2b32cd7895bf3e5191f808d',1,'DelayImpFuncWrapper::containsAddrType()'],['../class_dos_hdr_wrapper.html#a2b2af365fa7330fbd198eb636aa247ca',1,'DosHdrWrapper::containsAddrType()'],['../class_exception_entry_wrapper.html#ae9404e5cb638b5c444aec3ffefacf096',1,'ExceptionEntryWrapper::containsAddrType()']]], + ['containsaddrtype_49',['containsaddrtype',['../class_section_hdr_wrapper.html#a95b3f58e69a7b38367a2701ca7df89eb',1,'SectionHdrWrapper::containsAddrType()'],['../class_tls_dir_wrapper.html#afc047beec3fff8fea78e5535e19b28af',1,'TlsDirWrapper::containsAddrType()'],['../class_rich_hdr_wrapper.html#a049aada35e8dca15ea4004c32d7861e0',1,'RichHdrWrapper::containsAddrType()'],['../class_tls_entry_wrapper.html#a8284e4b6950efe8d22ffc18dca14ab1a',1,'TlsEntryWrapper::containsAddrType()'],['../class_resource_leaf_wrapper.html#ae5d8a275e186d4588d595dd714c04dd2',1,'ResourceLeafWrapper::containsAddrType()'],['../class_resource_entry_wrapper.html#a53813936738fccc36c3d23d0153d7166',1,'ResourceEntryWrapper::containsAddrType()'],['../class_reloc_entry_wrapper.html#a10cd6f8cd74ce170ec4712aa3b3ef42f',1,'RelocEntryWrapper::containsAddrType()'],['../class_reloc_block_wrapper.html#ab8b0e353acb1fd577cf454d10f987585',1,'RelocBlockWrapper::containsAddrType()'],['../class_opt_hdr_wrapper.html#a1237d1e844f5a5fbfbbee66b061b4b75',1,'OptHdrWrapper::containsAddrType()'],['../class_ld_config_entry_wrapper.html#a33d4ceb10f68fdaa812da22f2c0b8d9d',1,'LdConfigEntryWrapper::containsAddrType()'],['../class_ld_config_dir_wrapper.html#ad8ebfc0a9bb4875d5e4347d104ef027b',1,'LdConfigDirWrapper::containsAddrType()'],['../class_imported_func_wrapper.html#a86a7797cd4c3881c787a90cdc619d8ce',1,'ImportedFuncWrapper::containsAddrType()'],['../class_import_entry_wrapper.html#a7ffe9f8539b4305ace49513c696de90c',1,'ImportEntryWrapper::containsAddrType()'],['../class_file_hdr_wrapper.html#a21f95f34fc7e0a77a4fad8830d11b13c',1,'FileHdrWrapper::containsAddrType()'],['../class_export_dir_wrapper.html#ab2f4f6ac5b4e50a0ef9e96ecfa3ca0d2',1,'ExportDirWrapper::containsAddrType()'],['../class_export_entry_wrapper.html#ab31921f4cae18bccd7781e6863290ef7',1,'ExportEntryWrapper::containsAddrType()'],['../class_exe_element_wrapper.html#a8108914de5353bd75c8874bb3fb17129',1,'ExeElementWrapper::containsAddrType()'],['../class_clr_dir_wrapper.html#a8bc11566fdb90d7962b86e0f2d5bdd41',1,'ClrDirWrapper::containsAddrType()'],['../class_data_dir_wrapper.html#a70f6562f2d0fdcabdab258ae438b0884',1,'DataDirWrapper::containsAddrType()'],['../class_debug_dir_entry_wrapper.html#aebcd309b79ac748e398fd5911a4904bf',1,'DebugDirEntryWrapper::containsAddrType()'],['../class_debug_dir_c_v_entry_wrapper.html#ac59a2e632af154ef8eafeae33482c246',1,'DebugDirCVEntryWrapper::containsAddrType()'],['../class_delay_imp_entry_wrapper.html#a4fb7884c5a6a8dbcaa4122d55bf4e2fc',1,'DelayImpEntryWrapper::containsAddrType()'],['../class_delay_imp_func_wrapper.html#a2d8546adf2b32cd7895bf3e5191f808d',1,'DelayImpFuncWrapper::containsAddrType()'],['../class_dos_hdr_wrapper.html#a2b2af365fa7330fbd198eb636aa247ca',1,'DosHdrWrapper::containsAddrType()'],['../class_exception_entry_wrapper.html#ae9404e5cb638b5c444aec3ffefacf096',1,'ExceptionEntryWrapper::containsAddrType()']]], ['containsblock_50',['containsBlock',['../class_abstract_byte_buffer.html#a9fe8ad85b0926eacf7e3e4731b0344a3',1,'AbstractByteBuffer']]], - ['containsdatatype_51',['containsDataType',['../class_security_dir_wrapper.html#aa4a20aad32b13b8ab80bd34b52533f43',1,'SecurityDirWrapper::containsDataType()'],['../class_section_hdr_wrapper.html#aae7571e02b78ab566c100dda88baaa2c',1,'SectionHdrWrapper::containsDataType()'],['../class_resource_version_wrapper.html#a2bb81deb942f3f4939ce9d1711972e93',1,'ResourceVersionWrapper::containsDataType()'],['../class_resource_strings_wrapper.html#ab638d9a9fb7ddd4522107577de2659ce',1,'ResourceStringsWrapper::containsDataType()'],['../class_res_string.html#afa0c4a78fca1de554fb8548fa7331f75',1,'ResString::containsDataType()'],['../class_reource_h_t_m_l_wrapper.html#aaf6e24a9090198000074c643a08ed228',1,'ReourceHTMLWrapper::containsDataType()'],['../class_resource_content_wrapper.html#acf3b9c996c16b047edf841a683887c74',1,'ResourceContentWrapper::containsDataType()'],['../class_reloc_block_wrapper.html#a0374f7305a2d9a1f315e23ac190ebd02',1,'RelocBlockWrapper::containsDataType()'],['../class_exe_element_wrapper.html#a86cc36cd7ea4808d93c0ac59ffb12e60',1,'ExeElementWrapper::containsDataType()'],['../class_reource_manifest_wrapper.html#ab32f51338178cb53972aac8d39276fd5',1,'ReourceManifestWrapper::containsDataType()']]], + ['containsdatatype_51',['containsdatatype',['../class_security_dir_wrapper.html#aa4a20aad32b13b8ab80bd34b52533f43',1,'SecurityDirWrapper::containsDataType()'],['../class_section_hdr_wrapper.html#aae7571e02b78ab566c100dda88baaa2c',1,'SectionHdrWrapper::containsDataType()'],['../class_resource_version_wrapper.html#a2bb81deb942f3f4939ce9d1711972e93',1,'ResourceVersionWrapper::containsDataType()'],['../class_resource_strings_wrapper.html#ab638d9a9fb7ddd4522107577de2659ce',1,'ResourceStringsWrapper::containsDataType()'],['../class_res_string.html#afa0c4a78fca1de554fb8548fa7331f75',1,'ResString::containsDataType()'],['../class_reource_h_t_m_l_wrapper.html#aaf6e24a9090198000074c643a08ed228',1,'ReourceHTMLWrapper::containsDataType()'],['../class_resource_content_wrapper.html#acf3b9c996c16b047edf841a683887c74',1,'ResourceContentWrapper::containsDataType()'],['../class_reloc_block_wrapper.html#a0374f7305a2d9a1f315e23ac190ebd02',1,'RelocBlockWrapper::containsDataType()'],['../class_exe_element_wrapper.html#a86cc36cd7ea4808d93c0ac59ffb12e60',1,'ExeElementWrapper::containsDataType()'],['../class_reource_manifest_wrapper.html#ab32f51338178cb53972aac8d39276fd5',1,'ReourceManifestWrapper::containsDataType()']]], ['content_52',['content',['../class_byte_buffer.html#a3a208ad6d20f60f38bab50760da3b7e4',1,'ByteBuffer']]], ['contentsize_53',['contentSize',['../class_byte_buffer.html#a71068422358f9884689fe6eeca0b4d3f',1,'ByteBuffer']]], ['convertaddr_54',['convertAddr',['../class_executable.html#ab8129d6c42c7b4e84bf524381e4561b9',1,'Executable']]], @@ -59,7 +59,7 @@ var searchData= ['core_56',['core',['../class_p_e_file.html#a6dea3298bd1f96580e6e0da019dfeb42',1,'PEFile']]], ['core_2eh_57',['core.h',['../core_8h.html',1,'']]], ['count_58',['count',['../class_resources_container.html#a3c38a9853548f264d01b01eca49a8672',1,'ResourcesContainer']]], - ['count_5fwrappers_59',['COUNT_WRAPPERS',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeaf602ed67e7d928004454d54b5b0aeaf2',1,'PEFile::COUNT_WRAPPERS'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6a9163bf16195001b31faa65f8fd09548c',1,'DOSExe::COUNT_WRAPPERS'],['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195baa9722ac832e8fe6028a3e8244b14d1113',1,'ExeWrappersContainer::COUNT_WRAPPERS']]], + ['count_5fwrappers_59',['count_wrappers',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeaf602ed67e7d928004454d54b5b0aeaf2',1,'PEFile::COUNT_WRAPPERS'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6a9163bf16195001b31faa65f8fd09548c',1,'DOSExe::COUNT_WRAPPERS'],['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195baa9722ac832e8fe6028a3e8244b14d1113',1,'ExeWrappersContainer::COUNT_WRAPPERS']]], ['counter_60',['COUNTER',['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6ab08abeea38320156929f8adae75f297f',1,'DataDirWrapper']]], ['cp_61',['CP',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a17654786e166ea739ec74ca7cad40213',1,'DosHdrWrapper']]], ['cpad0_62',['CPAD0',['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ab831886bb4e8934b2a49f9c5e5157f5a',1,'RichHdrWrapper']]], @@ -72,6 +72,6 @@ var searchData= ['cs_69',['CS',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a454b97fc7748b73ce8839a2f658a14cb',1,'DosHdrWrapper']]], ['csd_5fver_70',['CSD_VER',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a7258957eb6db5c89b3bf1c144b369f45',1,'LdConfigDirWrapper']]], ['csum_71',['CSUM',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a826e37ae8ca7ef3ad7cf9f6e8d1f1f5c',1,'DosHdrWrapper']]], - ['customexception_72',['CustomException',['../class_custom_exception.html#a4262c8ac437b565af2a8418d0aa04118',1,'CustomException::CustomException(const int32_t code)'],['../class_custom_exception.html#a1de10b1a2ce870d04854456f3d69590f',1,'CustomException::CustomException(const QString info, const int32_t code=UNKNOWN_EXCEPTION)'],['../class_custom_exception.html',1,'CustomException']]], + ['customexception_72',['customexception',['../class_custom_exception.html#a4262c8ac437b565af2a8418d0aa04118',1,'CustomException::CustomException(const int32_t code)'],['../class_custom_exception.html#a1de10b1a2ce870d04854456f3d69590f',1,'CustomException::CustomException(const QString info, const int32_t code=UNKNOWN_EXCEPTION)'],['../class_custom_exception.html',1,'CustomException']]], ['customexception_2eh_73',['CustomException.h',['../_custom_exception_8h.html',1,'']]] ]; diff --git a/search/all_4.js b/search/all_4.js index d8d0e529..607f1d30 100644 --- a/search/all_4.js +++ b/search/all_4.js @@ -8,14 +8,14 @@ var searchData= ['danshdr_5',['dansHdr',['../class_rich_hdr_wrapper.html#a3cae284d10086e5f29164e2090c1186d',1,'RichHdrWrapper']]], ['data_5fbase_6',['DATA_BASE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac707d42c0d8bbbc427719a0675c38790',1,'OptHdrWrapper']]], ['data_5fdir_7',['DATA_DIR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ab09378c8fb9254f6b54b38eee81f72c3',1,'OptHdrWrapper']]], - ['data_5fsize_8',['DATA_SIZE',['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a5f79e6a5b19b020a93aa0be5e4e5155f',1,'ResourceLeafWrapper::DATA_SIZE'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768caa934aede5c40d5900c723f7a93548f66',1,'DebugDirEntryWrapper::DATA_SIZE']]], + ['data_5fsize_8',['data_size',['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a5f79e6a5b19b020a93aa0be5e4e5155f',1,'ResourceLeafWrapper::DATA_SIZE'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768caa934aede5c40d5900c723f7a93548f66',1,'DebugDirEntryWrapper::DATA_SIZE']]], ['data_5ftype_9',['data_type',['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0a',1,'WrappedValue']]], ['datadirentries_10',['dataDirEntries',['../class_p_e_file.html#a009341cb48dc92a42597b3ac1a4480ac',1,'PEFile']]], - ['datadirentrywrapper_11',['DataDirEntryWrapper',['../class_data_dir_entry_wrapper.html#abeca109880b28e18f101e790efc29b1d',1,'DataDirEntryWrapper::DataDirEntryWrapper()'],['../class_data_dir_entry_wrapper.html',1,'DataDirEntryWrapper']]], + ['datadirentrywrapper_11',['datadirentrywrapper',['../class_data_dir_entry_wrapper.html#abeca109880b28e18f101e790efc29b1d',1,'DataDirEntryWrapper::DataDirEntryWrapper()'],['../class_data_dir_entry_wrapper.html',1,'DataDirEntryWrapper']]], ['datadirentrywrapper_2ecpp_12',['DataDirEntryWrapper.cpp',['../_data_dir_entry_wrapper_8cpp.html',1,'']]], ['datadirentrywrapper_2eh_13',['DataDirEntryWrapper.h',['../_data_dir_entry_wrapper_8h.html',1,'']]], ['datadirsid_14',['DataDirSID',['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6',1,'DataDirWrapper']]], - ['datadirwrapper_15',['DataDirWrapper',['../class_data_dir_wrapper.html#a6fb4c3d942770f4779d278675ba89db0',1,'DataDirWrapper::DataDirWrapper()'],['../class_data_dir_wrapper.html',1,'DataDirWrapper']]], + ['datadirwrapper_15',['datadirwrapper',['../class_data_dir_wrapper.html#a6fb4c3d942770f4779d278675ba89db0',1,'DataDirWrapper::DataDirWrapper()'],['../class_data_dir_wrapper.html',1,'DataDirWrapper']]], ['datadirwrapper_2ecpp_16',['DataDirWrapper.cpp',['../_data_dir_wrapper_8cpp.html',1,'']]], ['datadirwrapper_2eh_17',['DataDirWrapper.h',['../_data_dir_wrapper_8h.html',1,'']]], ['datatype_5fcount_18',['DATATYPE_COUNT',['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aab15ad7b0ac32a44d4b444cfd6575230a',1,'WrappedValue']]], @@ -23,10 +23,10 @@ var searchData= ['dbg_5flvl_20',['DBG_LVL',['../_util_8h.html#a2d5f21bfe809857ecc4dd3ecdba44f49',1,'Util.h']]], ['dbgrootdir_21',['dbgRootDir',['../class_debug_dir_entry_wrapper.html#a246c87aa98c027549a38dee57f8f4985',1,'DebugDirEntryWrapper']]], ['debugdir_22',['debugDir',['../class_debug_dir_entry_wrapper.html#a99e6a454435b7d17f742041ca5b44b4d',1,'DebugDirEntryWrapper']]], - ['debugdircventrywrapper_23',['DebugDirCVEntryWrapper',['../class_debug_dir_entry_wrapper.html#a9ee90bdf1e1a8d1ff7a9505de8363da1',1,'DebugDirEntryWrapper::DebugDirCVEntryWrapper'],['../class_debug_dir_c_v_entry_wrapper.html#a6f6b447cc6823362e2f2d6b946ff6574',1,'DebugDirCVEntryWrapper::DebugDirCVEntryWrapper()'],['../class_debug_dir_c_v_entry_wrapper.html',1,'DebugDirCVEntryWrapper']]], - ['debugdirentrywrapper_24',['DebugDirEntryWrapper',['../class_debug_dir_wrapper.html#a1eef2bb4acbb90681927f7feafef7cb6',1,'DebugDirWrapper::DebugDirEntryWrapper'],['../class_debug_dir_entry_wrapper.html#a50d733eaf37c6423713037630c7d9d88',1,'DebugDirEntryWrapper::DebugDirEntryWrapper()'],['../class_debug_dir_entry_wrapper.html',1,'DebugDirEntryWrapper']]], + ['debugdircventrywrapper_23',['debugdircventrywrapper',['../class_debug_dir_entry_wrapper.html#a9ee90bdf1e1a8d1ff7a9505de8363da1',1,'DebugDirEntryWrapper::DebugDirCVEntryWrapper'],['../class_debug_dir_c_v_entry_wrapper.html#a6f6b447cc6823362e2f2d6b946ff6574',1,'DebugDirCVEntryWrapper::DebugDirCVEntryWrapper()'],['../class_debug_dir_c_v_entry_wrapper.html',1,'DebugDirCVEntryWrapper']]], + ['debugdirentrywrapper_24',['debugdirentrywrapper',['../class_debug_dir_wrapper.html#a1eef2bb4acbb90681927f7feafef7cb6',1,'DebugDirWrapper::DebugDirEntryWrapper'],['../class_debug_dir_entry_wrapper.html#a50d733eaf37c6423713037630c7d9d88',1,'DebugDirEntryWrapper::DebugDirEntryWrapper()'],['../class_debug_dir_entry_wrapper.html',1,'DebugDirEntryWrapper']]], ['debugdirfid_25',['DebugDirFID',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768c',1,'DebugDirEntryWrapper']]], - ['debugdirwrapper_26',['DebugDirWrapper',['../class_debug_dir_wrapper.html#aa96f3bd1945636e77a87255916e66729',1,'DebugDirWrapper::DebugDirWrapper()'],['../class_debug_dir_wrapper.html',1,'DebugDirWrapper']]], + ['debugdirwrapper_26',['debugdirwrapper',['../class_debug_dir_wrapper.html#aa96f3bd1945636e77a87255916e66729',1,'DebugDirWrapper::DebugDirWrapper()'],['../class_debug_dir_wrapper.html',1,'DebugDirWrapper']]], ['debugdirwrapper_2ecpp_27',['DebugDirWrapper.cpp',['../_debug_dir_wrapper_8cpp.html',1,'']]], ['debugdirwrapper_2eh_28',['DebugDirWrapper.h',['../_debug_dir_wrapper_8h.html',1,'']]], ['decommit_5ffree_29',['DECOMMIT_FREE',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a6920ab6c583d970b5e758552714625fe',1,'LdConfigDirWrapper']]], @@ -35,11 +35,11 @@ var searchData= ['default_5fimgbase_32',['DEFAULT_IMGBASE',['../_p_e_core_8cpp.html#a8f3218e445e49b9d1cc18b39b48d2aa5',1,'PECore.cpp']]], ['default_5fpadding_33',['DEFAULT_PADDING',['../_byte_buffer_8h.html#af14790cc4c0d7d62f9ed6312e8eb55c7',1,'ByteBuffer.h']]], ['delayimpdirfid_34',['DelayImpDirFID',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096fa',1,'DelayImpEntryWrapper']]], - ['delayimpdirwrapper_35',['DelayImpDirWrapper',['../class_delay_imp_entry_wrapper.html#a07ed508d94a6b798a6117566e6f0b8ea',1,'DelayImpEntryWrapper::DelayImpDirWrapper'],['../class_delay_imp_dir_wrapper.html#a6c1394a6f1c2a8ee7b3e540249661a6d',1,'DelayImpDirWrapper::DelayImpDirWrapper()'],['../class_delay_imp_dir_wrapper.html',1,'DelayImpDirWrapper']]], + ['delayimpdirwrapper_35',['delayimpdirwrapper',['../class_delay_imp_entry_wrapper.html#a07ed508d94a6b798a6117566e6f0b8ea',1,'DelayImpEntryWrapper::DelayImpDirWrapper'],['../class_delay_imp_dir_wrapper.html#a6c1394a6f1c2a8ee7b3e540249661a6d',1,'DelayImpDirWrapper::DelayImpDirWrapper()'],['../class_delay_imp_dir_wrapper.html',1,'DelayImpDirWrapper']]], ['delayimpdirwrapper_2ecpp_36',['DelayImpDirWrapper.cpp',['../_delay_imp_dir_wrapper_8cpp.html',1,'']]], ['delayimpdirwrapper_2eh_37',['DelayImpDirWrapper.h',['../_delay_imp_dir_wrapper_8h.html',1,'']]], - ['delayimpentrywrapper_38',['DelayImpEntryWrapper',['../class_delay_imp_entry_wrapper.html#ab00a805f0eabc9c2e39babebbd51eb83',1,'DelayImpEntryWrapper::DelayImpEntryWrapper()'],['../class_delay_imp_entry_wrapper.html',1,'DelayImpEntryWrapper'],['../class_delay_imp_dir_wrapper.html#abf00f0b715ea232e02a34daa7f410696',1,'DelayImpDirWrapper::DelayImpEntryWrapper']]], - ['delayimpfuncwrapper_39',['DelayImpFuncWrapper',['../class_delay_imp_entry_wrapper.html#ac408ba898150ee41cdce32ec872e7500',1,'DelayImpEntryWrapper::DelayImpFuncWrapper'],['../class_delay_imp_func_wrapper.html#a713f3c5910315dc8499a670715de4230',1,'DelayImpFuncWrapper::DelayImpFuncWrapper()'],['../class_delay_imp_func_wrapper.html',1,'DelayImpFuncWrapper']]], + ['delayimpentrywrapper_38',['delayimpentrywrapper',['../class_delay_imp_entry_wrapper.html#ab00a805f0eabc9c2e39babebbd51eb83',1,'DelayImpEntryWrapper::DelayImpEntryWrapper()'],['../class_delay_imp_entry_wrapper.html',1,'DelayImpEntryWrapper'],['../class_delay_imp_dir_wrapper.html#abf00f0b715ea232e02a34daa7f410696',1,'DelayImpDirWrapper::DelayImpEntryWrapper']]], + ['delayimpfuncwrapper_39',['delayimpfuncwrapper',['../class_delay_imp_entry_wrapper.html#ac408ba898150ee41cdce32ec872e7500',1,'DelayImpEntryWrapper::DelayImpFuncWrapper'],['../class_delay_imp_func_wrapper.html#a713f3c5910315dc8499a670715de4230',1,'DelayImpFuncWrapper::DelayImpFuncWrapper()'],['../class_delay_imp_func_wrapper.html',1,'DelayImpFuncWrapper']]], ['deltatorva_40',['deltaToRVA',['../class_reloc_entry_wrapper.html#a0176ae644d9f12cd267951d74fc70d15',1,'RelocEntryWrapper']]], ['dependent_5fload_5fflags_41',['DEPENDENT_LOAD_FLAGS',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a2541f943def8836e8a1e1a4a8f6bb6aa',1,'LdConfigDirWrapper']]], ['destroy_42',['destroy',['../class_exe_factory.html#a36574c8a39b9bbda647d1e879c1c9d8e',1,'ExeFactory']]], @@ -50,21 +50,19 @@ var searchData= ['dllname_47',['dllName',['../class_common_ordinals_map.html#a4d458c1a370ac29f77db49f39f42210c',1,'CommonOrdinalsMap']]], ['dos_48',['dos',['../class_p_e_core.html#af99e6949cf43d775874f7e24d74fb7aa',1,'PECore']]], ['dos_5fparagraph_49',['DOS_PARAGRAPH',['../_d_o_s_exe_8h.html#a1edf1310bb29dc273c2bdffc75279990',1,'DOSExe.h']]], - ['dosexe_50',['DOSExe',['../class_d_o_s_exe.html#a4ebfe81021f8005508e5d537ecb986c8',1,'DOSExe::DOSExe()'],['../class_d_o_s_exe.html',1,'DOSExe']]], + ['dosexe_50',['dosexe',['../class_d_o_s_exe.html#a4ebfe81021f8005508e5d537ecb986c8',1,'DOSExe::DOSExe()'],['../class_d_o_s_exe.html',1,'DOSExe']]], ['dosexe_2ecpp_51',['DOSExe.cpp',['../_d_o_s_exe_8cpp.html',1,'']]], ['dosexe_2eh_52',['DOSExe.h',['../_d_o_s_exe_8h.html',1,'']]], - ['dosexebuilder_53',['DOSExeBuilder',['../class_d_o_s_exe_builder.html#a47514a2fe69102516c7d0730cec1b850',1,'DOSExeBuilder::DOSExeBuilder()'],['../class_d_o_s_exe_builder.html',1,'DOSExeBuilder']]], + ['dosexebuilder_53',['dosexebuilder',['../class_d_o_s_exe_builder.html#a47514a2fe69102516c7d0730cec1b850',1,'DOSExeBuilder::DOSExeBuilder()'],['../class_d_o_s_exe_builder.html',1,'DOSExeBuilder']]], ['dosfieldid_54',['DosFieldId',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980',1,'DosHdrWrapper']]], - ['doshdrwrapper_55',['dosHdrWrapper',['../class_p_e_file.html#ae8a71a084f7d689552259d012ea95820',1,'PEFile']]], - ['doshdrwrapper_56',['DosHdrWrapper',['../class_dos_hdr_wrapper.html',1,'DosHdrWrapper'],['../class_dos_hdr_wrapper.html#af3cac5dc9b654c55f8c7a893af58ab31',1,'DosHdrWrapper::DosHdrWrapper()']]], - ['doshdrwrapper_57',['dosHdrWrapper',['../class_d_o_s_exe.html#abb5c388a6cf02053c820a646a93f5d06',1,'DOSExe']]], - ['doshdrwrapper_2ecpp_58',['DosHdrWrapper.cpp',['../_dos_hdr_wrapper_8cpp.html',1,'']]], - ['doshdrwrapper_2eh_59',['DosHdrWrapper.h',['../_dos_hdr_wrapper_8h.html',1,'']]], - ['dosheaderoffset_60',['dosHeaderOffset',['../class_d_o_s_exe.html#a1e459a69c1b775b9a9de2c40caf76ced',1,'DOSExe']]], - ['dump_61',['dump',['../class_abstract_file_buffer.html#aa81c39df0e0fde74cdf084bdda6fe321',1,'AbstractFileBuffer']]], - ['dumpfragment_62',['dumpFragment',['../class_executable.html#acf0f83af41f7676f59dd99a8919e0610',1,'Executable']]], - ['dumpsection_63',['dumpSection',['../class_p_e_file.html#a76311e3aa2ccf07af3ac2eac12b88674',1,'PEFile']]], - ['dynamic_5fval_5freloc_64',['DYNAMIC_VAL_RELOC',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aee1daa942c0ea6a5300cad8355a7ebc7',1,'LdConfigDirWrapper']]], - ['dynamic_5fval_5freloc_5ftable_5foffset_65',['DYNAMIC_VAL_RELOC_TABLE_OFFSET',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aa7833eecf8dc73dda3e0d77f1e20ea89',1,'LdConfigDirWrapper']]], - ['dynamic_5fval_5freloc_5ftable_5fsection_66',['DYNAMIC_VAL_RELOC_TABLE_SECTION',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a867eb995e0726c51bcc0549235177cff',1,'LdConfigDirWrapper']]] + ['doshdrwrapper_55',['doshdrwrapper',['../class_p_e_file.html#ae8a71a084f7d689552259d012ea95820',1,'PEFile::dosHdrWrapper'],['../class_dos_hdr_wrapper.html',1,'DosHdrWrapper'],['../class_dos_hdr_wrapper.html#af3cac5dc9b654c55f8c7a893af58ab31',1,'DosHdrWrapper::DosHdrWrapper()'],['../class_d_o_s_exe.html#abb5c388a6cf02053c820a646a93f5d06',1,'DOSExe::dosHdrWrapper']]], + ['doshdrwrapper_2ecpp_56',['DosHdrWrapper.cpp',['../_dos_hdr_wrapper_8cpp.html',1,'']]], + ['doshdrwrapper_2eh_57',['DosHdrWrapper.h',['../_dos_hdr_wrapper_8h.html',1,'']]], + ['dosheaderoffset_58',['dosHeaderOffset',['../class_d_o_s_exe.html#a1e459a69c1b775b9a9de2c40caf76ced',1,'DOSExe']]], + ['dump_59',['dump',['../class_abstract_file_buffer.html#aa81c39df0e0fde74cdf084bdda6fe321',1,'AbstractFileBuffer']]], + ['dumpfragment_60',['dumpFragment',['../class_executable.html#acf0f83af41f7676f59dd99a8919e0610',1,'Executable']]], + ['dumpsection_61',['dumpSection',['../class_p_e_file.html#a76311e3aa2ccf07af3ac2eac12b88674',1,'PEFile']]], + ['dynamic_5fval_5freloc_62',['DYNAMIC_VAL_RELOC',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aee1daa942c0ea6a5300cad8355a7ebc7',1,'LdConfigDirWrapper']]], + ['dynamic_5fval_5freloc_5ftable_5foffset_63',['DYNAMIC_VAL_RELOC_TABLE_OFFSET',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aa7833eecf8dc73dda3e0d77f1e20ea89',1,'LdConfigDirWrapper']]], + ['dynamic_5fval_5freloc_5ftable_5fsection_64',['DYNAMIC_VAL_RELOC_TABLE_SECTION',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a867eb995e0726c51bcc0549235177cff',1,'LdConfigDirWrapper']]] ]; diff --git a/search/all_5.js b/search/all_5.js index 7dcbe114..bb584818 100644 --- a/search/all_5.js +++ b/search/all_5.js @@ -2,7 +2,7 @@ var searchData= [ ['edit_5flist_0',['EDIT_LIST',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a863df145224199bbfd1481b598f7dc08',1,'LdConfigDirWrapper']]], ['enclave_5fconfig_5fptr_1',['ENCLAVE_CONFIG_PTR',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a640ceb809aa78345dbc6f2cff685a6e3',1,'LdConfigDirWrapper']]], - ['end_5faddr_2',['END_ADDR',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a480e94769b9077a5253337f1949841b4',1,'TlsDirWrapper::END_ADDR'],['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faacac5bc77db162f5c15f058e2c68ad166',1,'ExceptionEntryWrapper::END_ADDR']]], + ['end_5faddr_2',['end_addr',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a480e94769b9077a5253337f1949841b4',1,'TlsDirWrapper::END_ADDR'],['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faacac5bc77db162f5c15f058e2c68ad166',1,'ExceptionEntryWrapper::END_ADDR']]], ['endswith_3',['endsWith',['../namespacepe__util.html#af4fa1d5d65e07a71f61ae4d437923445',1,'pe_util']]], ['entries_4',['entries',['../class_exe_node_wrapper.html#a7c22babccbf1bc935ad563d06c450995',1,'ExeNodeWrapper']]], ['entries_5fptr_5',['ENTRIES_PTR',['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03aa843683ada8138561b84c2bbbba122f1',1,'RelocBlockWrapper']]], @@ -15,35 +15,35 @@ var searchData= ['ep_12',['EP',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a6120a545a9e836638d32308e25358ceb',1,'OptHdrWrapper']]], ['exceptfunc64_13',['exceptFunc64',['../class_exception_dir_wrapper.html#a7adac67ef4696bfd93299fcaf7a59403',1,'ExceptionDirWrapper']]], ['exceptionblockfid_14',['ExceptionBlockFID',['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963fa',1,'ExceptionEntryWrapper']]], - ['exceptiondirwrapper_15',['ExceptionDirWrapper',['../class_exception_dir_wrapper.html#a1f62d74773a39a6e2f25da0e58c05dcf',1,'ExceptionDirWrapper::ExceptionDirWrapper()'],['../class_exception_dir_wrapper.html',1,'ExceptionDirWrapper']]], + ['exceptiondirwrapper_15',['exceptiondirwrapper',['../class_exception_dir_wrapper.html#a1f62d74773a39a6e2f25da0e58c05dcf',1,'ExceptionDirWrapper::ExceptionDirWrapper()'],['../class_exception_dir_wrapper.html',1,'ExceptionDirWrapper']]], ['exceptiondirwrapper_2ecpp_16',['ExceptionDirWrapper.cpp',['../_exception_dir_wrapper_8cpp.html',1,'']]], ['exceptiondirwrapper_2eh_17',['ExceptionDirWrapper.h',['../_exception_dir_wrapper_8h.html',1,'']]], - ['exceptionentrywrapper_18',['ExceptionEntryWrapper',['../class_exception_entry_wrapper.html',1,'ExceptionEntryWrapper'],['../class_exception_entry_wrapper.html#a314c3e64aa3aeed05310b6bda3d45419',1,'ExceptionEntryWrapper::ExceptionEntryWrapper()'],['../class_exception_dir_wrapper.html#a658cfc82f99748458274f6834239dc27',1,'ExceptionDirWrapper::ExceptionEntryWrapper']]], + ['exceptionentrywrapper_18',['exceptionentrywrapper',['../class_exception_entry_wrapper.html',1,'ExceptionEntryWrapper'],['../class_exception_entry_wrapper.html#a314c3e64aa3aeed05310b6bda3d45419',1,'ExceptionEntryWrapper::ExceptionEntryWrapper()'],['../class_exception_dir_wrapper.html#a658cfc82f99748458274f6834239dc27',1,'ExceptionDirWrapper::ExceptionEntryWrapper']]], ['exe_5fbits_19',['exe_bits',['../class_executable.html#a2f0aa130b569d7d8f56ec7c746d08684',1,'Executable']]], ['exe_5ftype_20',['exe_type',['../class_exe_factory.html#adc59e611b34ce9a0c6888fddd3699715',1,'ExeFactory']]], - ['exebuilder_21',['ExeBuilder',['../class_exe_builder.html#a0d3ffa25b75a2db8a91dd835dda22a06',1,'ExeBuilder::ExeBuilder()'],['../class_exe_builder.html',1,'ExeBuilder']]], - ['executable_22',['Executable',['../class_exe_element_wrapper.html#ab7df12d050ebc48a6ffd6ff53896d7c5',1,'ExeElementWrapper::Executable'],['../class_executable.html',1,'Executable'],['../class_executable.html#a7d35fd59935c85ec8169522d0830634b',1,'Executable::Executable()']]], + ['exebuilder_21',['exebuilder',['../class_exe_builder.html#a0d3ffa25b75a2db8a91dd835dda22a06',1,'ExeBuilder::ExeBuilder()'],['../class_exe_builder.html',1,'ExeBuilder']]], + ['executable_22',['executable',['../class_exe_element_wrapper.html#ab7df12d050ebc48a6ffd6ff53896d7c5',1,'ExeElementWrapper::Executable'],['../class_executable.html',1,'Executable'],['../class_executable.html#a7d35fd59935c85ec8169522d0830634b',1,'Executable::Executable()']]], ['executable_2ecpp_23',['Executable.cpp',['../_executable_8cpp.html',1,'']]], ['executable_2eh_24',['Executable.h',['../_executable_8h.html',1,'']]], - ['exeelementwrapper_25',['ExeElementWrapper',['../class_exe_element_wrapper.html',1,'ExeElementWrapper'],['../class_exe_element_wrapper.html#a7764c345edef03df4f974f7f09a70a3b',1,'ExeElementWrapper::ExeElementWrapper()']]], + ['exeelementwrapper_25',['exeelementwrapper',['../class_exe_element_wrapper.html',1,'ExeElementWrapper'],['../class_exe_element_wrapper.html#a7764c345edef03df4f974f7f09a70a3b',1,'ExeElementWrapper::ExeElementWrapper()']]], ['exeelementwrapper_2ecpp_26',['ExeElementWrapper.cpp',['../_exe_element_wrapper_8cpp.html',1,'']]], ['exeelementwrapper_2eh_27',['ExeElementWrapper.h',['../_exe_element_wrapper_8h.html',1,'']]], - ['exeexception_28',['ExeException',['../class_exe_exception.html#a5a1d0a0e89988addd03224aa47c5dcb5',1,'ExeException::ExeException()'],['../class_exe_exception.html',1,'ExeException']]], + ['exeexception_28',['exeexception',['../class_exe_exception.html#a5a1d0a0e89988addd03224aa47c5dcb5',1,'ExeException::ExeException()'],['../class_exe_exception.html',1,'ExeException']]], ['exefactory_29',['ExeFactory',['../class_exe_factory.html',1,'']]], ['exefactory_2ecpp_30',['ExeFactory.cpp',['../_exe_factory_8cpp.html',1,'']]], ['exefactory_2eh_31',['ExeFactory.h',['../_exe_factory_8h.html',1,'']]], - ['exefactoryexception_32',['ExeFactoryException',['../class_exe_factory_exception.html#abaf55cdb3d1988c20e6c57f4415bb4f0',1,'ExeFactoryException::ExeFactoryException()'],['../class_exe_factory_exception.html',1,'ExeFactoryException']]], - ['exenodewrapper_33',['ExeNodeWrapper',['../class_exe_node_wrapper.html',1,'ExeNodeWrapper'],['../class_exe_node_wrapper.html#a62bc3ef1f006f8b4ac823c3d573819ce',1,'ExeNodeWrapper::ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent=NULL)'],['../class_exe_node_wrapper.html#adb280f768896cb573d995e3738988cb4',1,'ExeNodeWrapper::ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent, size_t entryNumber)']]], + ['exefactoryexception_32',['exefactoryexception',['../class_exe_factory_exception.html#abaf55cdb3d1988c20e6c57f4415bb4f0',1,'ExeFactoryException::ExeFactoryException()'],['../class_exe_factory_exception.html',1,'ExeFactoryException']]], + ['exenodewrapper_33',['exenodewrapper',['../class_exe_node_wrapper.html',1,'ExeNodeWrapper'],['../class_exe_node_wrapper.html#a62bc3ef1f006f8b4ac823c3d573819ce',1,'ExeNodeWrapper::ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent=NULL)'],['../class_exe_node_wrapper.html#adb280f768896cb573d995e3738988cb4',1,'ExeNodeWrapper::ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent, size_t entryNumber)']]], ['exenodewrapper_2ecpp_34',['ExeNodeWrapper.cpp',['../_exe_node_wrapper_8cpp.html',1,'']]], ['exenodewrapper_2eh_35',['ExeNodeWrapper.h',['../_exe_node_wrapper_8h.html',1,'']]], - ['exewrapperscontainer_36',['ExeWrappersContainer',['../class_exe_wrappers_container.html#a0a27d87b01905e3c9fbf60f52bccdec3',1,'ExeWrappersContainer::ExeWrappersContainer()'],['../class_exe_wrappers_container.html',1,'ExeWrappersContainer']]], + ['exewrapperscontainer_36',['exewrapperscontainer',['../class_exe_wrappers_container.html#a0a27d87b01905e3c9fbf60f52bccdec3',1,'ExeWrappersContainer::ExeWrappersContainer()'],['../class_exe_wrappers_container.html',1,'ExeWrappersContainer']]], ['export_5faddr_5ftable_5fjmps_5fsize_37',['EXPORT_ADDR_TABLE_JMPS_SIZE',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a5be7f52d946b20a71f3406e331383472',1,'ClrDirWrapper']]], ['export_5faddr_5ftable_5fjmps_5fva_38',['EXPORT_ADDR_TABLE_JMPS_VA',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987ad48887a3ee2a087b24835fa783a32eb4',1,'ClrDirWrapper']]], ['exportdir_39',['exportDir',['../class_export_dir_wrapper.html#a7e49769340051dc3d1f11a60288e281f',1,'ExportDirWrapper']]], ['exportdirfid_40',['ExportDirFID',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7',1,'ExportDirWrapper']]], - ['exportdirwrapper_41',['ExportDirWrapper',['../class_export_dir_wrapper.html',1,'ExportDirWrapper'],['../class_export_dir_wrapper.html#a5b0b8f1f86d3848ee3533adcf6c8988c',1,'ExportDirWrapper::ExportDirWrapper()']]], + ['exportdirwrapper_41',['exportdirwrapper',['../class_export_dir_wrapper.html',1,'ExportDirWrapper'],['../class_export_dir_wrapper.html#a5b0b8f1f86d3848ee3533adcf6c8988c',1,'ExportDirWrapper::ExportDirWrapper()']]], ['exportdirwrapper_2ecpp_42',['ExportDirWrapper.cpp',['../_export_dir_wrapper_8cpp.html',1,'']]], ['exportdirwrapper_2eh_43',['ExportDirWrapper.h',['../_export_dir_wrapper_8h.html',1,'']]], - ['exportentrywrapper_44',['ExportEntryWrapper',['../class_export_entry_wrapper.html',1,'ExportEntryWrapper'],['../class_export_dir_wrapper.html#ae757830db4d5fa30625733af6c992649',1,'ExportDirWrapper::ExportEntryWrapper'],['../class_export_entry_wrapper.html#a4c73ac98d0352dfe881d26ef5af22876',1,'ExportEntryWrapper::ExportEntryWrapper()']]], + ['exportentrywrapper_44',['exportentrywrapper',['../class_export_entry_wrapper.html',1,'ExportEntryWrapper'],['../class_export_dir_wrapper.html#ae757830db4d5fa30625733af6c992649',1,'ExportDirWrapper::ExportEntryWrapper'],['../class_export_entry_wrapper.html#a4c73ac98d0352dfe881d26ef5af22876',1,'ExportEntryWrapper::ExportEntryWrapper()']]], ['extendlastsection_45',['extendLastSection',['../class_p_e_file.html#a698d54ae96d87128727289e73f9e8f19',1,'PEFile']]] ]; diff --git a/search/all_6.js b/search/all_6.js index fd968fad..a60098b7 100644 --- a/search/all_6.js +++ b/search/all_6.js @@ -4,42 +4,42 @@ var searchData= ['f_5fcvdbg_5fguid_1',['F_CVDBG_GUID',['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5da77045f4597b98f0997ec53446e180c19',1,'DebugDirCVEntryWrapper']]], ['f_5fcvdbg_5fpdb_2',['F_CVDBG_PDB',['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5daf6a09257c103ec397e4e15948c362aab',1,'DebugDirCVEntryWrapper']]], ['f_5fcvdbg_5fsign_3',['F_CVDBG_SIGN',['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5da707663e86b99e6b3ab64de827da83186',1,'DebugDirCVEntryWrapper']]], - ['fhdr_4',['fHdr',['../class_p_e_file.html#a4683d0a27301e3b5fc412750be86c015',1,'PEFile::fHdr'],['../class_p_e_core.html#aa7909e838ed55e1e29e12e89475aaf20',1,'PECore::fHdr']]], - ['field_5fcounter_5',['FIELD_COUNTER',['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faa9ab51a13e13d8850f1377d66baf13264',1,'ExceptionEntryWrapper::FIELD_COUNTER'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5daf1238c7ae3aa18419ea8ca3555b8a74a',1,'DebugDirCVEntryWrapper::FIELD_COUNTER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a470c66fac17361dd53f833b3d2d32f99',1,'ExportDirWrapper::FIELD_COUNTER'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065aa86013338f0e910a43911219fecf08bb',1,'ExportEntryWrapper::FIELD_COUNTER'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a82a0fdd42a005e50ee7f2ad0566c1403',1,'FileHdrWrapper::FIELD_COUNTER'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986adb88e8ddf720cf0bed4f76c792e3243f',1,'ImportEntryWrapper::FIELD_COUNTER'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bccace3e9cf7c380521b4ac7675e23c753de',1,'ImportedFuncWrapper::FIELD_COUNTER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a2b6e8bb645042d8b0a87748726c44610',1,'LdConfigDirWrapper::FIELD_COUNTER'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099bad3cc9e1494addf76649afa0667543979',1,'LdConfigEntryWrapper::FIELD_COUNTER'],['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013aaee210eb8a4bc9818a1785095c4cc9fa',1,'OptHdrWrapper::FIELD_COUNTER'],['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03a7852e4dcd6665d551d639360dfe8ce20',1,'RelocBlockWrapper::FIELD_COUNTER'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37ca65462f5696a2e3fbcb411d601d9fbbb6',1,'RelocEntryWrapper::FIELD_COUNTER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa5ccba73df3348ebc0e4b19d154d23e9e',1,'ResourceDirWrapper::FIELD_COUNTER'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ac7bf50b53a2451281f5e58483de582d7',1,'ResourceEntryWrapper::FIELD_COUNTER'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a4b26d210993e8d80ea33c8921e0dd760',1,'ResourceLeafWrapper::FIELD_COUNTER'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a723fb63d14f375ce7c3696f395c404a6',1,'RichHdrWrapper::FIELD_COUNTER'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba04816b390a2e8abb2859a61c6360f5dd',1,'ResString::FIELD_COUNTER'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a09b04fec49e3d5e0e5b7cb6886986f1e',1,'ResourceStringsWrapper::FIELD_COUNTER'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246a9a5d9d544bec8c034108cb870faf9923',1,'DelayImpFuncWrapper::FIELD_COUNTER'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5eae789820de8c949bd8efaaae41a8ed22b',1,'TlsEntryWrapper::FIELD_COUNTER'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a609f3db5f15768bee8036bc3680cd81f',1,'TlsDirWrapper::FIELD_COUNTER'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1ac6915a22dc9930f77a50dfe7119c5fad',1,'SecurityDirWrapper::FIELD_COUNTER'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730a726fe6e89ada12ef1981d2ff4e59cfb5',1,'SectionHdrWrapper::FIELD_COUNTER'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a90c8492e00a9098773328a09ef1c1944',1,'ResourceVersionWrapper::FIELD_COUNTER'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a72ec1d55b4bfe951acccef257a0cdc73',1,'BoundEntryWrapper::FIELD_COUNTER'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987ab8d0ca30dd59b2e4497e9141b307fbe3',1,'ClrDirWrapper::FIELD_COUNTER'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca7e66143809c07b541d74334b6b15a3b8',1,'DebugDirEntryWrapper::FIELD_COUNTER'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faae157decbfc80a04b385bcdf468d2e63d',1,'DelayImpEntryWrapper::FIELD_COUNTER'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a17f3e8da080d1d346a7e02f0d25fbdfe',1,'DosHdrWrapper::FIELD_COUNTER']]], + ['fhdr_4',['fhdr',['../class_p_e_file.html#a4683d0a27301e3b5fc412750be86c015',1,'PEFile::fHdr'],['../class_p_e_core.html#aa7909e838ed55e1e29e12e89475aaf20',1,'PECore::fHdr']]], + ['field_5fcounter_5',['field_counter',['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faa9ab51a13e13d8850f1377d66baf13264',1,'ExceptionEntryWrapper::FIELD_COUNTER'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5daf1238c7ae3aa18419ea8ca3555b8a74a',1,'DebugDirCVEntryWrapper::FIELD_COUNTER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a470c66fac17361dd53f833b3d2d32f99',1,'ExportDirWrapper::FIELD_COUNTER'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065aa86013338f0e910a43911219fecf08bb',1,'ExportEntryWrapper::FIELD_COUNTER'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a82a0fdd42a005e50ee7f2ad0566c1403',1,'FileHdrWrapper::FIELD_COUNTER'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986adb88e8ddf720cf0bed4f76c792e3243f',1,'ImportEntryWrapper::FIELD_COUNTER'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bccace3e9cf7c380521b4ac7675e23c753de',1,'ImportedFuncWrapper::FIELD_COUNTER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a2b6e8bb645042d8b0a87748726c44610',1,'LdConfigDirWrapper::FIELD_COUNTER'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099bad3cc9e1494addf76649afa0667543979',1,'LdConfigEntryWrapper::FIELD_COUNTER'],['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013aaee210eb8a4bc9818a1785095c4cc9fa',1,'OptHdrWrapper::FIELD_COUNTER'],['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03a7852e4dcd6665d551d639360dfe8ce20',1,'RelocBlockWrapper::FIELD_COUNTER'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37ca65462f5696a2e3fbcb411d601d9fbbb6',1,'RelocEntryWrapper::FIELD_COUNTER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa5ccba73df3348ebc0e4b19d154d23e9e',1,'ResourceDirWrapper::FIELD_COUNTER'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ac7bf50b53a2451281f5e58483de582d7',1,'ResourceEntryWrapper::FIELD_COUNTER'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a4b26d210993e8d80ea33c8921e0dd760',1,'ResourceLeafWrapper::FIELD_COUNTER'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a723fb63d14f375ce7c3696f395c404a6',1,'RichHdrWrapper::FIELD_COUNTER'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba04816b390a2e8abb2859a61c6360f5dd',1,'ResString::FIELD_COUNTER'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a09b04fec49e3d5e0e5b7cb6886986f1e',1,'ResourceStringsWrapper::FIELD_COUNTER'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246a9a5d9d544bec8c034108cb870faf9923',1,'DelayImpFuncWrapper::FIELD_COUNTER'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5eae789820de8c949bd8efaaae41a8ed22b',1,'TlsEntryWrapper::FIELD_COUNTER'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a609f3db5f15768bee8036bc3680cd81f',1,'TlsDirWrapper::FIELD_COUNTER'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1ac6915a22dc9930f77a50dfe7119c5fad',1,'SecurityDirWrapper::FIELD_COUNTER'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730a726fe6e89ada12ef1981d2ff4e59cfb5',1,'SectionHdrWrapper::FIELD_COUNTER'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a90c8492e00a9098773328a09ef1c1944',1,'ResourceVersionWrapper::FIELD_COUNTER'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a72ec1d55b4bfe951acccef257a0cdc73',1,'BoundEntryWrapper::FIELD_COUNTER'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987ab8d0ca30dd59b2e4497e9141b307fbe3',1,'ClrDirWrapper::FIELD_COUNTER'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca7e66143809c07b541d74334b6b15a3b8',1,'DebugDirEntryWrapper::FIELD_COUNTER'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faae157decbfc80a04b385bcdf468d2e63d',1,'DelayImpEntryWrapper::FIELD_COUNTER'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a17f3e8da080d1d346a7e02f0d25fbdfe',1,'DosHdrWrapper::FIELD_COUNTER']]], ['field_5fcounter_5fold_6',['FIELD_COUNTER_OLD',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45ae40ccf75b9dea842d220e7d2409d5c0a',1,'LdConfigDirWrapper']]], ['field_5fcounter_5fw81_7',['FIELD_COUNTER_W81',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45adcae626c193b985ba722ffc9b252fc0a',1,'LdConfigDirWrapper']]], ['field_5fnone_8',['FIELD_NONE',['../_exe_element_wrapper_8h.html#ae810f8925d2f98da8659d53ce26b5b5c',1,'ExeElementWrapper.h']]], - ['fieldid_9',['FieldID',['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5d',1,'DebugDirCVEntryWrapper::FieldID'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246',1,'DelayImpFuncWrapper::FieldID'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5e',1,'TlsEntryWrapper::FieldID'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065',1,'ExportEntryWrapper::FieldID'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389',1,'FileHdrWrapper::FieldID'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986',1,'ImportEntryWrapper::FieldID'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcc',1,'ImportedFuncWrapper::FieldID'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099b',1,'LdConfigEntryWrapper::FieldID'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37c',1,'RelocEntryWrapper::FieldID'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094',1,'ResourceEntryWrapper::FieldID'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1',1,'ResourceLeafWrapper::FieldID'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62',1,'RichHdrWrapper::FieldID'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987',1,'ClrDirWrapper::FieldID'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3',1,'BoundEntryWrapper::FieldID']]], + ['fieldid_9',['fieldid',['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5d',1,'DebugDirCVEntryWrapper::FieldID'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246',1,'DelayImpFuncWrapper::FieldID'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5e',1,'TlsEntryWrapper::FieldID'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065',1,'ExportEntryWrapper::FieldID'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389',1,'FileHdrWrapper::FieldID'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986',1,'ImportEntryWrapper::FieldID'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcc',1,'ImportedFuncWrapper::FieldID'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099b',1,'LdConfigEntryWrapper::FieldID'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37c',1,'RelocEntryWrapper::FieldID'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094',1,'ResourceEntryWrapper::FieldID'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1',1,'ResourceLeafWrapper::FieldID'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62',1,'RichHdrWrapper::FieldID'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987',1,'ClrDirWrapper::FieldID'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3',1,'BoundEntryWrapper::FieldID']]], ['file_5falign_10',['FILE_ALIGN',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a5fb3bc1ced512b28d499e4974ffe39be',1,'OptHdrWrapper']]], ['file_5fmaxsize_11',['FILE_MAXSIZE',['../_file_buffer_8h.html#ade633a52361f4d36fb0c82ac2acfbe67',1,'FileBuffer.h']]], ['file_5fver_5f0_12',['FILE_VER_0',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928ae6c4fa8c5d88b02fcc5e1c5fbebff13a',1,'ResourceVersionWrapper']]], ['file_5fver_5f1_13',['FILE_VER_1',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a330be5af7b2d1a873bc167a718f66680',1,'ResourceVersionWrapper']]], - ['filebuffer_14',['FileBuffer',['../class_file_buffer.html#a8cd30daa65984872abadd8bb70faaaa3',1,'FileBuffer::FileBuffer()'],['../class_file_buffer.html',1,'FileBuffer']]], + ['filebuffer_14',['filebuffer',['../class_file_buffer.html#a8cd30daa65984872abadd8bb70faaaa3',1,'FileBuffer::FileBuffer()'],['../class_file_buffer.html',1,'FileBuffer']]], ['filebuffer_2ecpp_15',['FileBuffer.cpp',['../_file_buffer_8cpp.html',1,'']]], ['filebuffer_2eh_16',['FileBuffer.h',['../_file_buffer_8h.html',1,'']]], - ['filebufferexception_17',['FileBufferException',['../class_file_buffer_exception.html#a69b33bb8aa338971160d131659a25990',1,'FileBufferException::FileBufferException()'],['../class_file_buffer_exception.html',1,'FileBufferException']]], - ['filehdrwrapper_18',['FileHdrWrapper',['../class_file_hdr_wrapper.html#ae11fa7241e2816b444da9c4c9f5e3c2e',1,'FileHdrWrapper::FileHdrWrapper()'],['../class_file_hdr_wrapper.html',1,'FileHdrWrapper']]], + ['filebufferexception_17',['filebufferexception',['../class_file_buffer_exception.html#a69b33bb8aa338971160d131659a25990',1,'FileBufferException::FileBufferException()'],['../class_file_buffer_exception.html',1,'FileBufferException']]], + ['filehdrwrapper_18',['filehdrwrapper',['../class_file_hdr_wrapper.html#ae11fa7241e2816b444da9c4c9f5e3c2e',1,'FileHdrWrapper::FileHdrWrapper()'],['../class_file_hdr_wrapper.html',1,'FileHdrWrapper']]], ['filehdrwrapper_2ecpp_19',['FileHdrWrapper.cpp',['../_file_hdr_wrapper_8cpp.html',1,'']]], ['filehdrwrapper_2eh_20',['FileHdrWrapper.h',['../_file_hdr_wrapper_8h.html',1,'']]], ['filename_21',['fileName',['../class_abstract_file_buffer.html#ad5ce86edf932f9bb92b91a1b03b8aa9a',1,'AbstractFileBuffer']]], ['filesize_22',['fileSize',['../class_abstract_file_buffer.html#adc73322cb20b97be9ffb987c6b290e40',1,'AbstractFileBuffer']]], - ['fileview_23',['FileView',['../class_file_view.html',1,'FileView'],['../class_file_view.html#af161ebb5802a8f0da8dafdabbb7feb5c',1,'FileView::FileView()']]], + ['fileview_23',['fileview',['../class_file_view.html',1,'FileView'],['../class_file_view.html#af161ebb5802a8f0da8dafdabbb7feb5c',1,'FileView::FileView()']]], ['fileview_5fmaxsize_24',['FILEVIEW_MAXSIZE',['../_file_buffer_8h.html#a5c995a9bac9ca6c6d057896ae4b4ea76',1,'FileBuffer.h']]], ['fillcontent_25',['fillContent',['../class_abstract_byte_buffer.html#af71537f23fca3c17751b782fc41a4ca2',1,'AbstractByteBuffer']]], ['fin_26',['fIn',['../class_file_view.html#aa061c716dd6d732172af077cb137c55f',1,'FileView']]], ['findfuncname_27',['findFuncName',['../class_common_ordinals_lookup.html#af0c6304bd8c696c17cbf2aa4c3fed5d6',1,'CommonOrdinalsLookup']]], ['findmatching_28',['findMatching',['../class_exe_factory.html#a2d77a07fa81a40bfa5edcf3a00bc10fd',1,'ExeFactory']]], ['first_5fthunk_29',['FIRST_THUNK',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a396947c7c6e8e7e7032f019cb3b0ece0',1,'ImportEntryWrapper']]], - ['firstdelayld_30',['firstDelayLd',['../class_delay_imp_dir_wrapper.html#a7f046b23700a0da8f7a04fb4f3dc3f05',1,'DelayImpDirWrapper::firstDelayLd()'],['../class_delay_imp_dir_wrapper.html#adf0e92cb99f87b14a29dcf58153b1d94',1,'DelayImpDirWrapper::firstDelayLd(bufsize_t size)']]], + ['firstdelayld_30',['firstdelayld',['../class_delay_imp_dir_wrapper.html#a7f046b23700a0da8f7a04fb4f3dc3f05',1,'DelayImpDirWrapper::firstDelayLd()'],['../class_delay_imp_dir_wrapper.html#adf0e92cb99f87b14a29dcf58153b1d94',1,'DelayImpDirWrapper::firstDelayLd(bufsize_t size)']]], ['firstdescriptor_31',['firstDescriptor',['../class_import_dir_wrapper.html#ac294c418dc641d108d10ea9c4e1e1694',1,'ImportDirWrapper']]], ['firstsubentryptr_32',['firstSubEntryPtr',['../class_ld_config_dir_wrapper.html#aad06d308525d1f1658b4d496fe1bf9db',1,'LdConfigDirWrapper']]], ['firstsubentrysize_33',['firstSubEntrySize',['../class_ld_config_dir_wrapper.html#a4325b643a80909e6835f050f31dee498',1,'LdConfigDirWrapper']]], - ['flags_34',['FLAGS',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a7222cc6cfedd7725087bc83afcc30e89',1,'ClrDirWrapper::FLAGS'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928aee691bd717b1e07f1c442bf9dd93ae7f',1,'ResourceVersionWrapper::FLAGS']]], + ['flags_34',['flags',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a7222cc6cfedd7725087bc83afcc30e89',1,'ClrDirWrapper::FLAGS'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928aee691bd717b1e07f1c442bf9dd93ae7f',1,'ResourceVersionWrapper::FLAGS']]], ['flags_5fmask_35',['FLAGS_MASK',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a12dd91808873ec54cc6c3ede2eaa7ae7',1,'ResourceVersionWrapper']]], - ['formatter_36',['Formatter',['../class_formatter.html#af7d987b7f085aefe6ba35f20c992c14d',1,'Formatter::Formatter()'],['../class_formatter.html',1,'Formatter']]], + ['formatter_36',['formatter',['../class_formatter.html#af7d987b7f085aefe6ba35f20c992c14d',1,'Formatter::Formatter()'],['../class_formatter.html',1,'Formatter']]], ['formatter_2ecpp_37',['Formatter.cpp',['../_formatter_8cpp.html',1,'']]], ['formatter_2eh_38',['Formatter.h',['../_formatter_8h.html',1,'']]], - ['forwarder_39',['FORWARDER',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a4629b6d3ec24d0e252b0a052f6dd5cfe',1,'ImportEntryWrapper::FORWARDER'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca5d89cf3e810ea9777d29a79503881d31',1,'ImportedFuncWrapper::FORWARDER']]], + ['forwarder_39',['forwarder',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a4629b6d3ec24d0e252b0a052f6dd5cfe',1,'ImportEntryWrapper::FORWARDER'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca5d89cf3e810ea9777d29a79503881d31',1,'ImportedFuncWrapper::FORWARDER']]], ['forwardernamelen_40',['forwarderNameLen',['../namespacepe__util.html#a242ea277da991102b3d65c0ea87be014',1,'pe_util']]], ['func_5fnames_5frva_41',['FUNC_NAMES_RVA',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7aea01fa04fdba9ecce6ab2e61e0a56617',1,'ExportDirWrapper']]], ['function_5frva_42',['FUNCTION_RVA',['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065a1324b0e5567fe59a77d53501010b1d81',1,'ExportEntryWrapper']]], diff --git a/search/all_7.js b/search/all_7.js index 8f4d84b1..edd5eba3 100644 --- a/search/all_7.js +++ b/search/all_7.js @@ -1,29 +1,29 @@ var searchData= [ - ['geentrysize_0',['geEntrySize',['../class_import_entry_wrapper.html#a1fc7a429916eabaae1f59e9809df6c16',1,'ImportEntryWrapper::geEntrySize()'],['../class_exe_node_wrapper.html#a7b8052d3bc6614113d34ccbfcf9b08be',1,'ExeNodeWrapper::geEntrySize()']]], + ['geentrysize_0',['geentrysize',['../class_import_entry_wrapper.html#a1fc7a429916eabaae1f59e9809df6c16',1,'ImportEntryWrapper::geEntrySize()'],['../class_exe_node_wrapper.html#a7b8052d3bc6614113d34ccbfcf9b08be',1,'ExeNodeWrapper::geEntrySize()']]], ['getaddrsize_1',['getAddrSize',['../class_import_base_func_wrapper.html#a6f6b0bbc1e38f2cdb5f413ea4fd7337d',1,'ImportBaseFuncWrapper']]], - ['getalbumptr_2',['getAlbumPtr',['../class_resource_dir_wrapper.html#afefcfd07ea50d74885d9a652feeef332',1,'ResourceDirWrapper::getAlbumPtr()'],['../class_resource_entry_wrapper.html#a3005df7b5e9dca93a6822c401790bbbb',1,'ResourceEntryWrapper::getAlbumPtr()']]], - ['getalignment_3',['getAlignment',['../class_executable.html#ab74d0e5dd5daa2d8da6387f85c233287',1,'Executable::getAlignment()'],['../class_d_o_s_exe.html#afb5e62dec1e4bba1d214b5f71f59f7f6',1,'DOSExe::getAlignment()'],['../class_p_e_core.html#a4acc20ded3755cb301f284b0de0b0652',1,'PECore::getAlignment()'],['../class_p_e_file.html#acfaebe1d9ceb92b150eee6357cf1ca5c',1,'PEFile::getAlignment()']]], - ['getallentrypoints_4',['getAllEntryPoints',['../class_executable.html#a86fc35fdd3f5764d8b9940024a043330',1,'Executable::getAllEntryPoints()'],['../class_p_e_file.html#a601394b4354a7b4091bef37c00345868',1,'PEFile::getAllEntryPoints()']]], + ['getalbumptr_2',['getalbumptr',['../class_resource_dir_wrapper.html#afefcfd07ea50d74885d9a652feeef332',1,'ResourceDirWrapper::getAlbumPtr()'],['../class_resource_entry_wrapper.html#a3005df7b5e9dca93a6822c401790bbbb',1,'ResourceEntryWrapper::getAlbumPtr()']]], + ['getalignment_3',['getalignment',['../class_executable.html#ab74d0e5dd5daa2d8da6387f85c233287',1,'Executable::getAlignment()'],['../class_d_o_s_exe.html#afb5e62dec1e4bba1d214b5f71f59f7f6',1,'DOSExe::getAlignment()'],['../class_p_e_core.html#a4acc20ded3755cb301f284b0de0b0652',1,'PECore::getAlignment()'],['../class_p_e_file.html#acfaebe1d9ceb92b150eee6357cf1ca5c',1,'PEFile::getAlignment()']]], + ['getallentrypoints_4',['getallentrypoints',['../class_executable.html#a86fc35fdd3f5764d8b9940024a043330',1,'Executable::getAllEntryPoints()'],['../class_p_e_file.html#a601394b4354a7b4091bef37c00345868',1,'PEFile::getAllEntryPoints()']]], ['getasciilen_5',['getAsciiLen',['../namespacepe__util.html#a29d9c3fbe1df4a57764cd7da1263c695',1,'pe_util']]], ['getasciilenw_6',['getAsciiLenW',['../namespacepe__util.html#acc15740993227e006ab9ae4ea53ef6d3',1,'pe_util']]], - ['getbitmode_7',['getBitMode',['../class_p_e_file.html#ad3a9277a8a87d1f8aebffc93551e2665',1,'PEFile::getBitMode()'],['../class_executable.html#a2f2044788eb57c73903dca8e6a0477c2',1,'Executable::getBitMode()']]], + ['getbitmode_7',['getbitmode',['../class_p_e_file.html#ad3a9277a8a87d1f8aebffc93551e2665',1,'PEFile::getBitMode()'],['../class_executable.html#a2f2044788eb57c73903dca8e6a0477c2',1,'Executable::getBitMode()']]], ['getcharacteristics_8',['getCharacteristics',['../class_section_hdr_wrapper.html#a1f3da806e7d347f55eb3e6d2819d2cf4',1,'SectionHdrWrapper']]], ['getchildaddress_9',['getChildAddress',['../class_resource_entry_wrapper.html#a7578640e456565b30a017b91a18e198e',1,'ResourceEntryWrapper']]], ['getchildoffsettodirectory_10',['getChildOffsetToDirectory',['../class_resource_entry_wrapper.html#adc5168fb598c839544eae239a2ac13e2',1,'ResourceEntryWrapper']]], ['getcode_11',['getCode',['../class_custom_exception.html#a8527907ab0ce2b35de79f64a05e12dc4',1,'CustomException']]], ['getcompid_12',['getCompId',['../class_rich_hdr_wrapper.html#a80f930bee129f493f98a881156855ef6',1,'RichHdrWrapper']]], - ['getcontent_13',['getContent',['../class_abstract_byte_buffer.html#a2d68f6930726a129478c8ab5ed38779a',1,'AbstractByteBuffer::getContent()'],['../class_buffer_view.html#aa4a53aab5f6e22fb195d6b7ae8ed9e1f',1,'BufferView::getContent()'],['../class_byte_buffer.html#a04b5a95c6ab66b3685c2c6ff0aebf29e',1,'ByteBuffer::getContent()'],['../class_executable.html#a66e5a30580de455968bd682da7781af4',1,'Executable::getContent()'],['../class_exe_element_wrapper.html#a73e41be695c3260ba0764d5b9092937c',1,'ExeElementWrapper::getContent()'],['../class_file_view.html#a107374591eefba7980df282f52b3b8bc',1,'FileView::getContent()'],['../class_file_buffer.html#aa4a5ce54fcad76e42d7dbb867b10d2bb',1,'FileBuffer::getContent()']]], - ['getcontentat_14',['getContentAt',['../class_resource_content_wrapper.html#a1f8c6485f9736e4e2f02c83c5c584616',1,'ResourceContentWrapper::getContentAt()'],['../class_executable.html#a73f47abf247435055849c62f25cddb36',1,'Executable::getContentAt(offset_t offset, Executable::addr_type aType, bufsize_t size, bool allowExceptions=false)'],['../class_executable.html#a3f2511a46b6732f4afbcaa6a1bfb6c46',1,'Executable::getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)'],['../class_abstract_byte_buffer.html#a64f38e33f915741eb283ef9a34cacb6d',1,'AbstractByteBuffer::getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)']]], - ['getcontentatptr_15',['getContentAtPtr',['../class_abstract_byte_buffer.html#a1bb3488a20437ae30801b5f1b30d10ca',1,'AbstractByteBuffer::getContentAtPtr()'],['../class_executable.html#a3dc1741cba39f6422ad114a3417c88bf',1,'Executable::getContentAtPtr()']]], + ['getcontent_13',['getcontent',['../class_abstract_byte_buffer.html#a2d68f6930726a129478c8ab5ed38779a',1,'AbstractByteBuffer::getContent()'],['../class_buffer_view.html#aa4a53aab5f6e22fb195d6b7ae8ed9e1f',1,'BufferView::getContent()'],['../class_byte_buffer.html#a04b5a95c6ab66b3685c2c6ff0aebf29e',1,'ByteBuffer::getContent()'],['../class_executable.html#a66e5a30580de455968bd682da7781af4',1,'Executable::getContent()'],['../class_exe_element_wrapper.html#a73e41be695c3260ba0764d5b9092937c',1,'ExeElementWrapper::getContent()'],['../class_file_view.html#a107374591eefba7980df282f52b3b8bc',1,'FileView::getContent()'],['../class_file_buffer.html#aa4a5ce54fcad76e42d7dbb867b10d2bb',1,'FileBuffer::getContent()']]], + ['getcontentat_14',['getcontentat',['../class_resource_content_wrapper.html#a1f8c6485f9736e4e2f02c83c5c584616',1,'ResourceContentWrapper::getContentAt()'],['../class_executable.html#a73f47abf247435055849c62f25cddb36',1,'Executable::getContentAt(offset_t offset, Executable::addr_type aType, bufsize_t size, bool allowExceptions=false)'],['../class_executable.html#a3f2511a46b6732f4afbcaa6a1bfb6c46',1,'Executable::getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)'],['../class_abstract_byte_buffer.html#a64f38e33f915741eb283ef9a34cacb6d',1,'AbstractByteBuffer::getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)']]], + ['getcontentatptr_15',['getcontentatptr',['../class_abstract_byte_buffer.html#a1bb3488a20437ae30801b5f1b30d10ca',1,'AbstractByteBuffer::getContentAtPtr()'],['../class_executable.html#a3dc1741cba39f6422ad114a3417c88bf',1,'Executable::getContentAtPtr()']]], ['getcontentdeclaredoffset_16',['getContentDeclaredOffset',['../class_section_hdr_wrapper.html#a698831115eda474980d6be3e86747ee2',1,'SectionHdrWrapper']]], ['getcontentdeclaredsize_17',['getContentDeclaredSize',['../class_section_hdr_wrapper.html#a9478405806f657e94ca5192dd2b86839',1,'SectionHdrWrapper']]], ['getcontentendoffset_18',['getContentEndOffset',['../class_section_hdr_wrapper.html#a9b8a20d530aa83ead9c43b4925171d76',1,'SectionHdrWrapper']]], ['getcontentoffset_19',['getContentOffset',['../class_section_hdr_wrapper.html#a9dee2f275d168224c31131b56564b230',1,'SectionHdrWrapper']]], ['getcontentraw_20',['getContentRaw',['../class_resource_content_wrapper.html#a27630d9bfa014f5dbff2055bbd4d4562',1,'ResourceContentWrapper']]], - ['getcontentsize_21',['getContentSize',['../class_byte_buffer.html#a1a8ecea490fbe8260620efab25dc1942',1,'ByteBuffer::getContentSize()'],['../class_section_hdr_wrapper.html#a969cb60019c3afe058ddcba62264ca30',1,'SectionHdrWrapper::getContentSize()'],['../class_file_buffer.html#a8e2cce24bd8e2e4c8ba2994c9a3c4567',1,'FileBuffer::getContentSize()'],['../class_exe_element_wrapper.html#a0bd5e125d24bc597cb6e7f720352fd5a',1,'ExeElementWrapper::getContentSize()'],['../class_executable.html#aeb23198ec798984f5b1cf6a3139be8f2',1,'Executable::getContentSize()'],['../class_file_view.html#ad8fe9370d252ab0c77327cad7f57397a',1,'FileView::getContentSize()'],['../class_abstract_byte_buffer.html#a0493bdae87b5011993652335adb19577',1,'AbstractByteBuffer::getContentSize()'],['../class_buffer_view.html#afa235f02a4619a7e2f1e869d390c2cbf',1,'BufferView::getContentSize()']]], + ['getcontentsize_21',['getcontentsize',['../class_byte_buffer.html#a1a8ecea490fbe8260620efab25dc1942',1,'ByteBuffer::getContentSize()'],['../class_section_hdr_wrapper.html#a969cb60019c3afe058ddcba62264ca30',1,'SectionHdrWrapper::getContentSize()'],['../class_file_buffer.html#a8e2cce24bd8e2e4c8ba2994c9a3c4567',1,'FileBuffer::getContentSize()'],['../class_exe_element_wrapper.html#a0bd5e125d24bc597cb6e7f720352fd5a',1,'ExeElementWrapper::getContentSize()'],['../class_executable.html#aeb23198ec798984f5b1cf6a3139be8f2',1,'Executable::getContentSize()'],['../class_file_view.html#ad8fe9370d252ab0c77327cad7f57397a',1,'FileView::getContentSize()'],['../class_abstract_byte_buffer.html#a0493bdae87b5011993652335adb19577',1,'AbstractByteBuffer::getContentSize()'],['../class_buffer_view.html#afa235f02a4619a7e2f1e869d390c2cbf',1,'BufferView::getContentSize()']]], ['getcontentwrapper_22',['getContentWrapper',['../class_resources_album.html#a87bace4d1907d6841f17334a45189af5',1,'ResourcesAlbum']]], - ['getdatadirectory_23',['getDataDirectory',['../class_data_dir_entry_wrapper.html#af5e95792dc15586d7b769dc46ba55e59',1,'DataDirEntryWrapper::getDataDirectory()'],['../class_import_dir_wrapper.html#a0f5c35951ef2b3989c4ab44e677ab44f',1,'ImportDirWrapper::getDataDirectory()'],['../class_p_e_file.html#aaf212c882b9f95a0f6542cd656ffbad4',1,'PEFile::getDataDirectory()']]], + ['getdatadirectory_23',['getdatadirectory',['../class_data_dir_entry_wrapper.html#af5e95792dc15586d7b769dc46ba55e59',1,'DataDirEntryWrapper::getDataDirectory()'],['../class_import_dir_wrapper.html#a0f5c35951ef2b3989c4ab44e677ab44f',1,'ImportDirWrapper::getDataDirectory()'],['../class_p_e_file.html#aaf212c882b9f95a0f6542cd656ffbad4',1,'PEFile::getDataDirectory()']]], ['getdatadirentry_24',['getDataDirEntry',['../class_p_e_file.html#a9c486bba23979268695ac6cdfcda318e',1,'PEFile']]], ['getdatatype_25',['getDataType',['../class_wrapped_value.html#a32ce95243975ef0284b01f7e7888bfa6',1,'WrappedValue']]], ['getdatestring_26',['getDateString',['../namespaceutil.html#a66b3958432adf14bbd908d8a29e4dd92',1,'util']]], @@ -37,29 +37,29 @@ var searchData= ['getdirentrytype_34',['getDirEntryType',['../class_data_dir_entry_wrapper.html#a003e8eb376b75ba76191ec525c02d94e',1,'DataDirEntryWrapper']]], ['getdirscount_35',['getDirsCount',['../class_data_dir_wrapper.html#ae9323984ac2986c3f1725a8c290c80b0',1,'DataDirWrapper']]], ['getentriesareasize_36',['getEntriesAreaSize',['../class_resource_dir_wrapper.html#ad7df0786cfb16d35a84311ec6a1e5d39',1,'ResourceDirWrapper']]], - ['getentriescount_37',['getEntriesCount',['../class_exe_node_wrapper.html#ab65292a452c9c7d94b6c0b3ce2d934d5',1,'ExeNodeWrapper::getEntriesCount(std::vector< ExeNodeWrapper * > &_entries)'],['../class_exe_node_wrapper.html#aacbf801e0cf579c0e16a7e27f8165693',1,'ExeNodeWrapper::getEntriesCount()']]], + ['getentriescount_37',['getentriescount',['../class_exe_node_wrapper.html#ab65292a452c9c7d94b6c0b3ce2d934d5',1,'ExeNodeWrapper::getEntriesCount(std::vector< ExeNodeWrapper * > &_entries)'],['../class_exe_node_wrapper.html#aacbf801e0cf579c0e16a7e27f8165693',1,'ExeNodeWrapper::getEntriesCount()']]], ['getentriesnum_38',['getEntriesNum',['../class_exe_node_wrapper.html#a42d41c0f9153991ecd1ba3d620dac124',1,'ExeNodeWrapper']]], ['getentriesptr_39',['getEntriesPtr',['../class_reloc_block_wrapper.html#aaee09f7b096e8a122c22f61f0114fb22',1,'RelocBlockWrapper']]], - ['getentryat_40',['getEntryAt',['../class_exe_node_wrapper.html#a682867297187a2c4369484354c515400',1,'ExeNodeWrapper::getEntryAt(std::vector< ExeNodeWrapper * > &_entries, size_t fieldId)'],['../class_exe_node_wrapper.html#a6cce2ccdd539d5afa4eb463b34941123',1,'ExeNodeWrapper::getEntryAt(size_t fieldId)']]], + ['getentryat_40',['getentryat',['../class_exe_node_wrapper.html#a682867297187a2c4369484354c515400',1,'ExeNodeWrapper::getEntryAt(std::vector< ExeNodeWrapper * > &_entries, size_t fieldId)'],['../class_exe_node_wrapper.html#a6cce2ccdd539d5afa4eb463b34941123',1,'ExeNodeWrapper::getEntryAt(size_t fieldId)']]], ['getentryid_41',['getEntryId',['../class_exe_node_wrapper.html#a7f85ba53a1be60d32c65b13bd7c35487',1,'ExeNodeWrapper']]], - ['getentrypoint_42',['getEntryPoint',['../class_executable.html#a23863d16500af8a8e0fe52015d6f6fdd',1,'Executable::getEntryPoint()'],['../class_d_o_s_exe.html#abc119f9aed957076b4b8c389b3b967ee',1,'DOSExe::getEntryPoint()'],['../class_p_e_file.html#a33bbc757bcbca899daa22ac72a173426',1,'PEFile::getEntryPoint()']]], + ['getentrypoint_42',['getentrypoint',['../class_executable.html#a23863d16500af8a8e0fe52015d6f6fdd',1,'Executable::getEntryPoint()'],['../class_d_o_s_exe.html#abc119f9aed957076b4b8c389b3b967ee',1,'DOSExe::getEntryPoint()'],['../class_p_e_file.html#a33bbc757bcbca899daa22ac72a173426',1,'PEFile::getEntryPoint()']]], ['getentryptr_43',['getEntryPtr',['../class_resource_entry_wrapper.html#a7b9e82ed92670df405c16b75dd868046',1,'ResourceEntryWrapper']]], ['getentrysection_44',['getEntrySection',['../class_p_e_file.html#abf86eb668cdc7e21f7aeaad5dd390334',1,'PEFile']]], ['getentrysize_45',['getEntrySize',['../class_delay_imp_dir_wrapper.html#a711d82e0717581501cb5e891518c7408',1,'DelayImpDirWrapper']]], - ['getexe_46',['getExe',['../class_exe_element_wrapper.html#ac51b5e7b01ac0fcd2f12f557c960bb26',1,'ExeElementWrapper::getExe()'],['../class_resource_leaf_wrapper.html#a2586189ea8f9cb8e67a1c8dbb2f6bb40',1,'ResourceLeafWrapper::getExe()']]], + ['getexe_46',['getexe',['../class_exe_element_wrapper.html#ac51b5e7b01ac0fcd2f12f557c960bb26',1,'ExeElementWrapper::getExe()'],['../class_resource_leaf_wrapper.html#a2586189ea8f9cb8e67a1c8dbb2f6bb40',1,'ResourceLeafWrapper::getExe()']]], ['getexports_47',['getExports',['../class_p_e_file.html#a4058eb502f69396d5d17185bc6fe7cf6',1,'PEFile']]], ['getexportsmap_48',['getExportsMap',['../class_p_e_file.html#a118b06da416a1526c02f4813a4bb71c8',1,'PEFile']]], - ['getfieldname_49',['getFieldName',['../class_ld_config_dir_wrapper.html#a96ec8eacb3d42c794d044565aa5517df',1,'LdConfigDirWrapper::getFieldName()'],['../class_ld_config_entry_wrapper.html#a57868556be64bf6156f5bc4e78fd27b6',1,'LdConfigEntryWrapper::getFieldName()'],['../class_opt_hdr_wrapper.html#aaaaef77efd8beb1c6dedbd73bb041ccc',1,'OptHdrWrapper::getFieldName()'],['../class_reloc_dir_wrapper.html#a8270a2d4ad0c52daae51fb5ade9a7c42',1,'RelocDirWrapper::getFieldName(size_t fieldId)'],['../class_reloc_dir_wrapper.html#a72455adc0b0903a3d4b4bc74bb428c1c',1,'RelocDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_reloc_block_wrapper.html#a015411f08570b8428ad5442eab5e3e43',1,'RelocBlockWrapper::getFieldName()'],['../class_reloc_entry_wrapper.html#ab9059dd1f277fd2d4c48779623d9c2ee',1,'RelocEntryWrapper::getFieldName()'],['../class_resource_dir_wrapper.html#a3d3cfc07e23d3351fc712edeeb977159',1,'ResourceDirWrapper::getFieldName()'],['../class_resource_entry_wrapper.html#a271d8b8edb7c51733850103100f71ecb',1,'ResourceEntryWrapper::getFieldName()'],['../class_resource_leaf_wrapper.html#a8c0f2a50272e2c43b9d4cd2b50969957',1,'ResourceLeafWrapper::getFieldName()'],['../class_rich_hdr_wrapper.html#abcbabd0c24c89a643132a78c101b6375',1,'RichHdrWrapper::getFieldName()'],['../class_resource_content_wrapper.html#a5ba99253e9fa927e011c391ff3ab82d7',1,'ResourceContentWrapper::getFieldName()'],['../class_res_string.html#a01c48f44ca4463e74ef5f67f5db31379',1,'ResString::getFieldName()'],['../class_resource_strings_wrapper.html#a7e74cf985a939a7159fba6fa2f887784',1,'ResourceStringsWrapper::getFieldName()'],['../class_resource_version_wrapper.html#ac8ee92ed8ac34741b9727083a8596658',1,'ResourceVersionWrapper::getFieldName()'],['../class_section_hdr_wrapper.html#a4b003ccfec084292e73fb267ffb3c08d',1,'SectionHdrWrapper::getFieldName()'],['../class_sect_hdrs_wrapper.html#a5e03cddf78dfe6599a75c4c36327b0ef',1,'SectHdrsWrapper::getFieldName()'],['../class_security_dir_wrapper.html#a13113120d58c77fbf45ee9e5d3853d26',1,'SecurityDirWrapper::getFieldName()'],['../class_tls_dir_wrapper.html#ae6588ff09c46719b97d468b555595eae',1,'TlsDirWrapper::getFieldName()'],['../class_tls_entry_wrapper.html#a23b195d08f3c7f71b0b82e0bdc479ac4',1,'TlsEntryWrapper::getFieldName()'],['../class_exe_element_wrapper.html#a68270d1efcc7f89c2a27f68fb4bccad3',1,'ExeElementWrapper::getFieldName()'],['../class_import_entry_wrapper.html#a3135167a00f8e3fc243f05a701e9b065',1,'ImportEntryWrapper::getFieldName()'],['../class_exe_node_wrapper.html#a086e8cfa49daea540fc55956821375f1',1,'ExeNodeWrapper::getFieldName()'],['../class_bound_imp_dir_wrapper.html#a345a657ceb0a33e405b40fb23245c305',1,'BoundImpDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_bound_imp_dir_wrapper.html#af59d1037e59a0ff6b1f04bd8e1d3b676',1,'BoundImpDirWrapper::getFieldName(size_t fieldId)'],['../class_bound_entry_wrapper.html#aa74e1a1a6df18d5600ca24ae3a5ecc52',1,'BoundEntryWrapper::getFieldName()'],['../class_clr_dir_wrapper.html#a270a7f98c177a4ab467f51c570f7e774',1,'ClrDirWrapper::getFieldName()'],['../class_data_dir_wrapper.html#a0a9cc450c8dce60142820892c63ced92',1,'DataDirWrapper::getFieldName()'],['../class_debug_dir_wrapper.html#a125063dac2798aa4f100d1d1802a255f',1,'DebugDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_debug_dir_wrapper.html#a117eef973386c056617fc1dfeed71ef2',1,'DebugDirWrapper::getFieldName(size_t fieldId)'],['../class_debug_dir_entry_wrapper.html#a40059d58bf8749cb0fdf42089c98ce99',1,'DebugDirEntryWrapper::getFieldName()'],['../class_debug_dir_c_v_entry_wrapper.html#a03a070954704f9dcc5bb745200c92dfc',1,'DebugDirCVEntryWrapper::getFieldName()'],['../class_delay_imp_entry_wrapper.html#a2a59df1fa18dcac641c18820d67ba4ab',1,'DelayImpEntryWrapper::getFieldName()'],['../class_dos_hdr_wrapper.html#ab6ec0377cd3f8ffefdd4a211ced3e2c4',1,'DosHdrWrapper::getFieldName()'],['../class_delay_imp_func_wrapper.html#a9330c125070aa2495091042307c8100d',1,'DelayImpFuncWrapper::getFieldName()'],['../class_imported_func_wrapper.html#a9c4ef30e61d79ddb347db27d9e7d6968',1,'ImportedFuncWrapper::getFieldName()'],['../class_import_base_dir_wrapper.html#ae3353201a0212f3a9193ca2037905c94',1,'ImportBaseDirWrapper::getFieldName(size_t fieldId)'],['../class_import_base_dir_wrapper.html#a4a16245d389a85fd8452b526500e4216',1,'ImportBaseDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_file_hdr_wrapper.html#a5f6abbb890ecd0d22c633c10e1e5bc30',1,'FileHdrWrapper::getFieldName()'],['../class_export_entry_wrapper.html#a04682ee48ab3cf05f807b371dde4e85f',1,'ExportEntryWrapper::getFieldName()'],['../class_export_dir_wrapper.html#abea9799a36fcd5d0c2fb9589e47418c4',1,'ExportDirWrapper::getFieldName()'],['../class_exception_entry_wrapper.html#aeb778b5462b2c60120e6b91a36c45f04',1,'ExceptionEntryWrapper::getFieldName()'],['../class_exception_dir_wrapper.html#a0835ea57f6b5707560182507cc5344b6',1,'ExceptionDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_exception_dir_wrapper.html#ad14830f6f55f2a82a77c207b87ae8f67',1,'ExceptionDirWrapper::getFieldName(size_t fieldId)']]], + ['getfieldname_49',['getfieldname',['../class_ld_config_dir_wrapper.html#a96ec8eacb3d42c794d044565aa5517df',1,'LdConfigDirWrapper::getFieldName()'],['../class_ld_config_entry_wrapper.html#a57868556be64bf6156f5bc4e78fd27b6',1,'LdConfigEntryWrapper::getFieldName()'],['../class_opt_hdr_wrapper.html#aaaaef77efd8beb1c6dedbd73bb041ccc',1,'OptHdrWrapper::getFieldName()'],['../class_reloc_dir_wrapper.html#a8270a2d4ad0c52daae51fb5ade9a7c42',1,'RelocDirWrapper::getFieldName(size_t fieldId)'],['../class_reloc_dir_wrapper.html#a72455adc0b0903a3d4b4bc74bb428c1c',1,'RelocDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_reloc_block_wrapper.html#a015411f08570b8428ad5442eab5e3e43',1,'RelocBlockWrapper::getFieldName()'],['../class_reloc_entry_wrapper.html#ab9059dd1f277fd2d4c48779623d9c2ee',1,'RelocEntryWrapper::getFieldName()'],['../class_resource_dir_wrapper.html#a3d3cfc07e23d3351fc712edeeb977159',1,'ResourceDirWrapper::getFieldName()'],['../class_resource_entry_wrapper.html#a271d8b8edb7c51733850103100f71ecb',1,'ResourceEntryWrapper::getFieldName()'],['../class_resource_leaf_wrapper.html#a8c0f2a50272e2c43b9d4cd2b50969957',1,'ResourceLeafWrapper::getFieldName()'],['../class_rich_hdr_wrapper.html#abcbabd0c24c89a643132a78c101b6375',1,'RichHdrWrapper::getFieldName()'],['../class_resource_content_wrapper.html#a5ba99253e9fa927e011c391ff3ab82d7',1,'ResourceContentWrapper::getFieldName()'],['../class_res_string.html#a01c48f44ca4463e74ef5f67f5db31379',1,'ResString::getFieldName()'],['../class_resource_strings_wrapper.html#a7e74cf985a939a7159fba6fa2f887784',1,'ResourceStringsWrapper::getFieldName()'],['../class_resource_version_wrapper.html#ac8ee92ed8ac34741b9727083a8596658',1,'ResourceVersionWrapper::getFieldName()'],['../class_section_hdr_wrapper.html#a4b003ccfec084292e73fb267ffb3c08d',1,'SectionHdrWrapper::getFieldName()'],['../class_sect_hdrs_wrapper.html#a5e03cddf78dfe6599a75c4c36327b0ef',1,'SectHdrsWrapper::getFieldName()'],['../class_security_dir_wrapper.html#a13113120d58c77fbf45ee9e5d3853d26',1,'SecurityDirWrapper::getFieldName()'],['../class_tls_dir_wrapper.html#ae6588ff09c46719b97d468b555595eae',1,'TlsDirWrapper::getFieldName()'],['../class_tls_entry_wrapper.html#a23b195d08f3c7f71b0b82e0bdc479ac4',1,'TlsEntryWrapper::getFieldName()'],['../class_exe_element_wrapper.html#a68270d1efcc7f89c2a27f68fb4bccad3',1,'ExeElementWrapper::getFieldName()'],['../class_import_entry_wrapper.html#a3135167a00f8e3fc243f05a701e9b065',1,'ImportEntryWrapper::getFieldName()'],['../class_exe_node_wrapper.html#a086e8cfa49daea540fc55956821375f1',1,'ExeNodeWrapper::getFieldName()'],['../class_bound_imp_dir_wrapper.html#a345a657ceb0a33e405b40fb23245c305',1,'BoundImpDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_bound_imp_dir_wrapper.html#af59d1037e59a0ff6b1f04bd8e1d3b676',1,'BoundImpDirWrapper::getFieldName(size_t fieldId)'],['../class_bound_entry_wrapper.html#aa74e1a1a6df18d5600ca24ae3a5ecc52',1,'BoundEntryWrapper::getFieldName()'],['../class_clr_dir_wrapper.html#a270a7f98c177a4ab467f51c570f7e774',1,'ClrDirWrapper::getFieldName()'],['../class_data_dir_wrapper.html#a0a9cc450c8dce60142820892c63ced92',1,'DataDirWrapper::getFieldName()'],['../class_debug_dir_wrapper.html#a125063dac2798aa4f100d1d1802a255f',1,'DebugDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_debug_dir_wrapper.html#a117eef973386c056617fc1dfeed71ef2',1,'DebugDirWrapper::getFieldName(size_t fieldId)'],['../class_debug_dir_entry_wrapper.html#a40059d58bf8749cb0fdf42089c98ce99',1,'DebugDirEntryWrapper::getFieldName()'],['../class_debug_dir_c_v_entry_wrapper.html#a03a070954704f9dcc5bb745200c92dfc',1,'DebugDirCVEntryWrapper::getFieldName()'],['../class_delay_imp_entry_wrapper.html#a2a59df1fa18dcac641c18820d67ba4ab',1,'DelayImpEntryWrapper::getFieldName()'],['../class_dos_hdr_wrapper.html#ab6ec0377cd3f8ffefdd4a211ced3e2c4',1,'DosHdrWrapper::getFieldName()'],['../class_delay_imp_func_wrapper.html#a9330c125070aa2495091042307c8100d',1,'DelayImpFuncWrapper::getFieldName()'],['../class_imported_func_wrapper.html#a9c4ef30e61d79ddb347db27d9e7d6968',1,'ImportedFuncWrapper::getFieldName()'],['../class_import_base_dir_wrapper.html#ae3353201a0212f3a9193ca2037905c94',1,'ImportBaseDirWrapper::getFieldName(size_t fieldId)'],['../class_import_base_dir_wrapper.html#a4a16245d389a85fd8452b526500e4216',1,'ImportBaseDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_file_hdr_wrapper.html#a5f6abbb890ecd0d22c633c10e1e5bc30',1,'FileHdrWrapper::getFieldName()'],['../class_export_entry_wrapper.html#a04682ee48ab3cf05f807b371dde4e85f',1,'ExportEntryWrapper::getFieldName()'],['../class_export_dir_wrapper.html#abea9799a36fcd5d0c2fb9589e47418c4',1,'ExportDirWrapper::getFieldName()'],['../class_exception_entry_wrapper.html#aeb778b5462b2c60120e6b91a36c45f04',1,'ExceptionEntryWrapper::getFieldName()'],['../class_exception_dir_wrapper.html#a0835ea57f6b5707560182507cc5344b6',1,'ExceptionDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_exception_dir_wrapper.html#ad14830f6f55f2a82a77c207b87ae8f67',1,'ExceptionDirWrapper::getFieldName(size_t fieldId)']]], ['getfieldoffset_50',['getFieldOffset',['../class_exe_element_wrapper.html#a4a1afe592b11191cab1d74432f759b41',1,'ExeElementWrapper']]], - ['getfieldptr_51',['getFieldPtr',['../class_opt_hdr_wrapper.html#ae3576ddd1f41d120bad8839862bd4ba3',1,'OptHdrWrapper::getFieldPtr()'],['../class_reloc_dir_wrapper.html#a67ea1b2d00a1896f2e0b4a443c4071da',1,'RelocDirWrapper::getFieldPtr()'],['../class_reloc_block_wrapper.html#a5e6cb9d45ae520dcdd69663e1ea42d85',1,'RelocBlockWrapper::getFieldPtr()'],['../class_reloc_entry_wrapper.html#a6deb5064824669d4a32f4501a97f3f7d',1,'RelocEntryWrapper::getFieldPtr()'],['../class_resource_dir_wrapper.html#a6db34bb75c27f545dee803a8fce8354d',1,'ResourceDirWrapper::getFieldPtr()'],['../class_resource_entry_wrapper.html#aed4b176f3bdbdda64a52175c1fba3990',1,'ResourceEntryWrapper::getFieldPtr()'],['../class_resource_leaf_wrapper.html#a366f32ea2f7d963eb1b6e71074e7b84a',1,'ResourceLeafWrapper::getFieldPtr()'],['../class_rich_hdr_wrapper.html#a16dbcab63d5d4b45a708b501ee07cade',1,'RichHdrWrapper::getFieldPtr()'],['../class_resource_content_wrapper.html#a3f5c1d1f45d33558f59c0290e164a97c',1,'ResourceContentWrapper::getFieldPtr()'],['../class_dos_hdr_wrapper.html#aa7cf9049040b0c1bcb92e4c588d2f8e5',1,'DosHdrWrapper::getFieldPtr()'],['../class_res_string.html#a18de4346a54bb33f136469a827eee7e2',1,'ResString::getFieldPtr()'],['../class_resource_strings_wrapper.html#a0f61c5187c3115df0ea5ec0c48881f16',1,'ResourceStringsWrapper::getFieldPtr()'],['../class_resource_version_wrapper.html#aa652ff8191ff1cbac970ecb0f2c52d95',1,'ResourceVersionWrapper::getFieldPtr()'],['../class_section_hdr_wrapper.html#a7bcc88fd0fe41fceff39d3d07c3f8160',1,'SectionHdrWrapper::getFieldPtr()'],['../class_sect_hdrs_wrapper.html#a9a7f54cc783df5879478d6f01fea03eb',1,'SectHdrsWrapper::getFieldPtr()'],['../class_security_dir_wrapper.html#aeadb0eed31cad5281c03c1dde19fab25',1,'SecurityDirWrapper::getFieldPtr()'],['../class_tls_dir_wrapper.html#adcae349a7aaed0bca33cba0cf92f8c8a',1,'TlsDirWrapper::getFieldPtr()'],['../class_tls_entry_wrapper.html#ada3e2f030c68847abf36ad96aa42e1a4',1,'TlsEntryWrapper::getFieldPtr()'],['../class_ld_config_dir_wrapper.html#a0dadc0df74050aac9d6407f40c5f490c',1,'LdConfigDirWrapper::getFieldPtr()'],['../class_ld_config_entry_wrapper.html#a2743d84903e5edbcff1f98e4f7235614',1,'LdConfigEntryWrapper::getFieldPtr()'],['../class_bound_imp_dir_wrapper.html#a218b228ce248ecb970d2ade0397c9cbe',1,'BoundImpDirWrapper::getFieldPtr()'],['../class_exe_element_wrapper.html#ae2b79b68df1bdf87f4643dbcd1ef8176',1,'ExeElementWrapper::getFieldPtr(size_t fieldId)'],['../class_exe_element_wrapper.html#a43f0978ee5667e5dd34293f155d3d3cf',1,'ExeElementWrapper::getFieldPtr(size_t fieldId, size_t subField)=0'],['../class_bound_entry_wrapper.html#a1291fe3167db80596b591b930b0394eb',1,'BoundEntryWrapper::getFieldPtr()'],['../class_clr_dir_wrapper.html#ae45d1d25b85f531ac6409f722f86e5b0',1,'ClrDirWrapper::getFieldPtr()'],['../class_data_dir_wrapper.html#acb7d4ed083d908d7d7f224e5a47c1ea5',1,'DataDirWrapper::getFieldPtr()'],['../class_debug_dir_wrapper.html#aa3578924bd5183d0f546aad3f52e0c35',1,'DebugDirWrapper::getFieldPtr()'],['../class_debug_dir_entry_wrapper.html#ab00e37b44534d3d2a1eca6ee7e0425e8',1,'DebugDirEntryWrapper::getFieldPtr()'],['../class_debug_dir_c_v_entry_wrapper.html#aa86418887bc8b73f13ccdc88a95ed143',1,'DebugDirCVEntryWrapper::getFieldPtr()'],['../class_delay_imp_func_wrapper.html#aa3070cc1b024432ee1d3b589662af725',1,'DelayImpFuncWrapper::getFieldPtr()'],['../class_delay_imp_entry_wrapper.html#a13d4f9e687a61aa68741f039b2158d1e',1,'DelayImpEntryWrapper::getFieldPtr()'],['../class_imported_func_wrapper.html#a26d38df3d80ae19d4b93dfe2551690c9',1,'ImportedFuncWrapper::getFieldPtr()'],['../class_import_entry_wrapper.html#a986bfb5f98a9f19cd11c43e60c03891c',1,'ImportEntryWrapper::getFieldPtr()'],['../class_import_base_dir_wrapper.html#af5b653cbf9b566c25cc8a65d9b65f6cb',1,'ImportBaseDirWrapper::getFieldPtr()'],['../class_file_hdr_wrapper.html#a17f5a7c77d5849b23886ace80df777c1',1,'FileHdrWrapper::getFieldPtr()'],['../class_export_entry_wrapper.html#ad76ea01eb71d820df3360175eba8cbcd',1,'ExportEntryWrapper::getFieldPtr()'],['../class_export_dir_wrapper.html#a7217251c8776a9d94d8728dd0a4fc4be',1,'ExportDirWrapper::getFieldPtr()'],['../class_exception_entry_wrapper.html#a454e9c26a5751953294ce26d16734809',1,'ExceptionEntryWrapper::getFieldPtr()'],['../class_exception_dir_wrapper.html#a69fd3a9ac196c25a478d051ddd34e4c3',1,'ExceptionDirWrapper::getFieldPtr()']]], + ['getfieldptr_51',['getfieldptr',['../class_opt_hdr_wrapper.html#ae3576ddd1f41d120bad8839862bd4ba3',1,'OptHdrWrapper::getFieldPtr()'],['../class_reloc_dir_wrapper.html#a67ea1b2d00a1896f2e0b4a443c4071da',1,'RelocDirWrapper::getFieldPtr()'],['../class_reloc_block_wrapper.html#a5e6cb9d45ae520dcdd69663e1ea42d85',1,'RelocBlockWrapper::getFieldPtr()'],['../class_reloc_entry_wrapper.html#a6deb5064824669d4a32f4501a97f3f7d',1,'RelocEntryWrapper::getFieldPtr()'],['../class_resource_dir_wrapper.html#a6db34bb75c27f545dee803a8fce8354d',1,'ResourceDirWrapper::getFieldPtr()'],['../class_resource_entry_wrapper.html#aed4b176f3bdbdda64a52175c1fba3990',1,'ResourceEntryWrapper::getFieldPtr()'],['../class_resource_leaf_wrapper.html#a366f32ea2f7d963eb1b6e71074e7b84a',1,'ResourceLeafWrapper::getFieldPtr()'],['../class_rich_hdr_wrapper.html#a16dbcab63d5d4b45a708b501ee07cade',1,'RichHdrWrapper::getFieldPtr()'],['../class_resource_content_wrapper.html#a3f5c1d1f45d33558f59c0290e164a97c',1,'ResourceContentWrapper::getFieldPtr()'],['../class_dos_hdr_wrapper.html#aa7cf9049040b0c1bcb92e4c588d2f8e5',1,'DosHdrWrapper::getFieldPtr()'],['../class_res_string.html#a18de4346a54bb33f136469a827eee7e2',1,'ResString::getFieldPtr()'],['../class_resource_strings_wrapper.html#a0f61c5187c3115df0ea5ec0c48881f16',1,'ResourceStringsWrapper::getFieldPtr()'],['../class_resource_version_wrapper.html#aa652ff8191ff1cbac970ecb0f2c52d95',1,'ResourceVersionWrapper::getFieldPtr()'],['../class_section_hdr_wrapper.html#a7bcc88fd0fe41fceff39d3d07c3f8160',1,'SectionHdrWrapper::getFieldPtr()'],['../class_sect_hdrs_wrapper.html#a9a7f54cc783df5879478d6f01fea03eb',1,'SectHdrsWrapper::getFieldPtr()'],['../class_security_dir_wrapper.html#aeadb0eed31cad5281c03c1dde19fab25',1,'SecurityDirWrapper::getFieldPtr()'],['../class_tls_dir_wrapper.html#adcae349a7aaed0bca33cba0cf92f8c8a',1,'TlsDirWrapper::getFieldPtr()'],['../class_tls_entry_wrapper.html#ada3e2f030c68847abf36ad96aa42e1a4',1,'TlsEntryWrapper::getFieldPtr()'],['../class_ld_config_dir_wrapper.html#a0dadc0df74050aac9d6407f40c5f490c',1,'LdConfigDirWrapper::getFieldPtr()'],['../class_ld_config_entry_wrapper.html#a2743d84903e5edbcff1f98e4f7235614',1,'LdConfigEntryWrapper::getFieldPtr()'],['../class_bound_imp_dir_wrapper.html#a218b228ce248ecb970d2ade0397c9cbe',1,'BoundImpDirWrapper::getFieldPtr()'],['../class_exe_element_wrapper.html#ae2b79b68df1bdf87f4643dbcd1ef8176',1,'ExeElementWrapper::getFieldPtr(size_t fieldId)'],['../class_exe_element_wrapper.html#a43f0978ee5667e5dd34293f155d3d3cf',1,'ExeElementWrapper::getFieldPtr(size_t fieldId, size_t subField)=0'],['../class_bound_entry_wrapper.html#a1291fe3167db80596b591b930b0394eb',1,'BoundEntryWrapper::getFieldPtr()'],['../class_clr_dir_wrapper.html#ae45d1d25b85f531ac6409f722f86e5b0',1,'ClrDirWrapper::getFieldPtr()'],['../class_data_dir_wrapper.html#acb7d4ed083d908d7d7f224e5a47c1ea5',1,'DataDirWrapper::getFieldPtr()'],['../class_debug_dir_wrapper.html#aa3578924bd5183d0f546aad3f52e0c35',1,'DebugDirWrapper::getFieldPtr()'],['../class_debug_dir_entry_wrapper.html#ab00e37b44534d3d2a1eca6ee7e0425e8',1,'DebugDirEntryWrapper::getFieldPtr()'],['../class_debug_dir_c_v_entry_wrapper.html#aa86418887bc8b73f13ccdc88a95ed143',1,'DebugDirCVEntryWrapper::getFieldPtr()'],['../class_delay_imp_func_wrapper.html#aa3070cc1b024432ee1d3b589662af725',1,'DelayImpFuncWrapper::getFieldPtr()'],['../class_delay_imp_entry_wrapper.html#a13d4f9e687a61aa68741f039b2158d1e',1,'DelayImpEntryWrapper::getFieldPtr()'],['../class_imported_func_wrapper.html#a26d38df3d80ae19d4b93dfe2551690c9',1,'ImportedFuncWrapper::getFieldPtr()'],['../class_import_entry_wrapper.html#a986bfb5f98a9f19cd11c43e60c03891c',1,'ImportEntryWrapper::getFieldPtr()'],['../class_import_base_dir_wrapper.html#af5b653cbf9b566c25cc8a65d9b65f6cb',1,'ImportBaseDirWrapper::getFieldPtr()'],['../class_file_hdr_wrapper.html#a17f5a7c77d5849b23886ace80df777c1',1,'FileHdrWrapper::getFieldPtr()'],['../class_export_entry_wrapper.html#ad76ea01eb71d820df3360175eba8cbcd',1,'ExportEntryWrapper::getFieldPtr()'],['../class_export_dir_wrapper.html#a7217251c8776a9d94d8728dd0a4fc4be',1,'ExportDirWrapper::getFieldPtr()'],['../class_exception_entry_wrapper.html#a454e9c26a5751953294ce26d16734809',1,'ExceptionEntryWrapper::getFieldPtr()'],['../class_exception_dir_wrapper.html#a69fd3a9ac196c25a478d051ddd34e4c3',1,'ExceptionDirWrapper::getFieldPtr()']]], ['getfieldrva_52',['getFieldRVA',['../class_imported_func_wrapper.html#aba75ebd1d66c3d34cb027856a56c3df5',1,'ImportedFuncWrapper']]], - ['getfieldscount_53',['getFieldsCount',['../class_opt_hdr_wrapper.html#a58f92fbf52bdd26f6df68265bd6c8d7c',1,'OptHdrWrapper::getFieldsCount()'],['../class_reloc_dir_wrapper.html#af02859123e3a6355eff02d1f655252f4',1,'RelocDirWrapper::getFieldsCount()'],['../class_reloc_block_wrapper.html#a8ff9ba204f455041f9a08c462cbeda20',1,'RelocBlockWrapper::getFieldsCount()'],['../class_reloc_entry_wrapper.html#a3e42a62844326637cc40ce1ecdf1ce6d',1,'RelocEntryWrapper::getFieldsCount()'],['../class_resource_dir_wrapper.html#aa885db65ad5563108ef714236e0251c2',1,'ResourceDirWrapper::getFieldsCount()'],['../class_resource_entry_wrapper.html#a40ab8125b14d7af273420d55b936a064',1,'ResourceEntryWrapper::getFieldsCount()'],['../class_resource_leaf_wrapper.html#a3cd87eee3d3b5f5197aea00037bb3e40',1,'ResourceLeafWrapper::getFieldsCount()'],['../class_rich_hdr_wrapper.html#aa998d1fe116d37e5bc632cacd4f040e3',1,'RichHdrWrapper::getFieldsCount()'],['../class_resource_content_wrapper.html#a92215e56ef0c8ddb7e775f7b1cdb9a6c',1,'ResourceContentWrapper::getFieldsCount()'],['../class_res_string.html#af3e90f47c81ac74027f8e248cb7da3fb',1,'ResString::getFieldsCount()'],['../class_resource_strings_wrapper.html#a6cace9ce0ee94c82f6bfce8c781cf29e',1,'ResourceStringsWrapper::getFieldsCount()'],['../class_resource_version_wrapper.html#ae7ec32089f76652a429e007012bb2ac2',1,'ResourceVersionWrapper::getFieldsCount()'],['../class_section_hdr_wrapper.html#a0a41301be60cbf44c777ebadd3afdb82',1,'SectionHdrWrapper::getFieldsCount()'],['../class_sect_hdrs_wrapper.html#af94acac0a7e96f12fb04a29dc316dca1',1,'SectHdrsWrapper::getFieldsCount()'],['../class_security_dir_wrapper.html#a389502de5b26b1a8f7aa167b356be1bc',1,'SecurityDirWrapper::getFieldsCount()'],['../class_tls_dir_wrapper.html#a57359a0903cd3298ac73cd91d642c980',1,'TlsDirWrapper::getFieldsCount()'],['../class_tls_entry_wrapper.html#aee9da444480bcb532ff92607b4c182e9',1,'TlsEntryWrapper::getFieldsCount()'],['../class_ld_config_dir_wrapper.html#a0613b2322fdc9fd3b90640b0ef709ae3',1,'LdConfigDirWrapper::getFieldsCount()'],['../class_bound_entry_wrapper.html#a1406dc1581e25df68f7f0a2e427ecbd9',1,'BoundEntryWrapper::getFieldsCount()'],['../class_bound_imp_dir_wrapper.html#aa8d59571a2a2b0ed012530728a712a76',1,'BoundImpDirWrapper::getFieldsCount()'],['../class_exe_element_wrapper.html#a561b2d35521c1f6cb5f07a183989dc83',1,'ExeElementWrapper::getFieldsCount()'],['../class_ld_config_entry_wrapper.html#a97aca7b28375ea5cf57a9a991a1a1847',1,'LdConfigEntryWrapper::getFieldsCount()'],['../class_clr_dir_wrapper.html#a055799916916b392b69a04ca11132fc8',1,'ClrDirWrapper::getFieldsCount()'],['../class_data_dir_wrapper.html#a6d0524c3899f967570e55bda55da8425',1,'DataDirWrapper::getFieldsCount()'],['../class_debug_dir_wrapper.html#a1b2a4db178ee65f190ce2692c15faac0',1,'DebugDirWrapper::getFieldsCount()'],['../class_debug_dir_entry_wrapper.html#ae6150191bdf22c1402e60a77e5722916',1,'DebugDirEntryWrapper::getFieldsCount()'],['../class_debug_dir_c_v_entry_wrapper.html#ab2eb0c25a08deb97636d5e86f63eb71e',1,'DebugDirCVEntryWrapper::getFieldsCount()'],['../class_delay_imp_entry_wrapper.html#a9ef30fe8da95229adc7d93bd3561b4ad',1,'DelayImpEntryWrapper::getFieldsCount()'],['../class_dos_hdr_wrapper.html#ac36cd4351aeb8e6d6cac8b56e0412373',1,'DosHdrWrapper::getFieldsCount()'],['../class_delay_imp_func_wrapper.html#a0b1f7c92facc4d93c094a73d00e899ef',1,'DelayImpFuncWrapper::getFieldsCount()'],['../class_import_base_dir_wrapper.html#af316d49191847491bfcfc53ff1f4a267',1,'ImportBaseDirWrapper::getFieldsCount()'],['../class_import_entry_wrapper.html#a5cef272ff1258a9b27239a7b76fd404f',1,'ImportEntryWrapper::getFieldsCount()'],['../class_imported_func_wrapper.html#a897ff569f1d008543e36e46dad456eb9',1,'ImportedFuncWrapper::getFieldsCount()'],['../class_file_hdr_wrapper.html#a620f1a5dd4bf587007443b7da53d79bf',1,'FileHdrWrapper::getFieldsCount()'],['../class_export_entry_wrapper.html#af8119edec67b4103f108f115747b0fe1',1,'ExportEntryWrapper::getFieldsCount()'],['../class_export_dir_wrapper.html#a4e36e14933d9f7153eadf02721e1789c',1,'ExportDirWrapper::getFieldsCount()'],['../class_exception_entry_wrapper.html#a198838fc11ba460d4a457a17b7191636',1,'ExceptionEntryWrapper::getFieldsCount()'],['../class_exception_dir_wrapper.html#a4732a99b84a6ed3f8ae291b8637099bf',1,'ExceptionDirWrapper::getFieldsCount()']]], - ['getfieldsize_54',['getFieldSize',['../class_sect_hdrs_wrapper.html#a18c6d18f87e949fd09778c62a7f13599',1,'SectHdrsWrapper::getFieldSize()'],['../class_resource_strings_wrapper.html#a7e22d639e58e47accc88d3729ef79022',1,'ResourceStringsWrapper::getFieldSize()'],['../class_res_string.html#a1c40973dc2053461bee0d7668eddeb70',1,'ResString::getFieldSize()'],['../class_rich_hdr_wrapper.html#aa612770ecb336ec058eca779acecc06e',1,'RichHdrWrapper::getFieldSize()'],['../class_imported_func_wrapper.html#ae0df8467bdd92b306f2a40bfbf5a640e',1,'ImportedFuncWrapper::getFieldSize()'],['../class_resource_dir_wrapper.html#aaf0ae328a457b55928694c639e1de5a2',1,'ResourceDirWrapper::getFieldSize()'],['../class_reloc_dir_wrapper.html#a845d8fb9dc4767ef377d6ea36bd656ae',1,'RelocDirWrapper::getFieldSize()'],['../class_opt_hdr_wrapper.html#aa5861113556735cd207989608d08791f',1,'OptHdrWrapper::getFieldSize()'],['../class_ld_config_entry_wrapper.html#aa02b0218b26292c444e60cb0d29e316d',1,'LdConfigEntryWrapper::getFieldSize()'],['../class_import_base_dir_wrapper.html#a74e4d8ece8e36be29f4154d8bfee7020',1,'ImportBaseDirWrapper::getFieldSize()'],['../class_export_entry_wrapper.html#a490b8e57bcc2b1480fdaad9294201276',1,'ExportEntryWrapper::getFieldSize()'],['../class_delay_imp_func_wrapper.html#a8523b0b40770d614fe67ee6175d538d2',1,'DelayImpFuncWrapper::getFieldSize()'],['../class_debug_dir_wrapper.html#a7b7dfe78dde9e71402d8e9dc3e869d30',1,'DebugDirWrapper::getFieldSize()'],['../class_data_dir_wrapper.html#a267b0a6edae9e9193f9d3d7c97a7bd83',1,'DataDirWrapper::getFieldSize()'],['../class_bound_imp_dir_wrapper.html#afc447adcd813a97833ef54a0d5454149',1,'BoundImpDirWrapper::getFieldSize()'],['../class_exe_element_wrapper.html#a10ef93fdda6cf93c5db02b696a81b7c7',1,'ExeElementWrapper::getFieldSize()']]], + ['getfieldscount_53',['getfieldscount',['../class_opt_hdr_wrapper.html#a58f92fbf52bdd26f6df68265bd6c8d7c',1,'OptHdrWrapper::getFieldsCount()'],['../class_reloc_dir_wrapper.html#af02859123e3a6355eff02d1f655252f4',1,'RelocDirWrapper::getFieldsCount()'],['../class_reloc_block_wrapper.html#a8ff9ba204f455041f9a08c462cbeda20',1,'RelocBlockWrapper::getFieldsCount()'],['../class_reloc_entry_wrapper.html#a3e42a62844326637cc40ce1ecdf1ce6d',1,'RelocEntryWrapper::getFieldsCount()'],['../class_resource_dir_wrapper.html#aa885db65ad5563108ef714236e0251c2',1,'ResourceDirWrapper::getFieldsCount()'],['../class_resource_entry_wrapper.html#a40ab8125b14d7af273420d55b936a064',1,'ResourceEntryWrapper::getFieldsCount()'],['../class_resource_leaf_wrapper.html#a3cd87eee3d3b5f5197aea00037bb3e40',1,'ResourceLeafWrapper::getFieldsCount()'],['../class_rich_hdr_wrapper.html#aa998d1fe116d37e5bc632cacd4f040e3',1,'RichHdrWrapper::getFieldsCount()'],['../class_resource_content_wrapper.html#a92215e56ef0c8ddb7e775f7b1cdb9a6c',1,'ResourceContentWrapper::getFieldsCount()'],['../class_res_string.html#af3e90f47c81ac74027f8e248cb7da3fb',1,'ResString::getFieldsCount()'],['../class_resource_strings_wrapper.html#a6cace9ce0ee94c82f6bfce8c781cf29e',1,'ResourceStringsWrapper::getFieldsCount()'],['../class_resource_version_wrapper.html#ae7ec32089f76652a429e007012bb2ac2',1,'ResourceVersionWrapper::getFieldsCount()'],['../class_section_hdr_wrapper.html#a0a41301be60cbf44c777ebadd3afdb82',1,'SectionHdrWrapper::getFieldsCount()'],['../class_sect_hdrs_wrapper.html#af94acac0a7e96f12fb04a29dc316dca1',1,'SectHdrsWrapper::getFieldsCount()'],['../class_security_dir_wrapper.html#a389502de5b26b1a8f7aa167b356be1bc',1,'SecurityDirWrapper::getFieldsCount()'],['../class_tls_dir_wrapper.html#a57359a0903cd3298ac73cd91d642c980',1,'TlsDirWrapper::getFieldsCount()'],['../class_tls_entry_wrapper.html#aee9da444480bcb532ff92607b4c182e9',1,'TlsEntryWrapper::getFieldsCount()'],['../class_ld_config_dir_wrapper.html#a0613b2322fdc9fd3b90640b0ef709ae3',1,'LdConfigDirWrapper::getFieldsCount()'],['../class_bound_entry_wrapper.html#a1406dc1581e25df68f7f0a2e427ecbd9',1,'BoundEntryWrapper::getFieldsCount()'],['../class_bound_imp_dir_wrapper.html#aa8d59571a2a2b0ed012530728a712a76',1,'BoundImpDirWrapper::getFieldsCount()'],['../class_exe_element_wrapper.html#a561b2d35521c1f6cb5f07a183989dc83',1,'ExeElementWrapper::getFieldsCount()'],['../class_ld_config_entry_wrapper.html#a97aca7b28375ea5cf57a9a991a1a1847',1,'LdConfigEntryWrapper::getFieldsCount()'],['../class_clr_dir_wrapper.html#a055799916916b392b69a04ca11132fc8',1,'ClrDirWrapper::getFieldsCount()'],['../class_data_dir_wrapper.html#a6d0524c3899f967570e55bda55da8425',1,'DataDirWrapper::getFieldsCount()'],['../class_debug_dir_wrapper.html#a1b2a4db178ee65f190ce2692c15faac0',1,'DebugDirWrapper::getFieldsCount()'],['../class_debug_dir_entry_wrapper.html#ae6150191bdf22c1402e60a77e5722916',1,'DebugDirEntryWrapper::getFieldsCount()'],['../class_debug_dir_c_v_entry_wrapper.html#ab2eb0c25a08deb97636d5e86f63eb71e',1,'DebugDirCVEntryWrapper::getFieldsCount()'],['../class_delay_imp_entry_wrapper.html#a9ef30fe8da95229adc7d93bd3561b4ad',1,'DelayImpEntryWrapper::getFieldsCount()'],['../class_dos_hdr_wrapper.html#ac36cd4351aeb8e6d6cac8b56e0412373',1,'DosHdrWrapper::getFieldsCount()'],['../class_delay_imp_func_wrapper.html#a0b1f7c92facc4d93c094a73d00e899ef',1,'DelayImpFuncWrapper::getFieldsCount()'],['../class_import_base_dir_wrapper.html#af316d49191847491bfcfc53ff1f4a267',1,'ImportBaseDirWrapper::getFieldsCount()'],['../class_import_entry_wrapper.html#a5cef272ff1258a9b27239a7b76fd404f',1,'ImportEntryWrapper::getFieldsCount()'],['../class_imported_func_wrapper.html#a897ff569f1d008543e36e46dad456eb9',1,'ImportedFuncWrapper::getFieldsCount()'],['../class_file_hdr_wrapper.html#a620f1a5dd4bf587007443b7da53d79bf',1,'FileHdrWrapper::getFieldsCount()'],['../class_export_entry_wrapper.html#af8119edec67b4103f108f115747b0fe1',1,'ExportEntryWrapper::getFieldsCount()'],['../class_export_dir_wrapper.html#a4e36e14933d9f7153eadf02721e1789c',1,'ExportDirWrapper::getFieldsCount()'],['../class_exception_entry_wrapper.html#a198838fc11ba460d4a457a17b7191636',1,'ExceptionEntryWrapper::getFieldsCount()'],['../class_exception_dir_wrapper.html#a4732a99b84a6ed3f8ae291b8637099bf',1,'ExceptionDirWrapper::getFieldsCount()']]], + ['getfieldsize_54',['getfieldsize',['../class_sect_hdrs_wrapper.html#a18c6d18f87e949fd09778c62a7f13599',1,'SectHdrsWrapper::getFieldSize()'],['../class_resource_strings_wrapper.html#a7e22d639e58e47accc88d3729ef79022',1,'ResourceStringsWrapper::getFieldSize()'],['../class_res_string.html#a1c40973dc2053461bee0d7668eddeb70',1,'ResString::getFieldSize()'],['../class_rich_hdr_wrapper.html#aa612770ecb336ec058eca779acecc06e',1,'RichHdrWrapper::getFieldSize()'],['../class_imported_func_wrapper.html#ae0df8467bdd92b306f2a40bfbf5a640e',1,'ImportedFuncWrapper::getFieldSize()'],['../class_resource_dir_wrapper.html#aaf0ae328a457b55928694c639e1de5a2',1,'ResourceDirWrapper::getFieldSize()'],['../class_reloc_dir_wrapper.html#a845d8fb9dc4767ef377d6ea36bd656ae',1,'RelocDirWrapper::getFieldSize()'],['../class_opt_hdr_wrapper.html#aa5861113556735cd207989608d08791f',1,'OptHdrWrapper::getFieldSize()'],['../class_ld_config_entry_wrapper.html#aa02b0218b26292c444e60cb0d29e316d',1,'LdConfigEntryWrapper::getFieldSize()'],['../class_import_base_dir_wrapper.html#a74e4d8ece8e36be29f4154d8bfee7020',1,'ImportBaseDirWrapper::getFieldSize()'],['../class_export_entry_wrapper.html#a490b8e57bcc2b1480fdaad9294201276',1,'ExportEntryWrapper::getFieldSize()'],['../class_delay_imp_func_wrapper.html#a8523b0b40770d614fe67ee6175d538d2',1,'DelayImpFuncWrapper::getFieldSize()'],['../class_debug_dir_wrapper.html#a7b7dfe78dde9e71402d8e9dc3e869d30',1,'DebugDirWrapper::getFieldSize()'],['../class_data_dir_wrapper.html#a267b0a6edae9e9193f9d3d7c97a7bd83',1,'DataDirWrapper::getFieldSize()'],['../class_bound_imp_dir_wrapper.html#afc447adcd813a97833ef54a0d5454149',1,'BoundImpDirWrapper::getFieldSize()'],['../class_exe_element_wrapper.html#a10ef93fdda6cf93c5db02b696a81b7c7',1,'ExeElementWrapper::getFieldSize()']]], ['getfilealignment_55',['getFileAlignment',['../class_p_e_file.html#acadd0ea6b773a5a70370edc54c08cfc6',1,'PEFile']]], ['getfilebuffer_56',['getFileBuffer',['../class_executable.html#aec9a753da149b3524e8990974cd89bc1',1,'Executable']]], ['getfileheader_57',['getFileHeader',['../class_p_e_core.html#a999a7384f312ddd6c5d81be37d6adfe4',1,'PECore']]], - ['getfilename_58',['getFileName',['../class_abstract_file_buffer.html#a9fd380bce0841d36b8f10b10ca95cca4',1,'AbstractFileBuffer::getFileName()'],['../class_executable.html#a789b3a0ea142fd5da4bd8c9c3e8c2d69',1,'Executable::getFileName()']]], - ['getfilesize_59',['getFileSize',['../class_executable.html#a2d3a19201904056de3d6539ea34efa08',1,'Executable::getFileSize()'],['../class_file_buffer.html#ae4818607757fb43295f9e6173916de1a',1,'FileBuffer::getFileSize()']]], + ['getfilename_58',['getfilename',['../class_abstract_file_buffer.html#a9fd380bce0841d36b8f10b10ca95cca4',1,'AbstractFileBuffer::getFileName()'],['../class_executable.html#a789b3a0ea142fd5da4bd8c9c3e8c2d69',1,'Executable::getFileName()']]], + ['getfilesize_59',['getfilesize',['../class_executable.html#a2d3a19201904056de3d6539ea34efa08',1,'Executable::getFileSize()'],['../class_file_buffer.html#ae4818607757fb43295f9e6173916de1a',1,'FileBuffer::getFileSize()']]], ['getfirstimpbynameptr_60',['getFirstImpByNamePtr',['../class_delay_imp_entry_wrapper.html#ab16e2e700ae85ed8f249549255af18e7',1,'DelayImpEntryWrapper']]], ['getflagsset_61',['getFlagsSet',['../class_clr_dir_wrapper.html#a036c2a8e9060ccbd6399822004fe4165',1,'ClrDirWrapper']]], ['getforwarder_62',['getForwarder',['../class_export_entry_wrapper.html#aead6b0e7687f450e3efd16f3c9cf399a',1,'ExportEntryWrapper']]], @@ -67,14 +67,14 @@ var searchData= ['getfuncname_64',['getFuncName',['../class_export_entry_wrapper.html#a4edc9ea456dc84e171f6b4059cd1b26d',1,'ExportEntryWrapper']]], ['getfuncnamerva_65',['getFuncNameRva',['../class_export_entry_wrapper.html#ad075b35efea5d2395579eb5e9a889c66',1,'ExportEntryWrapper']]], ['getfuncrva_66',['getFuncRva',['../class_export_entry_wrapper.html#ae41b68a2815a57d6d0fa4de6fe5fcef6',1,'ExportEntryWrapper']]], - ['getfunctionname_67',['getFunctionName',['../class_delay_imp_func_wrapper.html#a2671ee0a9df826576e3746f625de7ace',1,'DelayImpFuncWrapper::getFunctionName()'],['../class_import_base_func_wrapper.html#aae83f36e9dde96fc3373b73a238c05a3',1,'ImportBaseFuncWrapper::getFunctionName()'],['../class_imported_func_wrapper.html#ab5f1f5bbb47762df7c8db1782dee8483',1,'ImportedFuncWrapper::getFunctionName()']]], + ['getfunctionname_67',['getfunctionname',['../class_delay_imp_func_wrapper.html#a2671ee0a9df826576e3746f625de7ace',1,'DelayImpFuncWrapper::getFunctionName()'],['../class_import_base_func_wrapper.html#aae83f36e9dde96fc3373b73a238c05a3',1,'ImportBaseFuncWrapper::getFunctionName()'],['../class_imported_func_wrapper.html#ab5f1f5bbb47762df7c8db1782dee8483',1,'ImportedFuncWrapper::getFunctionName()']]], ['getguardflagsset_68',['getGuardFlagsSet',['../class_ld_config_dir_wrapper.html#a7d432fabdaacf321c1f90756fe2eef17',1,'LdConfigDirWrapper']]], ['getguidstring_69',['getGuidString',['../class_debug_dir_c_v_entry_wrapper.html#aaef8fab5ae52a3ad44a8dd8463c12128',1,'DebugDirCVEntryWrapper']]], - ['gethdrbitmode_70',['getHdrBitMode',['../class_opt_hdr_wrapper.html#a41ebcb5b5723fb2b0c1b76388e4c7396',1,'OptHdrWrapper::getHdrBitMode()'],['../class_p_e_core.html#ae19b9fc1ba78c32982baeda811479de1',1,'PECore::getHdrBitMode()'],['../class_p_e_file.html#af2560116036624efbb020a312d8017b2',1,'PEFile::getHdrBitMode()']]], + ['gethdrbitmode_70',['gethdrbitmode',['../class_opt_hdr_wrapper.html#a41ebcb5b5723fb2b0c1b76388e4c7396',1,'OptHdrWrapper::getHdrBitMode()'],['../class_p_e_core.html#ae19b9fc1ba78c32982baeda811479de1',1,'PECore::getHdrBitMode()'],['../class_p_e_file.html#af2560116036624efbb020a312d8017b2',1,'PEFile::getHdrBitMode()']]], ['gethint_71',['getHint',['../class_delay_imp_func_wrapper.html#aa968185cdc031dd53fce5f96e763cc26',1,'DelayImpFuncWrapper']]], ['getid_72',['getID',['../class_resource_entry_wrapper.html#a1fc06565c20b926968ea4320afd6d577',1,'ResourceEntryWrapper']]], - ['getimagebase_73',['getImageBase',['../class_p_e_core.html#a7de22e67191aa4cc85a13d4647e1d926',1,'PECore::getImageBase()'],['../class_p_e_file.html#a631999ef77e6cf9492993e5d5af1e5ab',1,'PEFile::getImageBase()'],['../class_d_o_s_exe.html#a7e13e1243f359587db7fb48364147a7e',1,'DOSExe::getImageBase()'],['../class_executable.html#a513ca66070ae1b44cf81981346165d82',1,'Executable::getImageBase(bool recalculate=false)=0']]], - ['getimagesize_74',['getImageSize',['../class_executable.html#a8792e07e9290a5eade2ba15ee4491326',1,'Executable::getImageSize()'],['../class_p_e_core.html#a968d53a13a783b32a6b3adbbdbd00e96',1,'PECore::getImageSize()']]], + ['getimagebase_73',['getimagebase',['../class_p_e_core.html#a7de22e67191aa4cc85a13d4647e1d926',1,'PECore::getImageBase()'],['../class_p_e_file.html#a631999ef77e6cf9492993e5d5af1e5ab',1,'PEFile::getImageBase()'],['../class_d_o_s_exe.html#a7e13e1243f359587db7fb48364147a7e',1,'DOSExe::getImageBase()'],['../class_executable.html#a513ca66070ae1b44cf81981346165d82',1,'Executable::getImageBase(bool recalculate=false)=0']]], + ['getimagesize_74',['getimagesize',['../class_executable.html#a8792e07e9290a5eade2ba15ee4491326',1,'Executable::getImageSize()'],['../class_p_e_core.html#a968d53a13a783b32a6b3adbbdbd00e96',1,'PECore::getImageSize()']]], ['getimportbynameptr_75',['getImportByNamePtr',['../class_imported_func_wrapper.html#ac4fcaed7600a3d7e840362448813a7ab',1,'ImportedFuncWrapper']]], ['getimports_76',['getImports',['../class_p_e_file.html#abb75af53fdb96d7af64bd9612609055d',1,'PEFile']]], ['getinfo_77',['getInfo',['../class_custom_exception.html#a1c103f558cbc55ae13b230b6ccefef62',1,'CustomException']]], @@ -83,58 +83,58 @@ var searchData= ['getlastmapped_80',['getLastMapped',['../class_p_e_file.html#a466aa50196450782c5eea2dc6c734f43',1,'PEFile']]], ['getlastsection_81',['getLastSection',['../class_p_e_file.html#a72cfa6fb099cf7e82f6f33220740b4df',1,'PEFile']]], ['getlibname_82',['getLibName',['../class_import_base_func_wrapper.html#abd90449e2d5e2f026af89cdb5e42aa6c',1,'ImportBaseFuncWrapper']]], - ['getlibraryname_83',['getLibraryName',['../class_export_dir_wrapper.html#a057800ab3e7cf1eb33ef5907b43d6339',1,'ExportDirWrapper::getLibraryName()'],['../class_bound_entry_wrapper.html#a14d05f8b7807a962559a89f4dc3103e3',1,'BoundEntryWrapper::getLibraryName()'],['../class_delay_imp_entry_wrapper.html#a59ca36c4ce27892ea6e8a6debf3d6343',1,'DelayImpEntryWrapper::getLibraryName()'],['../class_import_entry_wrapper.html#a2ce480e25eb5fd9670ce9d73b8c36fdd',1,'ImportEntryWrapper::getLibraryName()'],['../class_import_base_entry_wrapper.html#ad5ee91f17a35bc9691a7d1cf96d7c75e',1,'ImportBaseEntryWrapper::getLibraryName()']]], - ['getmappablesize_84',['getMappableSize',['../class_file_view.html#a43cf76fbb17e4e13367f6e87fefe5cd6',1,'FileView::getMappableSize(QFile &fIn)'],['../class_file_view.html#aca3fe90c560d2512a3c47c507cc0192d',1,'FileView::getMappableSize()']]], + ['getlibraryname_83',['getlibraryname',['../class_export_dir_wrapper.html#a057800ab3e7cf1eb33ef5907b43d6339',1,'ExportDirWrapper::getLibraryName()'],['../class_bound_entry_wrapper.html#a14d05f8b7807a962559a89f4dc3103e3',1,'BoundEntryWrapper::getLibraryName()'],['../class_delay_imp_entry_wrapper.html#a59ca36c4ce27892ea6e8a6debf3d6343',1,'DelayImpEntryWrapper::getLibraryName()'],['../class_import_entry_wrapper.html#a2ce480e25eb5fd9670ce9d73b8c36fdd',1,'ImportEntryWrapper::getLibraryName()'],['../class_import_base_entry_wrapper.html#ad5ee91f17a35bc9691a7d1cf96d7c75e',1,'ImportBaseEntryWrapper::getLibraryName()']]], + ['getmappablesize_84',['getmappablesize',['../class_file_view.html#a43cf76fbb17e4e13367f6e87fefe5cd6',1,'FileView::getMappableSize(QFile &fIn)'],['../class_file_view.html#aca3fe90c560d2512a3c47c507cc0192d',1,'FileView::getMappableSize()']]], ['getmappedrawsize_85',['getMappedRawSize',['../class_section_hdr_wrapper.html#aa6a0da0aebfa501b172c61dfbc3d7b60',1,'SectionHdrWrapper']]], - ['getmappedsize_86',['getMappedSize',['../class_executable.html#a8715ce5ec6dfcf19916b1bcab0ed6c5a',1,'Executable::getMappedSize()'],['../class_d_o_s_exe.html#ac8d2786dec34009b2796092759bbf55a',1,'DOSExe::getMappedSize()'],['../class_p_e_file.html#a1056ad3e332b1f896e211c5f864ce8e1',1,'PEFile::getMappedSize()']]], + ['getmappedsize_86',['getmappedsize',['../class_executable.html#a8715ce5ec6dfcf19916b1bcab0ed6c5a',1,'Executable::getMappedSize()'],['../class_d_o_s_exe.html#ac8d2786dec34009b2796092759bbf55a',1,'DOSExe::getMappedSize()'],['../class_p_e_file.html#a1056ad3e332b1f896e211c5f864ce8e1',1,'PEFile::getMappedSize()']]], ['getmappedvirtualsize_87',['getMappedVirtualSize',['../class_section_hdr_wrapper.html#a2e83729349828bdf810293d3359af79d',1,'SectionHdrWrapper']]], ['getmaxsizefromoffset_88',['getMaxSizeFromOffset',['../class_abstract_byte_buffer.html#a04f5bb327ac0789b872d0771b11adc6b',1,'AbstractByteBuffer']]], ['getmaxsizefromptr_89',['getMaxSizeFromPtr',['../class_abstract_byte_buffer.html#a4cbbe66b2777fa7c450f612ec3a20ae6',1,'AbstractByteBuffer']]], ['getminsecrva_90',['getMinSecRVA',['../class_p_e_file.html#a40e71735810259a8d28108ce4adbc3e6',1,'PEFile']]], - ['getname_91',['getName',['../class_ld_config_entry_wrapper.html#a06a145b0d40046a889c185c19d71a330',1,'LdConfigEntryWrapper::getName()'],['../class_resource_entry_wrapper.html#ac203b0bbeda8346e0e545828f3155cb1',1,'ResourceEntryWrapper::getName()'],['../class_opt_hdr_wrapper.html#ac56d3e37a993e1e52520d035ca5600de',1,'OptHdrWrapper::getName()'],['../class_reloc_dir_wrapper.html#a3ba80f03708c962d7acb13d9a4399499',1,'RelocDirWrapper::getName()'],['../class_reloc_block_wrapper.html#a951e1f77dcff2a975f14c07b605dd0ef',1,'RelocBlockWrapper::getName()'],['../class_reloc_entry_wrapper.html#aada49dd0ed1c19a5258af6b4b8b6542d',1,'RelocEntryWrapper::getName()'],['../class_resource_dir_wrapper.html#ace06204deed79d41e9e0429e4a931e01',1,'ResourceDirWrapper::getName()'],['../class_resource_leaf_wrapper.html#aceaac960c721bf4404502206de0bcb35',1,'ResourceLeafWrapper::getName()'],['../class_rich_hdr_wrapper.html#a8f7e3ea602e14e4472f7a7c533f01459',1,'RichHdrWrapper::getName()'],['../class_resource_content_wrapper.html#a68511f91f4cb1437e0f77bd761f5b5ca',1,'ResourceContentWrapper::getName()'],['../class_res_string.html#a4b992535d9307f1134b9fb9d4af1364c',1,'ResString::getName()'],['../class_resource_version_wrapper.html#ace0a490f832e9dfeb58d34bc690f3914',1,'ResourceVersionWrapper::getName()'],['../class_section_hdr_wrapper.html#a2f952875d80e07fd3c82c54ac475f9f8',1,'SectionHdrWrapper::getName()'],['../class_sect_hdrs_wrapper.html#ade290ef1b090640d6d4a4d85d6068b35',1,'SectHdrsWrapper::getName()'],['../class_security_dir_wrapper.html#aa564e984767bd42bd86eef18f797d7e0',1,'SecurityDirWrapper::getName()'],['../class_tls_dir_wrapper.html#a06bb4192e7775b65a5e6b27e6addbc9b',1,'TlsDirWrapper::getName()'],['../class_tls_entry_wrapper.html#a59aba127abb955d45e97f148c7348a9d',1,'TlsEntryWrapper::getName()'],['../class_delay_imp_dir_wrapper.html#a713aa69505d58db4597dcea66a489c42',1,'DelayImpDirWrapper::getName()'],['../class_bound_entry_wrapper.html#aa892390a3ce98b7496362fd7e923e974',1,'BoundEntryWrapper::getName()'],['../class_bound_imp_dir_wrapper.html#ad52025b7edf8a973f5227e34cb791c73',1,'BoundImpDirWrapper::getName()'],['../class_exe_element_wrapper.html#af2f26b8da4cf2339944f1a4b8473454b',1,'ExeElementWrapper::getName()'],['../class_ld_config_dir_wrapper.html#abaf24a20347142756a03889940b821c1',1,'LdConfigDirWrapper::getName()'],['../class_clr_dir_wrapper.html#a2163898c506c9764f735b9edbef29503',1,'ClrDirWrapper::getName()'],['../class_data_dir_wrapper.html#a6e1ec157ddcb8d95dd9c12d770a0a258',1,'DataDirWrapper::getName()'],['../class_debug_dir_wrapper.html#a3eeb8d7ae50b730d97b6811021194efa',1,'DebugDirWrapper::getName()'],['../class_debug_dir_entry_wrapper.html#a15baeed14a93e32684fb234b6eaac0fd',1,'DebugDirEntryWrapper::getName()'],['../class_debug_dir_c_v_entry_wrapper.html#a06aee1f114f2ed6770bd8112cf837c28',1,'DebugDirCVEntryWrapper::getName()'],['../class_delay_imp_entry_wrapper.html#ae74d7479281a025c5bb1092f007e91f9',1,'DelayImpEntryWrapper::getName()'],['../class_dos_hdr_wrapper.html#aa4f34d8e6c028a511795a55b9793159d',1,'DosHdrWrapper::getName()'],['../class_exception_dir_wrapper.html#a2fec844847e6de758559effaf68bc6e2',1,'ExceptionDirWrapper::getName()'],['../class_exception_entry_wrapper.html#a362b78feca058d44eaed898a6bae0ba7',1,'ExceptionEntryWrapper::getName()'],['../class_export_dir_wrapper.html#a9fa8577d854edb6aa2b7f82a9be60674',1,'ExportDirWrapper::getName()'],['../class_export_entry_wrapper.html#aee3b68953721502e4a13caf7685085a1',1,'ExportEntryWrapper::getName()'],['../class_file_hdr_wrapper.html#aa861617c69e6a23d32c5941883f3aff2',1,'FileHdrWrapper::getName()'],['../class_import_base_func_wrapper.html#a357e6c0400c04809c286c70de8edf5fa',1,'ImportBaseFuncWrapper::getName()'],['../class_import_dir_wrapper.html#a330d007f6b2901aaa02c0cc8dbd24362',1,'ImportDirWrapper::getName()'],['../class_import_entry_wrapper.html#a132724524fcda326d1945ca222874ec4',1,'ImportEntryWrapper::getName()']]], + ['getname_91',['getname',['../class_ld_config_entry_wrapper.html#a06a145b0d40046a889c185c19d71a330',1,'LdConfigEntryWrapper::getName()'],['../class_resource_entry_wrapper.html#ac203b0bbeda8346e0e545828f3155cb1',1,'ResourceEntryWrapper::getName()'],['../class_opt_hdr_wrapper.html#ac56d3e37a993e1e52520d035ca5600de',1,'OptHdrWrapper::getName()'],['../class_reloc_dir_wrapper.html#a3ba80f03708c962d7acb13d9a4399499',1,'RelocDirWrapper::getName()'],['../class_reloc_block_wrapper.html#a951e1f77dcff2a975f14c07b605dd0ef',1,'RelocBlockWrapper::getName()'],['../class_reloc_entry_wrapper.html#aada49dd0ed1c19a5258af6b4b8b6542d',1,'RelocEntryWrapper::getName()'],['../class_resource_dir_wrapper.html#ace06204deed79d41e9e0429e4a931e01',1,'ResourceDirWrapper::getName()'],['../class_resource_leaf_wrapper.html#aceaac960c721bf4404502206de0bcb35',1,'ResourceLeafWrapper::getName()'],['../class_rich_hdr_wrapper.html#a8f7e3ea602e14e4472f7a7c533f01459',1,'RichHdrWrapper::getName()'],['../class_resource_content_wrapper.html#a68511f91f4cb1437e0f77bd761f5b5ca',1,'ResourceContentWrapper::getName()'],['../class_res_string.html#a4b992535d9307f1134b9fb9d4af1364c',1,'ResString::getName()'],['../class_resource_version_wrapper.html#ace0a490f832e9dfeb58d34bc690f3914',1,'ResourceVersionWrapper::getName()'],['../class_section_hdr_wrapper.html#a2f952875d80e07fd3c82c54ac475f9f8',1,'SectionHdrWrapper::getName()'],['../class_sect_hdrs_wrapper.html#ade290ef1b090640d6d4a4d85d6068b35',1,'SectHdrsWrapper::getName()'],['../class_security_dir_wrapper.html#aa564e984767bd42bd86eef18f797d7e0',1,'SecurityDirWrapper::getName()'],['../class_tls_dir_wrapper.html#a06bb4192e7775b65a5e6b27e6addbc9b',1,'TlsDirWrapper::getName()'],['../class_tls_entry_wrapper.html#a59aba127abb955d45e97f148c7348a9d',1,'TlsEntryWrapper::getName()'],['../class_delay_imp_dir_wrapper.html#a713aa69505d58db4597dcea66a489c42',1,'DelayImpDirWrapper::getName()'],['../class_bound_entry_wrapper.html#aa892390a3ce98b7496362fd7e923e974',1,'BoundEntryWrapper::getName()'],['../class_bound_imp_dir_wrapper.html#ad52025b7edf8a973f5227e34cb791c73',1,'BoundImpDirWrapper::getName()'],['../class_exe_element_wrapper.html#af2f26b8da4cf2339944f1a4b8473454b',1,'ExeElementWrapper::getName()'],['../class_ld_config_dir_wrapper.html#abaf24a20347142756a03889940b821c1',1,'LdConfigDirWrapper::getName()'],['../class_clr_dir_wrapper.html#a2163898c506c9764f735b9edbef29503',1,'ClrDirWrapper::getName()'],['../class_data_dir_wrapper.html#a6e1ec157ddcb8d95dd9c12d770a0a258',1,'DataDirWrapper::getName()'],['../class_debug_dir_wrapper.html#a3eeb8d7ae50b730d97b6811021194efa',1,'DebugDirWrapper::getName()'],['../class_debug_dir_entry_wrapper.html#a15baeed14a93e32684fb234b6eaac0fd',1,'DebugDirEntryWrapper::getName()'],['../class_debug_dir_c_v_entry_wrapper.html#a06aee1f114f2ed6770bd8112cf837c28',1,'DebugDirCVEntryWrapper::getName()'],['../class_delay_imp_entry_wrapper.html#ae74d7479281a025c5bb1092f007e91f9',1,'DelayImpEntryWrapper::getName()'],['../class_dos_hdr_wrapper.html#aa4f34d8e6c028a511795a55b9793159d',1,'DosHdrWrapper::getName()'],['../class_exception_dir_wrapper.html#a2fec844847e6de758559effaf68bc6e2',1,'ExceptionDirWrapper::getName()'],['../class_exception_entry_wrapper.html#a362b78feca058d44eaed898a6bae0ba7',1,'ExceptionEntryWrapper::getName()'],['../class_export_dir_wrapper.html#a9fa8577d854edb6aa2b7f82a9be60674',1,'ExportDirWrapper::getName()'],['../class_export_entry_wrapper.html#aee3b68953721502e4a13caf7685085a1',1,'ExportEntryWrapper::getName()'],['../class_file_hdr_wrapper.html#aa861617c69e6a23d32c5941883f3aff2',1,'FileHdrWrapper::getName()'],['../class_import_base_func_wrapper.html#a357e6c0400c04809c286c70de8edf5fa',1,'ImportBaseFuncWrapper::getName()'],['../class_import_dir_wrapper.html#a330d007f6b2901aaa02c0cc8dbd24362',1,'ImportDirWrapper::getName()'],['../class_import_entry_wrapper.html#a132724524fcda326d1945ca222874ec4',1,'ImportEntryWrapper::getName()']]], ['getnameoffset_92',['getNameOffset',['../class_resource_entry_wrapper.html#a8468a92960b9659750ecce08db9e38a3',1,'ResourceEntryWrapper']]], ['getnamestr_93',['getNameStr',['../class_resource_entry_wrapper.html#ad900ca7b457c5a2daf9d6fea936e18e4',1,'ResourceEntryWrapper']]], ['getnb10_94',['getNB10',['../class_debug_dir_entry_wrapper.html#aafad4ef92e4d1e95abc4dd6bd8cbbb10',1,'DebugDirEntryWrapper']]], - ['getnextentryoffset_95',['getNextEntryOffset',['../class_import_entry_wrapper.html#ad18124fd3d07afe983e64f03128fe158',1,'ImportEntryWrapper::getNextEntryOffset()'],['../class_exe_node_wrapper.html#a9c33a8a3dc433b166b86fae38d19297c',1,'ExeNodeWrapper::getNextEntryOffset()']]], - ['getnumvalue_96',['getNumValue',['../class_abstract_byte_buffer.html#a9476fc334d491f3882852b0048a76b77',1,'AbstractByteBuffer::getNumValue()'],['../class_exe_element_wrapper.html#af742979e13e19e532cc42ab72b2a0f80',1,'ExeElementWrapper::getNumValue(size_t fieldId, size_t subField, bool *isOk)'],['../class_exe_element_wrapper.html#aaee384744aad1430d147285207858863',1,'ExeElementWrapper::getNumValue(size_t fieldId, bool *isOk)']]], - ['getoffset_97',['getOffset',['../class_abstract_byte_buffer.html#adb10018e327d14ac29d842aee3ab5465',1,'AbstractByteBuffer::getOffset()'],['../class_exe_element_wrapper.html#a98ca205ec6f2d2deacd32327409a3539',1,'ExeElementWrapper::getOffset()'],['../class_exe_element_wrapper.html#af6fdb98a1dff9810143d6677b99ff4dd',1,'ExeElementWrapper::getOffset(void *ptr, bool allowExceptions=false)']]], - ['getordinal_98',['getOrdinal',['../class_delay_imp_func_wrapper.html#a8653063030b2fc79c04fcce9b6ae158b',1,'DelayImpFuncWrapper::getOrdinal()'],['../class_export_entry_wrapper.html#a558525a232d44deaf5f9e1f68e8c18f4',1,'ExportEntryWrapper::getOrdinal()'],['../class_import_base_func_wrapper.html#a695260b969ca9ead18a3e2330792adad',1,'ImportBaseFuncWrapper::getOrdinal()'],['../class_imported_func_wrapper.html#a020e5ba636f893c0e7321cfba0eaa28a',1,'ImportedFuncWrapper::getOrdinal()']]], - ['getparentnode_99',['getParentNode',['../class_exe_node_wrapper.html#afb0d9f2d943f92479dc0019390af1267',1,'ExeNodeWrapper::getParentNode()'],['../class_p_e_node_wrapper.html#a9895adb75c8a282060182f7b698bb454',1,'PENodeWrapper::getParentNode()']]], - ['getpe_100',['getPE',['../class_p_e_element_wrapper.html#a4257b4eb2b17dd9327a507915455734e',1,'PEElementWrapper::getPE()'],['../class_p_e_node_wrapper.html#a9b3555d3943fbebea15a7728fcb11940',1,'PENodeWrapper::getPE()']]], - ['getptr_101',['getPtr',['../class_ld_config_entry_wrapper.html#ae2cbfa769022913487663e3e26eff63d',1,'LdConfigEntryWrapper::getPtr()'],['../class_bound_imp_dir_wrapper.html#a65e312217177270bafac2e129f23a630',1,'BoundImpDirWrapper::getPtr()'],['../class_opt_hdr_wrapper.html#aac3a30285ab7098e9f7943ce729a9b29',1,'OptHdrWrapper::getPtr()'],['../class_reloc_dir_wrapper.html#a960575612520fea5824d77db4e63933e',1,'RelocDirWrapper::getPtr()'],['../class_reloc_block_wrapper.html#a7cf5e516f7dda68e22626a9334e9c640',1,'RelocBlockWrapper::getPtr()'],['../class_reloc_entry_wrapper.html#a5ece67054510e60deff27a425daafa1a',1,'RelocEntryWrapper::getPtr()'],['../class_resource_dir_wrapper.html#aadb74fc45784fe5b1c97982d35b02030',1,'ResourceDirWrapper::getPtr()'],['../class_resource_entry_wrapper.html#ae59ad46f5d76aad395b297e6ff41d26a',1,'ResourceEntryWrapper::getPtr()'],['../class_resource_leaf_wrapper.html#a4232ec5617f0d7f30212edeaf4bda11f',1,'ResourceLeafWrapper::getPtr()'],['../class_rich_hdr_wrapper.html#a160ffca118cb6f961bcf92d5ba957142',1,'RichHdrWrapper::getPtr()'],['../class_resource_content_wrapper.html#a1116597104df986ee72358a2e776603a',1,'ResourceContentWrapper::getPtr()'],['../class_res_string.html#a4624f6372ce92984d92b11735dd5a9dc',1,'ResString::getPtr()'],['../class_resource_version_wrapper.html#a867bf3096440ab652d8db4c451b4cd44',1,'ResourceVersionWrapper::getPtr()'],['../class_section_hdr_wrapper.html#aa2a809639093ab771f885dbf0a1f3b3b',1,'SectionHdrWrapper::getPtr()'],['../class_sect_hdrs_wrapper.html#a85d01e58641fa6d7249379e131f1bba9',1,'SectHdrsWrapper::getPtr()'],['../class_security_dir_wrapper.html#a14baf24550ce4000076c6864baa8cd6b',1,'SecurityDirWrapper::getPtr()'],['../class_tls_dir_wrapper.html#a8d736a2c745811951dd7dcc41fc0ff3d',1,'TlsDirWrapper::getPtr()'],['../class_tls_entry_wrapper.html#a7d71e1b9dca112bd059909f2ece5286f',1,'TlsEntryWrapper::getPtr()'],['../class_delay_imp_entry_wrapper.html#a5cb33569a5f44b551d507ea95ac09362',1,'DelayImpEntryWrapper::getPtr()'],['../class_clr_dir_wrapper.html#ab986f9aee9dba5c9df46c884c5aefe52',1,'ClrDirWrapper::getPtr()'],['../class_bound_entry_wrapper.html#af8db0d9c611a42d3c7199329aebd5e86',1,'BoundEntryWrapper::getPtr()'],['../class_exe_element_wrapper.html#a227c20e3780b42bc18822e992bf4d116',1,'ExeElementWrapper::getPtr()'],['../class_ld_config_dir_wrapper.html#a816726cce7621d16d9f523312937e887',1,'LdConfigDirWrapper::getPtr()'],['../class_data_dir_wrapper.html#a7f9f1631dc5b8bcc729b81b88579deb0',1,'DataDirWrapper::getPtr()'],['../class_debug_dir_wrapper.html#a33ba43d13e79286f634c26b8e8ddd368',1,'DebugDirWrapper::getPtr()'],['../class_debug_dir_entry_wrapper.html#a690e686ab98a6abecd2f2dab93a3d2ba',1,'DebugDirEntryWrapper::getPtr()'],['../class_debug_dir_c_v_entry_wrapper.html#a6c4004d00107f67243c6ca3684896e10',1,'DebugDirCVEntryWrapper::getPtr()'],['../class_delay_imp_dir_wrapper.html#adbcd845740f2cc234fbd08bae646cbc7',1,'DelayImpDirWrapper::getPtr()'],['../class_delay_imp_func_wrapper.html#aaaf9cfcb23b977daeaa89a7beae4d754',1,'DelayImpFuncWrapper::getPtr()'],['../class_dos_hdr_wrapper.html#aef711b7fca38e8a825293cd5c050a426',1,'DosHdrWrapper::getPtr()'],['../class_exception_dir_wrapper.html#a5e60015a98ab487a148d830c59214138',1,'ExceptionDirWrapper::getPtr()'],['../class_exception_entry_wrapper.html#a1ecd385f9c3e17306844d5a32be36461',1,'ExceptionEntryWrapper::getPtr()'],['../class_export_dir_wrapper.html#a5197b30c47adc876afd744c0c70a9194',1,'ExportDirWrapper::getPtr()'],['../class_export_entry_wrapper.html#a874455099e3e1eda96d9fe4c2ae45ef9',1,'ExportEntryWrapper::getPtr()'],['../class_file_hdr_wrapper.html#a419d36c47f3b52cb32523cb23adc6bea',1,'FileHdrWrapper::getPtr()'],['../class_import_dir_wrapper.html#a227f2de941acbc47703f0e216e1a01c1',1,'ImportDirWrapper::getPtr()'],['../class_import_entry_wrapper.html#a62c962b8758ac8db68510abe5471a562',1,'ImportEntryWrapper::getPtr()'],['../class_imported_func_wrapper.html#a71f344dd0d7ea17343b367c3900f9436',1,'ImportedFuncWrapper::getPtr()']]], + ['getnextentryoffset_95',['getnextentryoffset',['../class_import_entry_wrapper.html#ad18124fd3d07afe983e64f03128fe158',1,'ImportEntryWrapper::getNextEntryOffset()'],['../class_exe_node_wrapper.html#a9c33a8a3dc433b166b86fae38d19297c',1,'ExeNodeWrapper::getNextEntryOffset()']]], + ['getnumvalue_96',['getnumvalue',['../class_abstract_byte_buffer.html#a9476fc334d491f3882852b0048a76b77',1,'AbstractByteBuffer::getNumValue()'],['../class_exe_element_wrapper.html#af742979e13e19e532cc42ab72b2a0f80',1,'ExeElementWrapper::getNumValue(size_t fieldId, size_t subField, bool *isOk)'],['../class_exe_element_wrapper.html#aaee384744aad1430d147285207858863',1,'ExeElementWrapper::getNumValue(size_t fieldId, bool *isOk)']]], + ['getoffset_97',['getoffset',['../class_abstract_byte_buffer.html#adb10018e327d14ac29d842aee3ab5465',1,'AbstractByteBuffer::getOffset()'],['../class_exe_element_wrapper.html#a98ca205ec6f2d2deacd32327409a3539',1,'ExeElementWrapper::getOffset()'],['../class_exe_element_wrapper.html#af6fdb98a1dff9810143d6677b99ff4dd',1,'ExeElementWrapper::getOffset(void *ptr, bool allowExceptions=false)']]], + ['getordinal_98',['getordinal',['../class_delay_imp_func_wrapper.html#a8653063030b2fc79c04fcce9b6ae158b',1,'DelayImpFuncWrapper::getOrdinal()'],['../class_export_entry_wrapper.html#a558525a232d44deaf5f9e1f68e8c18f4',1,'ExportEntryWrapper::getOrdinal()'],['../class_import_base_func_wrapper.html#a695260b969ca9ead18a3e2330792adad',1,'ImportBaseFuncWrapper::getOrdinal()'],['../class_imported_func_wrapper.html#a020e5ba636f893c0e7321cfba0eaa28a',1,'ImportedFuncWrapper::getOrdinal()']]], + ['getparentnode_99',['getparentnode',['../class_exe_node_wrapper.html#afb0d9f2d943f92479dc0019390af1267',1,'ExeNodeWrapper::getParentNode()'],['../class_p_e_node_wrapper.html#a9895adb75c8a282060182f7b698bb454',1,'PENodeWrapper::getParentNode()']]], + ['getpe_100',['getpe',['../class_p_e_element_wrapper.html#a4257b4eb2b17dd9327a507915455734e',1,'PEElementWrapper::getPE()'],['../class_p_e_node_wrapper.html#a9b3555d3943fbebea15a7728fcb11940',1,'PENodeWrapper::getPE()']]], + ['getptr_101',['getptr',['../class_ld_config_entry_wrapper.html#ae2cbfa769022913487663e3e26eff63d',1,'LdConfigEntryWrapper::getPtr()'],['../class_bound_imp_dir_wrapper.html#a65e312217177270bafac2e129f23a630',1,'BoundImpDirWrapper::getPtr()'],['../class_opt_hdr_wrapper.html#aac3a30285ab7098e9f7943ce729a9b29',1,'OptHdrWrapper::getPtr()'],['../class_reloc_dir_wrapper.html#a960575612520fea5824d77db4e63933e',1,'RelocDirWrapper::getPtr()'],['../class_reloc_block_wrapper.html#a7cf5e516f7dda68e22626a9334e9c640',1,'RelocBlockWrapper::getPtr()'],['../class_reloc_entry_wrapper.html#a5ece67054510e60deff27a425daafa1a',1,'RelocEntryWrapper::getPtr()'],['../class_resource_dir_wrapper.html#aadb74fc45784fe5b1c97982d35b02030',1,'ResourceDirWrapper::getPtr()'],['../class_resource_entry_wrapper.html#ae59ad46f5d76aad395b297e6ff41d26a',1,'ResourceEntryWrapper::getPtr()'],['../class_resource_leaf_wrapper.html#a4232ec5617f0d7f30212edeaf4bda11f',1,'ResourceLeafWrapper::getPtr()'],['../class_rich_hdr_wrapper.html#a160ffca118cb6f961bcf92d5ba957142',1,'RichHdrWrapper::getPtr()'],['../class_resource_content_wrapper.html#a1116597104df986ee72358a2e776603a',1,'ResourceContentWrapper::getPtr()'],['../class_res_string.html#a4624f6372ce92984d92b11735dd5a9dc',1,'ResString::getPtr()'],['../class_resource_version_wrapper.html#a867bf3096440ab652d8db4c451b4cd44',1,'ResourceVersionWrapper::getPtr()'],['../class_section_hdr_wrapper.html#aa2a809639093ab771f885dbf0a1f3b3b',1,'SectionHdrWrapper::getPtr()'],['../class_sect_hdrs_wrapper.html#a85d01e58641fa6d7249379e131f1bba9',1,'SectHdrsWrapper::getPtr()'],['../class_security_dir_wrapper.html#a14baf24550ce4000076c6864baa8cd6b',1,'SecurityDirWrapper::getPtr()'],['../class_tls_dir_wrapper.html#a8d736a2c745811951dd7dcc41fc0ff3d',1,'TlsDirWrapper::getPtr()'],['../class_tls_entry_wrapper.html#a7d71e1b9dca112bd059909f2ece5286f',1,'TlsEntryWrapper::getPtr()'],['../class_delay_imp_entry_wrapper.html#a5cb33569a5f44b551d507ea95ac09362',1,'DelayImpEntryWrapper::getPtr()'],['../class_clr_dir_wrapper.html#ab986f9aee9dba5c9df46c884c5aefe52',1,'ClrDirWrapper::getPtr()'],['../class_bound_entry_wrapper.html#af8db0d9c611a42d3c7199329aebd5e86',1,'BoundEntryWrapper::getPtr()'],['../class_exe_element_wrapper.html#a227c20e3780b42bc18822e992bf4d116',1,'ExeElementWrapper::getPtr()'],['../class_ld_config_dir_wrapper.html#a816726cce7621d16d9f523312937e887',1,'LdConfigDirWrapper::getPtr()'],['../class_data_dir_wrapper.html#a7f9f1631dc5b8bcc729b81b88579deb0',1,'DataDirWrapper::getPtr()'],['../class_debug_dir_wrapper.html#a33ba43d13e79286f634c26b8e8ddd368',1,'DebugDirWrapper::getPtr()'],['../class_debug_dir_entry_wrapper.html#a690e686ab98a6abecd2f2dab93a3d2ba',1,'DebugDirEntryWrapper::getPtr()'],['../class_debug_dir_c_v_entry_wrapper.html#a6c4004d00107f67243c6ca3684896e10',1,'DebugDirCVEntryWrapper::getPtr()'],['../class_delay_imp_dir_wrapper.html#adbcd845740f2cc234fbd08bae646cbc7',1,'DelayImpDirWrapper::getPtr()'],['../class_delay_imp_func_wrapper.html#aaaf9cfcb23b977daeaa89a7beae4d754',1,'DelayImpFuncWrapper::getPtr()'],['../class_dos_hdr_wrapper.html#aef711b7fca38e8a825293cd5c050a426',1,'DosHdrWrapper::getPtr()'],['../class_exception_dir_wrapper.html#a5e60015a98ab487a148d830c59214138',1,'ExceptionDirWrapper::getPtr()'],['../class_exception_entry_wrapper.html#a1ecd385f9c3e17306844d5a32be36461',1,'ExceptionEntryWrapper::getPtr()'],['../class_export_dir_wrapper.html#a5197b30c47adc876afd744c0c70a9194',1,'ExportDirWrapper::getPtr()'],['../class_export_entry_wrapper.html#a874455099e3e1eda96d9fe4c2ae45ef9',1,'ExportEntryWrapper::getPtr()'],['../class_file_hdr_wrapper.html#a419d36c47f3b52cb32523cb23adc6bea',1,'FileHdrWrapper::getPtr()'],['../class_import_dir_wrapper.html#a227f2de941acbc47703f0e216e1a01c1',1,'ImportDirWrapper::getPtr()'],['../class_import_entry_wrapper.html#a62c962b8758ac8db68510abe5471a562',1,'ImportEntryWrapper::getPtr()'],['../class_imported_func_wrapper.html#a71f344dd0d7ea17343b367c3900f9436',1,'ImportedFuncWrapper::getPtr()']]], ['getqstring_102',['getQString',['../class_res_string.html#a47a3d4c86e4414a0b9d130742483e880',1,'ResString']]], ['getqstringat_103',['getQStringAt',['../class_resource_strings_wrapper.html#a80975257edafbaafe7bb4fe6222f9328',1,'ResourceStringsWrapper']]], ['getqvariant_104',['getQVariant',['../class_wrapped_value.html#a1cc412d80d223da04d316ce2479d65c3',1,'WrappedValue']]], ['getrawptr_105',['getRawPtr',['../class_section_hdr_wrapper.html#a0a93f3f5033df8cd74d4a2c40a1a7242',1,'SectionHdrWrapper']]], - ['getrawsize_106',['getRawSize',['../class_p_e_core.html#ab940b6be8bd99e69314e88dd646fa1fc',1,'PECore::getRawSize()'],['../class_executable.html#a862ee23abe249ba557c740f2d2c246c5',1,'Executable::getRawSize()']]], + ['getrawsize_106',['getrawsize',['../class_p_e_core.html#ab940b6be8bd99e69314e88dd646fa1fc',1,'PECore::getRawSize()'],['../class_executable.html#a862ee23abe249ba557c740f2d2c246c5',1,'Executable::getRawSize()']]], ['getrdsi_107',['getRDSI',['../class_debug_dir_entry_wrapper.html#a01fdf595230f756446126b69b3731cf7',1,'DebugDirEntryWrapper']]], - ['getreadablesize_108',['getReadableSize',['../class_abstract_file_buffer.html#a092c21c5227ed38657db948df12a2bb3',1,'AbstractFileBuffer::getReadableSize(QFile &fIn)'],['../class_abstract_file_buffer.html#aa543f39d681c82fd49e3384370a90891',1,'AbstractFileBuffer::getReadableSize(const QString &path)']]], + ['getreadablesize_108',['getreadablesize',['../class_abstract_file_buffer.html#a092c21c5227ed38657db948df12a2bb3',1,'AbstractFileBuffer::getReadableSize(QFile &fIn)'],['../class_abstract_file_buffer.html#aa543f39d681c82fd49e3384370a90891',1,'AbstractFileBuffer::getReadableSize(const QString &path)']]], ['getrequestedsize_109',['getRequestedSize',['../class_buffer_view.html#a50e432bab07009ab4dab86be4ad802c2',1,'BufferView']]], ['getrescontentptr_110',['getResContentPtr',['../class_resource_content_wrapper.html#a8ac99cadf3741f1befe2e002a3107591',1,'ResourceContentWrapper']]], ['getrescontentsize_111',['getResContentSize',['../class_resource_content_wrapper.html#ae7340c05c2299bc068bc6adbf2d4ac58',1,'ResourceContentWrapper']]], ['getresourcesalbum_112',['getResourcesAlbum',['../class_p_e_file.html#a88f7edff5ac1a855cbd484d53dc36514',1,'PEFile']]], - ['getresourcesoftype_113',['getResourcesOfType',['../class_p_e_file.html#af21f402b68bd0d93e707dae1639c93b2',1,'PEFile::getResourcesOfType()'],['../class_resources_album.html#a9ae278c9a0803730a231bdf3c50ef0c7',1,'ResourcesAlbum::getResourcesOfType(pe::resource_type typeId)']]], + ['getresourcesoftype_113',['getresourcesoftype',['../class_p_e_file.html#af21f402b68bd0d93e707dae1639c93b2',1,'PEFile::getResourcesOfType()'],['../class_resources_album.html#a9ae278c9a0803730a231bdf3c50ef0c7',1,'ResourcesAlbum::getResourcesOfType(pe::resource_type typeId)']]], ['getresourcetypes_114',['getResourceTypes',['../class_resources_album.html#add2d891afc0c5f5edd5813275177baa9',1,'ResourcesAlbum']]], ['getresstringat_115',['getResStringAt',['../class_resource_strings_wrapper.html#a4fdbb9fa59d466cff128c351a469cb2a',1,'ResourceStringsWrapper']]], ['getresstringscount_116',['getResStringsCount',['../class_resource_strings_wrapper.html#a8f65e58ff8acc285ac80a89e2ab7aa27',1,'ResourceStringsWrapper']]], ['getrichheaderbgn_117',['getRichHeaderBgn',['../class_p_e_file.html#a5efa2fcf1a0e940084ccf8f3365ebc57',1,'PEFile']]], ['getrichheadersign_118',['getRichHeaderSign',['../class_p_e_file.html#adb187c47cea5a6cfa260528b7cf577ce',1,'PEFile']]], ['getseccontent_119',['getSecContent',['../class_p_e_file.html#ad95f4268d68eaa76dfb959cbbff288a1',1,'PEFile']]], - ['getsechdr_120',['getSecHdr',['../class_p_e_file.html#a2012133a6cc8c59e45fc13c6f64cd17b',1,'PEFile::getSecHdr()'],['../class_sect_hdrs_wrapper.html#a7e66af846c528e016eded091cdd11440',1,'SectHdrsWrapper::getSecHdr()']]], + ['getsechdr_120',['getsechdr',['../class_p_e_file.html#a2012133a6cc8c59e45fc13c6f64cd17b',1,'PEFile::getSecHdr()'],['../class_sect_hdrs_wrapper.html#a7e66af846c528e016eded091cdd11440',1,'SectHdrsWrapper::getSecHdr()']]], ['getsechdraccessrightsdesc_121',['getSecHdrAccessRightsDesc',['../class_section_hdr_wrapper.html#aa121df9771be2192eb93e7ad8608d5e1',1,'SectionHdrWrapper']]], - ['getsechdratoffset_122',['getSecHdrAtOffset',['../class_sect_hdrs_wrapper.html#a67602090ef783553cfaee18f2eac6bdb',1,'SectHdrsWrapper::getSecHdrAtOffset()'],['../class_p_e_file.html#af64de3331e1daeced2bfdb63ccc078d2',1,'PEFile::getSecHdrAtOffset(offset_t offset, Executable::addr_type aType, bool recalculate=false, bool verbose=false)']]], - ['getsecindex_123',['getSecIndex',['../class_p_e_file.html#a0171126c532ff02a9334adccf7679aff',1,'PEFile::getSecIndex()'],['../class_sect_hdrs_wrapper.html#aac8e2b65a8afeeb5f8d5eca5be7c53e3',1,'SectHdrsWrapper::getSecIndex()']]], + ['getsechdratoffset_122',['getsechdratoffset',['../class_sect_hdrs_wrapper.html#a67602090ef783553cfaee18f2eac6bdb',1,'SectHdrsWrapper::getSecHdrAtOffset()'],['../class_p_e_file.html#af64de3331e1daeced2bfdb63ccc078d2',1,'PEFile::getSecHdrAtOffset(offset_t offset, Executable::addr_type aType, bool recalculate=false, bool verbose=false)']]], + ['getsecindex_123',['getsecindex',['../class_p_e_file.html#a0171126c532ff02a9334adccf7679aff',1,'PEFile::getSecIndex()'],['../class_sect_hdrs_wrapper.html#aac8e2b65a8afeeb5f8d5eca5be7c53e3',1,'SectHdrsWrapper::getSecIndex()']]], ['getsectionalignment_124',['getSectionAlignment',['../class_p_e_file.html#a16b7b02f79011e788be2ec3ac247d295',1,'PEFile']]], ['getsectionscount_125',['getSectionsCount',['../class_p_e_file.html#a56dab242cb070abf1c001b500319d12e',1,'PEFile']]], ['getshortname_126',['getShortName',['../class_import_base_func_wrapper.html#aba342064b7e19eb82b7145a9e9a150ab',1,'ImportBaseFuncWrapper']]], ['getsignature_127',['getSignature',['../class_debug_dir_c_v_entry_wrapper.html#a19c25cbb168fea89a98c210f084a01db',1,'DebugDirCVEntryWrapper']]], - ['getsize_128',['getSize',['../class_import_entry_wrapper.html#aefc8316cdb0c32b4becdee6ca6a9d841',1,'ImportEntryWrapper::getSize()'],['../class_opt_hdr_wrapper.html#ac142ee0efd040b9b61179b503ff86a1c',1,'OptHdrWrapper::getSize()'],['../class_ld_config_entry_wrapper.html#a8edff8f9ddc847f0f3c20baa1779759f',1,'LdConfigEntryWrapper::getSize()'],['../class_reloc_dir_wrapper.html#a79e4c2e5995dd6d77545b97fbc1d6ab2',1,'RelocDirWrapper::getSize()'],['../class_reloc_block_wrapper.html#a9f2dec79e5395fe1713f0d4ac42f8565',1,'RelocBlockWrapper::getSize()'],['../class_reloc_entry_wrapper.html#a76aebcab81dccfc6e3e77b598cd3c933',1,'RelocEntryWrapper::getSize()'],['../class_resource_dir_wrapper.html#a1bfb92c6802ac45f59f78158d1374088',1,'ResourceDirWrapper::getSize()'],['../class_resource_entry_wrapper.html#afeb5f36e9520af160fef22ede806e0a4',1,'ResourceEntryWrapper::getSize()'],['../class_resource_leaf_wrapper.html#aa01b840c9649ffe293b187456316431c',1,'ResourceLeafWrapper::getSize()'],['../class_rich_hdr_wrapper.html#a7795602908abdba362679d43d5d0bbbf',1,'RichHdrWrapper::getSize()'],['../class_resource_content_wrapper.html#ac57c5ad1d68b7d4548609850e46b8c4e',1,'ResourceContentWrapper::getSize()'],['../class_res_string.html#a2356c1571d10ec2fba8862b08ee90e6c',1,'ResString::getSize()'],['../class_resource_version_wrapper.html#aa5079a4da58b6d6782879813d0f7bd77',1,'ResourceVersionWrapper::getSize()'],['../class_section_hdr_wrapper.html#af075f6840ed42bcd0810931916d85dd6',1,'SectionHdrWrapper::getSize()'],['../class_sect_hdrs_wrapper.html#a4d6b44795635eae887a570304b838e11',1,'SectHdrsWrapper::getSize()'],['../class_security_dir_wrapper.html#a7ec99d72034e8cf202412b202ad3ddbf',1,'SecurityDirWrapper::getSize()'],['../class_tls_dir_wrapper.html#a54ce071432a00cec76b73b0fc8ed2f9a',1,'TlsDirWrapper::getSize()'],['../class_tls_entry_wrapper.html#a5d51106dc963b4f22a1905b8cac28c70',1,'TlsEntryWrapper::getSize()'],['../class_imported_func_wrapper.html#a7c3f3b80a547a003d8ce67d5fb96e263',1,'ImportedFuncWrapper::getSize()'],['../class_exe_element_wrapper.html#a087ecf5a983c1ef1e8de95b16c487616',1,'ExeElementWrapper::getSize()'],['../class_bound_imp_dir_wrapper.html#ab7c6601b276e6b7722a7afef2b84ef9f',1,'BoundImpDirWrapper::getSize()'],['../class_bound_entry_wrapper.html#a8ba933bb8560f2a39113a2a0c78d6846',1,'BoundEntryWrapper::getSize()'],['../class_clr_dir_wrapper.html#a9047526e6b605e819d295ae19beeb23e',1,'ClrDirWrapper::getSize()'],['../class_data_dir_wrapper.html#abcc6d86660e1c32921c9799969a5c998',1,'DataDirWrapper::getSize()'],['../class_debug_dir_wrapper.html#aa569b5e9cb43f99cba1753516776b82e',1,'DebugDirWrapper::getSize()'],['../class_debug_dir_entry_wrapper.html#a7cf23611fe5700f83016e5f29a40367b',1,'DebugDirEntryWrapper::getSize()'],['../class_debug_dir_c_v_entry_wrapper.html#ac677a56d653468d728ff06f27770f7ad',1,'DebugDirCVEntryWrapper::getSize()'],['../class_delay_imp_dir_wrapper.html#aa430d309e6f9fc7c6eba0727305e1b6a',1,'DelayImpDirWrapper::getSize()'],['../class_delay_imp_entry_wrapper.html#a9b2dd20f330a44d5e22c9ef3beed5bd3',1,'DelayImpEntryWrapper::getSize()'],['../class_delay_imp_func_wrapper.html#ae37fd51b9bb3448882dda77f3919182f',1,'DelayImpFuncWrapper::getSize()'],['../class_dos_hdr_wrapper.html#ab8037f5e806b95b0d099dd64979b8bce',1,'DosHdrWrapper::getSize()'],['../class_exception_dir_wrapper.html#a63ffd78fb80906e819be8911c0af1454',1,'ExceptionDirWrapper::getSize()'],['../class_exception_entry_wrapper.html#af1c5b4de8a2edef746e369f509187b8a',1,'ExceptionEntryWrapper::getSize()'],['../class_export_dir_wrapper.html#abfede16e5d2f1a2d7ebd19bd241e039b',1,'ExportDirWrapper::getSize()'],['../class_export_entry_wrapper.html#aa451e74aa9ea5ea059df9738b3f133c7',1,'ExportEntryWrapper::getSize()'],['../class_file_hdr_wrapper.html#a412e69b2c560d19af64395c5180b3892',1,'FileHdrWrapper::getSize()'],['../class_import_dir_wrapper.html#a355bb222a641427541431508bb5f33de',1,'ImportDirWrapper::getSize()'],['../class_ld_config_dir_wrapper.html#a1bbe5e6db01da6cbb3a66f562a40a261',1,'LdConfigDirWrapper::getSize()']]], + ['getsize_128',['getsize',['../class_import_entry_wrapper.html#aefc8316cdb0c32b4becdee6ca6a9d841',1,'ImportEntryWrapper::getSize()'],['../class_opt_hdr_wrapper.html#ac142ee0efd040b9b61179b503ff86a1c',1,'OptHdrWrapper::getSize()'],['../class_ld_config_entry_wrapper.html#a8edff8f9ddc847f0f3c20baa1779759f',1,'LdConfigEntryWrapper::getSize()'],['../class_reloc_dir_wrapper.html#a79e4c2e5995dd6d77545b97fbc1d6ab2',1,'RelocDirWrapper::getSize()'],['../class_reloc_block_wrapper.html#a9f2dec79e5395fe1713f0d4ac42f8565',1,'RelocBlockWrapper::getSize()'],['../class_reloc_entry_wrapper.html#a76aebcab81dccfc6e3e77b598cd3c933',1,'RelocEntryWrapper::getSize()'],['../class_resource_dir_wrapper.html#a1bfb92c6802ac45f59f78158d1374088',1,'ResourceDirWrapper::getSize()'],['../class_resource_entry_wrapper.html#afeb5f36e9520af160fef22ede806e0a4',1,'ResourceEntryWrapper::getSize()'],['../class_resource_leaf_wrapper.html#aa01b840c9649ffe293b187456316431c',1,'ResourceLeafWrapper::getSize()'],['../class_rich_hdr_wrapper.html#a7795602908abdba362679d43d5d0bbbf',1,'RichHdrWrapper::getSize()'],['../class_resource_content_wrapper.html#ac57c5ad1d68b7d4548609850e46b8c4e',1,'ResourceContentWrapper::getSize()'],['../class_res_string.html#a2356c1571d10ec2fba8862b08ee90e6c',1,'ResString::getSize()'],['../class_resource_version_wrapper.html#aa5079a4da58b6d6782879813d0f7bd77',1,'ResourceVersionWrapper::getSize()'],['../class_section_hdr_wrapper.html#af075f6840ed42bcd0810931916d85dd6',1,'SectionHdrWrapper::getSize()'],['../class_sect_hdrs_wrapper.html#a4d6b44795635eae887a570304b838e11',1,'SectHdrsWrapper::getSize()'],['../class_security_dir_wrapper.html#a7ec99d72034e8cf202412b202ad3ddbf',1,'SecurityDirWrapper::getSize()'],['../class_tls_dir_wrapper.html#a54ce071432a00cec76b73b0fc8ed2f9a',1,'TlsDirWrapper::getSize()'],['../class_tls_entry_wrapper.html#a5d51106dc963b4f22a1905b8cac28c70',1,'TlsEntryWrapper::getSize()'],['../class_imported_func_wrapper.html#a7c3f3b80a547a003d8ce67d5fb96e263',1,'ImportedFuncWrapper::getSize()'],['../class_exe_element_wrapper.html#a087ecf5a983c1ef1e8de95b16c487616',1,'ExeElementWrapper::getSize()'],['../class_bound_imp_dir_wrapper.html#ab7c6601b276e6b7722a7afef2b84ef9f',1,'BoundImpDirWrapper::getSize()'],['../class_bound_entry_wrapper.html#a8ba933bb8560f2a39113a2a0c78d6846',1,'BoundEntryWrapper::getSize()'],['../class_clr_dir_wrapper.html#a9047526e6b605e819d295ae19beeb23e',1,'ClrDirWrapper::getSize()'],['../class_data_dir_wrapper.html#abcc6d86660e1c32921c9799969a5c998',1,'DataDirWrapper::getSize()'],['../class_debug_dir_wrapper.html#aa569b5e9cb43f99cba1753516776b82e',1,'DebugDirWrapper::getSize()'],['../class_debug_dir_entry_wrapper.html#a7cf23611fe5700f83016e5f29a40367b',1,'DebugDirEntryWrapper::getSize()'],['../class_debug_dir_c_v_entry_wrapper.html#ac677a56d653468d728ff06f27770f7ad',1,'DebugDirCVEntryWrapper::getSize()'],['../class_delay_imp_dir_wrapper.html#aa430d309e6f9fc7c6eba0727305e1b6a',1,'DelayImpDirWrapper::getSize()'],['../class_delay_imp_entry_wrapper.html#a9b2dd20f330a44d5e22c9ef3beed5bd3',1,'DelayImpEntryWrapper::getSize()'],['../class_delay_imp_func_wrapper.html#ae37fd51b9bb3448882dda77f3919182f',1,'DelayImpFuncWrapper::getSize()'],['../class_dos_hdr_wrapper.html#ab8037f5e806b95b0d099dd64979b8bce',1,'DosHdrWrapper::getSize()'],['../class_exception_dir_wrapper.html#a63ffd78fb80906e819be8911c0af1454',1,'ExceptionDirWrapper::getSize()'],['../class_exception_entry_wrapper.html#af1c5b4de8a2edef746e369f509187b8a',1,'ExceptionEntryWrapper::getSize()'],['../class_export_dir_wrapper.html#abfede16e5d2f1a2d7ebd19bd241e039b',1,'ExportDirWrapper::getSize()'],['../class_export_entry_wrapper.html#aa451e74aa9ea5ea059df9738b3f133c7',1,'ExportEntryWrapper::getSize()'],['../class_file_hdr_wrapper.html#a412e69b2c560d19af64395c5180b3892',1,'FileHdrWrapper::getSize()'],['../class_import_dir_wrapper.html#a355bb222a641427541431508bb5f33de',1,'ImportDirWrapper::getSize()'],['../class_ld_config_dir_wrapper.html#a1bbe5e6db01da6cbb3a66f562a40a261',1,'LdConfigDirWrapper::getSize()']]], ['getstringvalue_129',['getStringValue',['../class_abstract_byte_buffer.html#a265e3794703e57d0208feb007c6f79ec',1,'AbstractByteBuffer']]], ['getstrlen_130',['getStrLen',['../class_res_string.html#a90a16317582e7b4581598bf2723c028e',1,'ResString']]], ['getstructfieldoffset_131',['getStructFieldOffset',['../_ld_config_dir_wrapper_8cpp.html#a6552f02965b6829fa4d69d35cb1e2b61',1,'LdConfigDirWrapper.cpp']]], ['getsubfieldname_132',['getSubfieldName',['../class_exe_node_wrapper.html#a3d01a79fd85ba49847452b30e818c03e',1,'ExeNodeWrapper']]], ['getsubfieldptr_133',['getSubfieldPtr',['../class_exe_node_wrapper.html#a1d7490ea5cf0f177357727df53c9a08a',1,'ExeNodeWrapper']]], - ['getsubfieldscount_134',['getSubFieldsCount',['../class_clr_dir_wrapper.html#a56c3b314c3ae7d61a5c8a867618f71e4',1,'ClrDirWrapper::getSubFieldsCount()'],['../class_exe_element_wrapper.html#a67ce2e7ed7ae73a57c6a711ff767d40a',1,'ExeElementWrapper::getSubFieldsCount()'],['../class_exe_node_wrapper.html#ab83dd78bccf0c4693a7483c3484b2e39',1,'ExeNodeWrapper::getSubFieldsCount()'],['../class_tls_entry_wrapper.html#aefb6d97a24334345b45d5e338652b903',1,'TlsEntryWrapper::getSubFieldsCount()'],['../class_tls_dir_wrapper.html#a9bd7a858bdb2f9afb0a21e6bfde78ef6',1,'TlsDirWrapper::getSubFieldsCount()'],['../class_security_dir_wrapper.html#ae7a22de1126d6be649ff67c63535780c',1,'SecurityDirWrapper::getSubFieldsCount()'],['../class_section_hdr_wrapper.html#a8962a201409806d70dda661ab2fd3b60',1,'SectionHdrWrapper::getSubFieldsCount()'],['../class_resource_version_wrapper.html#a7ac78608b5a4f5d804f091165e3e1aa3',1,'ResourceVersionWrapper::getSubFieldsCount()'],['../class_res_string.html#aae288ca9e7186e1cb0b710fcee22e043',1,'ResString::getSubFieldsCount()'],['../class_resource_content_wrapper.html#ac1352678307202294711ab666e8a2919',1,'ResourceContentWrapper::getSubFieldsCount()'],['../class_resource_entry_wrapper.html#ae88a0aa349c34ecaaf619d935ffb4e52',1,'ResourceEntryWrapper::getSubFieldsCount()'],['../class_reloc_entry_wrapper.html#a084278764ad73a02055d96f82fdff421',1,'RelocEntryWrapper::getSubFieldsCount()'],['../class_bound_entry_wrapper.html#a519584ce713d00807885db5b0b934e4c',1,'BoundEntryWrapper::getSubFieldsCount()'],['../class_data_dir_wrapper.html#a85d681072a24dddb347985177f2abf6f',1,'DataDirWrapper::getSubFieldsCount()'],['../class_debug_dir_entry_wrapper.html#a59a493ba7e6c5b174e725244885705e4',1,'DebugDirEntryWrapper::getSubFieldsCount()'],['../class_debug_dir_c_v_entry_wrapper.html#af2b50cbbe1aa69fe5bb761f2ced35ac4',1,'DebugDirCVEntryWrapper::getSubFieldsCount()'],['../class_delay_imp_func_wrapper.html#a98df01573081653b6a8cd01907279a73',1,'DelayImpFuncWrapper::getSubFieldsCount()'],['../class_exception_entry_wrapper.html#aa59cce7ebb50277f06d1634482218e99',1,'ExceptionEntryWrapper::getSubFieldsCount()'],['../class_export_entry_wrapper.html#a32ee9d479af0d4c6a021159176034f05',1,'ExportEntryWrapper::getSubFieldsCount()'],['../class_resource_dir_wrapper.html#a5ddf09f7a5de00c9163ccd3773c0c7fd',1,'ResourceDirWrapper::getSubFieldsCount()'],['../class_ld_config_dir_wrapper.html#ab673ac25987a0b86bb2b2db65138a43d',1,'LdConfigDirWrapper::getSubFieldsCount()'],['../class_imported_func_wrapper.html#ac994c7f9b5b1c2b41407185a3a2b658a',1,'ImportedFuncWrapper::getSubFieldsCount()'],['../class_import_base_entry_wrapper.html#a48961f8c1663c5801d0ccc8512570204',1,'ImportBaseEntryWrapper::getSubFieldsCount()'],['../class_export_dir_wrapper.html#a0803f247b0dcc9c46714efe3441b27bf',1,'ExportDirWrapper::getSubFieldsCount()']]], + ['getsubfieldscount_134',['getsubfieldscount',['../class_clr_dir_wrapper.html#a56c3b314c3ae7d61a5c8a867618f71e4',1,'ClrDirWrapper::getSubFieldsCount()'],['../class_exe_element_wrapper.html#a67ce2e7ed7ae73a57c6a711ff767d40a',1,'ExeElementWrapper::getSubFieldsCount()'],['../class_exe_node_wrapper.html#ab83dd78bccf0c4693a7483c3484b2e39',1,'ExeNodeWrapper::getSubFieldsCount()'],['../class_tls_entry_wrapper.html#aefb6d97a24334345b45d5e338652b903',1,'TlsEntryWrapper::getSubFieldsCount()'],['../class_tls_dir_wrapper.html#a9bd7a858bdb2f9afb0a21e6bfde78ef6',1,'TlsDirWrapper::getSubFieldsCount()'],['../class_security_dir_wrapper.html#ae7a22de1126d6be649ff67c63535780c',1,'SecurityDirWrapper::getSubFieldsCount()'],['../class_section_hdr_wrapper.html#a8962a201409806d70dda661ab2fd3b60',1,'SectionHdrWrapper::getSubFieldsCount()'],['../class_resource_version_wrapper.html#a7ac78608b5a4f5d804f091165e3e1aa3',1,'ResourceVersionWrapper::getSubFieldsCount()'],['../class_res_string.html#aae288ca9e7186e1cb0b710fcee22e043',1,'ResString::getSubFieldsCount()'],['../class_resource_content_wrapper.html#ac1352678307202294711ab666e8a2919',1,'ResourceContentWrapper::getSubFieldsCount()'],['../class_resource_entry_wrapper.html#ae88a0aa349c34ecaaf619d935ffb4e52',1,'ResourceEntryWrapper::getSubFieldsCount()'],['../class_reloc_entry_wrapper.html#a084278764ad73a02055d96f82fdff421',1,'RelocEntryWrapper::getSubFieldsCount()'],['../class_bound_entry_wrapper.html#a519584ce713d00807885db5b0b934e4c',1,'BoundEntryWrapper::getSubFieldsCount()'],['../class_data_dir_wrapper.html#a85d681072a24dddb347985177f2abf6f',1,'DataDirWrapper::getSubFieldsCount()'],['../class_debug_dir_entry_wrapper.html#a59a493ba7e6c5b174e725244885705e4',1,'DebugDirEntryWrapper::getSubFieldsCount()'],['../class_debug_dir_c_v_entry_wrapper.html#af2b50cbbe1aa69fe5bb761f2ced35ac4',1,'DebugDirCVEntryWrapper::getSubFieldsCount()'],['../class_delay_imp_func_wrapper.html#a98df01573081653b6a8cd01907279a73',1,'DelayImpFuncWrapper::getSubFieldsCount()'],['../class_exception_entry_wrapper.html#aa59cce7ebb50277f06d1634482218e99',1,'ExceptionEntryWrapper::getSubFieldsCount()'],['../class_export_entry_wrapper.html#a32ee9d479af0d4c6a021159176034f05',1,'ExportEntryWrapper::getSubFieldsCount()'],['../class_resource_dir_wrapper.html#a5ddf09f7a5de00c9163ccd3773c0c7fd',1,'ResourceDirWrapper::getSubFieldsCount()'],['../class_ld_config_dir_wrapper.html#ab673ac25987a0b86bb2b2db65138a43d',1,'LdConfigDirWrapper::getSubFieldsCount()'],['../class_imported_func_wrapper.html#ac994c7f9b5b1c2b41407185a3a2b658a',1,'ImportedFuncWrapper::getSubFieldsCount()'],['../class_import_base_entry_wrapper.html#a48961f8c1663c5801d0ccc8512570204',1,'ImportBaseEntryWrapper::getSubFieldsCount()'],['../class_export_dir_wrapper.html#a0803f247b0dcc9c46714efe3441b27bf',1,'ExportDirWrapper::getSubFieldsCount()']]], ['getsubfieldsize_135',['getSubfieldSize',['../class_exe_node_wrapper.html#ac0f199fc5f2afabb187da4594e0af82b',1,'ExeNodeWrapper']]], ['getsubfieldwrapper_136',['getSubfieldWrapper',['../class_ld_config_dir_wrapper.html#a3beb61b14d4965976e2f1cc8c9f34a07',1,'LdConfigDirWrapper']]], ['getsubfieldwrappercount_137',['getSubfieldWrapperCount',['../class_ld_config_dir_wrapper.html#a4393351d5abd3e7136949f87ab9f07f5',1,'LdConfigDirWrapper']]], @@ -142,7 +142,7 @@ var searchData= ['getthunkvalsize_139',['getThunkValSize',['../class_import_base_func_wrapper.html#a5f55a47f8dee3a8983a24e1f476d6302',1,'ImportBaseFuncWrapper']]], ['getthunkvalue_140',['getThunkValue',['../class_imported_func_wrapper.html#ac38284626478d2f787593f24344fad45',1,'ImportedFuncWrapper']]], ['gettopentryid_141',['getTopEntryID',['../class_resource_entry_wrapper.html#a422a14126a13f31e58f71f65bad2dac8',1,'ResourceEntryWrapper']]], - ['gettype_142',['getType',['../class_reloc_entry_wrapper.html#ad13ae2b18d9ddd405608dad30fe4916c',1,'RelocEntryWrapper::getType()'],['../class_resource_content_wrapper.html#a84266b95950b0e8005e47ec55e703c71',1,'ResourceContentWrapper::getType()']]], + ['gettype_142',['gettype',['../class_reloc_entry_wrapper.html#ad13ae2b18d9ddd405608dad30fe4916c',1,'RelocEntryWrapper::getType()'],['../class_resource_content_wrapper.html#a84266b95950b0e8005e47ec55e703c71',1,'ResourceContentWrapper::getType()']]], ['gettypename_143',['getTypeName',['../class_exe_factory.html#a85810c3ac94b88d0649e3553d7eba93a',1,'ExeFactory']]], ['getuncnamestr_144',['getuncNameStr',['../class_export_entry_wrapper.html#ad6aadabc85c4eb0c0dd1f8d6a524fba7',1,'ExportEntryWrapper']]], ['getvalueptr_145',['getValuePtr',['../class_imported_func_wrapper.html#ab7014f620a332a27fe02a9bdaed196fc',1,'ImportedFuncWrapper']]], @@ -150,7 +150,7 @@ var searchData= ['getversiontext_147',['getVersionText',['../class_resource_version_wrapper.html#a7ebf304f4ac40fd0f05820e1950e026f',1,'ResourceVersionWrapper']]], ['getvirtualptr_148',['getVirtualPtr',['../class_section_hdr_wrapper.html#a8e7aae121e17c418de75fa6b540991e9',1,'SectionHdrWrapper']]], ['getwasciistringvalue_149',['getWAsciiStringValue',['../class_abstract_byte_buffer.html#aced00c06952e4829ce0549a0af3739ea',1,'AbstractByteBuffer']]], - ['getwrappedvalue_150',['getWrappedValue',['../class_exe_element_wrapper.html#a5f05db52fcfdf132740fa6f0923055cd',1,'ExeElementWrapper::getWrappedValue(size_t fieldId, size_t subField)'],['../class_exe_element_wrapper.html#a2d0869ffae03306918f46253eb43ecc6',1,'ExeElementWrapper::getWrappedValue(size_t fieldId)']]], + ['getwrappedvalue_150',['getwrappedvalue',['../class_exe_element_wrapper.html#a5f05db52fcfdf132740fa6f0923055cd',1,'ExeElementWrapper::getWrappedValue(size_t fieldId, size_t subField)'],['../class_exe_element_wrapper.html#a2d0869ffae03306918f46253eb43ecc6',1,'ExeElementWrapper::getWrappedValue(size_t fieldId)']]], ['getwrapper_151',['getWrapper',['../class_exe_wrappers_container.html#adb485acf2f9b4ad9b32d73f15ef9bec3',1,'ExeWrappersContainer']]], ['getwrapperat_152',['getWrapperAt',['../class_resources_container.html#a5977bb096781d3c2131750c94fea6ffd',1,'ResourcesContainer']]], ['getwrappername_153',['getWrapperName',['../class_exe_wrappers_container.html#a40ba34d51398f65635a8f2aae7188745',1,'ExeWrappersContainer']]], diff --git a/search/all_8.js b/search/all_8.js index c54c30eb..c19d3c3d 100644 --- a/search/all_8.js +++ b/search/all_8.js @@ -3,18 +3,18 @@ var searchData= ['handler_5faddr_0',['HANDLER_ADDR',['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099ba73565f8a89cf8a62342dc9559573e0ab',1,'LdConfigEntryWrapper']]], ['hasdirectory_1',['hasDirectory',['../class_p_e_file.html#a2e006cce7d9641a27bb3446b64477c71',1,'PEFile']]], ['hasnonprintable_2',['hasNonPrintable',['../namespacepe__util.html#a103f13d1382d5fa542fa6fb8a073f28a',1,'pe_util']]], - ['hassubfieldwrapper_3',['hasSubfieldWrapper',['../class_exe_element_wrapper.html#a2c144aaa86fd60c6aa91b90c86c77c30',1,'ExeElementWrapper::hasSubfieldWrapper()'],['../class_ld_config_dir_wrapper.html#a5cc8b97920fedec21c16549c8ca0f0e2',1,'LdConfigDirWrapper::hasSubfieldWrapper(size_t parentType)']]], + ['hassubfieldwrapper_3',['hassubfieldwrapper',['../class_exe_element_wrapper.html#a2c144aaa86fd60c6aa91b90c86c77c30',1,'ExeElementWrapper::hasSubfieldWrapper()'],['../class_ld_config_dir_wrapper.html#a5cc8b97920fedec21c16549c8ca0f0e2',1,'LdConfigDirWrapper::hasSubfieldWrapper(size_t parentType)']]], ['hassupressioninfo_4',['hasSupressionInfo',['../class_ld_config_dir_wrapper.html#a33b9fc837bb850ae695612fdbbe4a5d2',1,'LdConfigDirWrapper']]], ['hasthunk_5',['hasThunk',['../class_import_base_dir_wrapper.html#a4a782d3492affeb5ab95a9c470bf18f0',1,'ImportBaseDirWrapper']]], ['hastopentry_6',['hasTopEntry',['../class_resources_album.html#ac46ef44dc24379237449de6f1ca708f5',1,'ResourcesAlbum']]], ['hastype_7',['hasType',['../class_resources_album.html#afa48907b5b2399ce63e6cebe56549a0b',1,'ResourcesAlbum']]], ['hdrs_5fsize_8',['HDRS_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac149763bd31c8e5b63e38a0cc28c9d36',1,'OptHdrWrapper']]], ['hdrsectionsnum_9',['hdrSectionsNum',['../class_p_e_file.html#ab31182be0835a59d2ab8965edb5e6167',1,'PEFile']]], - ['hdrssize_10',['hdrsSize',['../class_p_e_core.html#a67867e96974c5141d1fb894c62626fa2',1,'PECore::hdrsSize()'],['../class_p_e_file.html#ab199f3416b1c1a8e97f53df22b3f7fd1',1,'PEFile::hdrsSize()']]], + ['hdrssize_10',['hdrssize',['../class_p_e_core.html#a67867e96974c5141d1fb894c62626fa2',1,'PECore::hdrsSize()'],['../class_p_e_file.html#ab199f3416b1c1a8e97f53df22b3f7fd1',1,'PEFile::hdrsSize()']]], ['heap_5fcommit_5fsize_11',['HEAP_COMMIT_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a76cabab2c4b79002d2ad5c617c270207',1,'OptHdrWrapper']]], ['heap_5frsrv_5fsize_12',['HEAP_RSRV_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013afe7344530b232ca3f51d1b03c12c794a',1,'OptHdrWrapper']]], ['hexdump_13',['hexdump',['../namespacepe__util.html#a89542115abc280faa162fbd815672f48',1,'pe_util']]], - ['hexformatter_14',['HexFormatter',['../class_hex_formatter.html#a4aeecf116732986ecd9ba2bd0de0ba0e',1,'HexFormatter::HexFormatter()'],['../class_hex_formatter.html',1,'HexFormatter']]], + ['hexformatter_14',['hexformatter',['../class_hex_formatter.html#a4aeecf116732986ecd9ba2bd0de0ba0e',1,'HexFormatter::HexFormatter()'],['../class_hex_formatter.html',1,'HexFormatter']]], ['hint_15',['HINT',['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca8eea4a6ea6480c798990ef47780c032e',1,'ImportedFuncWrapper']]], ['hot_5fpatch_5ftable_5foffset_16',['HOT_PATCH_TABLE_OFFSET',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a8cee2638c41c19495d39088df9bd612e',1,'LdConfigDirWrapper']]] ]; diff --git a/search/all_9.js b/search/all_9.js index 2402452f..7341b107 100644 --- a/search/all_9.js +++ b/search/all_9.js @@ -9,18 +9,18 @@ var searchData= ['imgver_5fmajor_6',['IMGVER_MAJOR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a008242283484b3fd55ebea259d3cca30',1,'OptHdrWrapper']]], ['imgver_5fminor_7',['IMGVER_MINOR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013aa1d8e6a9329c0ceadf490671e9a95154',1,'OptHdrWrapper']]], ['impdir_8',['impDir',['../class_import_base_entry_wrapper.html#a320f9410912954ad911d42603a05ed2b',1,'ImportBaseEntryWrapper']]], - ['importbasedirwrapper_9',['ImportBaseDirWrapper',['../class_import_base_dir_wrapper.html#af2df5dacf09eac59450a04a636f7d0ba',1,'ImportBaseDirWrapper::ImportBaseDirWrapper()'],['../class_import_base_func_wrapper.html#ac45174df1125d5b76924419a73948a40',1,'ImportBaseFuncWrapper::ImportBaseDirWrapper'],['../class_import_base_entry_wrapper.html#ac45174df1125d5b76924419a73948a40',1,'ImportBaseEntryWrapper::ImportBaseDirWrapper'],['../class_import_base_dir_wrapper.html',1,'ImportBaseDirWrapper']]], + ['importbasedirwrapper_9',['importbasedirwrapper',['../class_import_base_dir_wrapper.html#af2df5dacf09eac59450a04a636f7d0ba',1,'ImportBaseDirWrapper::ImportBaseDirWrapper()'],['../class_import_base_func_wrapper.html#ac45174df1125d5b76924419a73948a40',1,'ImportBaseFuncWrapper::ImportBaseDirWrapper'],['../class_import_base_entry_wrapper.html#ac45174df1125d5b76924419a73948a40',1,'ImportBaseEntryWrapper::ImportBaseDirWrapper'],['../class_import_base_dir_wrapper.html',1,'ImportBaseDirWrapper']]], ['importbasedirwrapper_2ecpp_10',['ImportBaseDirWrapper.cpp',['../_import_base_dir_wrapper_8cpp.html',1,'']]], ['importbasedirwrapper_2eh_11',['ImportBaseDirWrapper.h',['../_import_base_dir_wrapper_8h.html',1,'']]], - ['importbaseentrywrapper_12',['ImportBaseEntryWrapper',['../class_import_base_dir_wrapper.html#a219127b2ddd6a3e1f012de67359ecab4',1,'ImportBaseDirWrapper::ImportBaseEntryWrapper'],['../class_import_base_entry_wrapper.html#ad16dc8acadd054efecd45f7674571413',1,'ImportBaseEntryWrapper::ImportBaseEntryWrapper()'],['../class_import_base_entry_wrapper.html',1,'ImportBaseEntryWrapper']]], - ['importbasefuncwrapper_13',['ImportBaseFuncWrapper',['../class_import_base_func_wrapper.html#ae95072f9358dcaf2fe8a8ad380d4cb7d',1,'ImportBaseFuncWrapper::ImportBaseFuncWrapper()'],['../class_import_base_func_wrapper.html',1,'ImportBaseFuncWrapper']]], - ['importdirwrapper_14',['ImportDirWrapper',['../class_imported_func_wrapper.html#ab63472dc9a23f18db573a468fc2a3c98',1,'ImportedFuncWrapper::ImportDirWrapper'],['../class_import_dir_wrapper.html#a0a0f2284f3aaef1d525360b44d91d3e8',1,'ImportDirWrapper::ImportDirWrapper()'],['../class_import_entry_wrapper.html#ab63472dc9a23f18db573a468fc2a3c98',1,'ImportEntryWrapper::ImportDirWrapper'],['../class_import_dir_wrapper.html',1,'ImportDirWrapper']]], + ['importbaseentrywrapper_12',['importbaseentrywrapper',['../class_import_base_dir_wrapper.html#a219127b2ddd6a3e1f012de67359ecab4',1,'ImportBaseDirWrapper::ImportBaseEntryWrapper'],['../class_import_base_entry_wrapper.html#ad16dc8acadd054efecd45f7674571413',1,'ImportBaseEntryWrapper::ImportBaseEntryWrapper()'],['../class_import_base_entry_wrapper.html',1,'ImportBaseEntryWrapper']]], + ['importbasefuncwrapper_13',['importbasefuncwrapper',['../class_import_base_func_wrapper.html#ae95072f9358dcaf2fe8a8ad380d4cb7d',1,'ImportBaseFuncWrapper::ImportBaseFuncWrapper()'],['../class_import_base_func_wrapper.html',1,'ImportBaseFuncWrapper']]], + ['importdirwrapper_14',['importdirwrapper',['../class_imported_func_wrapper.html#ab63472dc9a23f18db573a468fc2a3c98',1,'ImportedFuncWrapper::ImportDirWrapper'],['../class_import_dir_wrapper.html#a0a0f2284f3aaef1d525360b44d91d3e8',1,'ImportDirWrapper::ImportDirWrapper()'],['../class_import_entry_wrapper.html#ab63472dc9a23f18db573a468fc2a3c98',1,'ImportEntryWrapper::ImportDirWrapper'],['../class_import_dir_wrapper.html',1,'ImportDirWrapper']]], ['importdirwrapper_2ecpp_15',['ImportDirWrapper.cpp',['../_import_dir_wrapper_8cpp.html',1,'']]], ['importdirwrapper_2eh_16',['ImportDirWrapper.h',['../_import_dir_wrapper_8h.html',1,'']]], - ['importedfuncwrapper_17',['ImportedFuncWrapper',['../class_imported_func_wrapper.html',1,'ImportedFuncWrapper'],['../class_imported_func_wrapper.html#a3015989da062c8652c3570ede71e6485',1,'ImportedFuncWrapper::ImportedFuncWrapper()']]], - ['importentrywrapper_18',['ImportEntryWrapper',['../class_import_entry_wrapper.html',1,'ImportEntryWrapper'],['../class_import_dir_wrapper.html#ae268837a6991d56e05e71e308eb06b9e',1,'ImportDirWrapper::ImportEntryWrapper'],['../class_import_entry_wrapper.html#a37f0a126fa7693446cfdacc723a4e0a4',1,'ImportEntryWrapper::ImportEntryWrapper()']]], + ['importedfuncwrapper_17',['importedfuncwrapper',['../class_imported_func_wrapper.html',1,'ImportedFuncWrapper'],['../class_imported_func_wrapper.html#a3015989da062c8652c3570ede71e6485',1,'ImportedFuncWrapper::ImportedFuncWrapper()']]], + ['importentrywrapper_18',['importentrywrapper',['../class_import_entry_wrapper.html',1,'ImportEntryWrapper'],['../class_import_dir_wrapper.html#ae268837a6991d56e05e71e308eb06b9e',1,'ImportDirWrapper::ImportEntryWrapper'],['../class_import_entry_wrapper.html#a37f0a126fa7693446cfdacc723a4e0a4',1,'ImportEntryWrapper::ImportEntryWrapper()']]], ['imports_5futil_19',['imports_util',['../namespaceimports__util.html',1,'']]], - ['importscount_20',['importsCount',['../class_bound_imp_dir_wrapper.html#a5c4c7d7cf872187d05e365c6aa44b756',1,'BoundImpDirWrapper::importsCount'],['../class_import_base_dir_wrapper.html#a5c3f77f425a0eaa22f31b836bf9c868c',1,'ImportBaseDirWrapper::importsCount']]], + ['importscount_20',['importscount',['../class_bound_imp_dir_wrapper.html#a5c4c7d7cf872187d05e365c6aa44b756',1,'BoundImpDirWrapper::importsCount'],['../class_import_base_dir_wrapper.html#a5c3f77f425a0eaa22f31b836bf9c868c',1,'ImportBaseDirWrapper::importsCount']]], ['index_5faddr_21',['INDEX_ADDR',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a5bf345f0a756f439f23982a8b8dc93cb',1,'TlsDirWrapper']]], ['info_22',['INFO',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a3075b0de04d7af3f02f02ebff6817500',1,'ResourceVersionWrapper']]], ['init_23',['init',['../class_exe_factory.html#a754878078e16859193af16b68dc19457',1,'ExeFactory::init()'],['../class_common_ordinals_lookup.html#a256345e66253fa446d1eafe29094b7dc',1,'CommonOrdinalsLookup::init()']]], @@ -31,7 +31,7 @@ var searchData= ['initmachine_28',['initMachine',['../class_file_hdr_wrapper.html#ae51f08217eaf046c6edb9ab9bd3a2c22',1,'FileHdrWrapper']]], ['initresourcetypes_29',['initResourceTypes',['../class_resources_album.html#a48b7a8f6ac536d8c95d2ea976f468e38',1,'ResourcesAlbum']]], ['initseccharacter_30',['initSecCharacter',['../class_section_hdr_wrapper.html#a6acdc0e8514682c045400e5e4f4ac39b',1,'SectionHdrWrapper']]], - ['int_31',['INT',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faaf33d85056a643117a360425f97dd5d0f',1,'DelayImpEntryWrapper::INT'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa27f7d3c0ef312dfd3820d9eb588d9664',1,'WrappedValue::INT']]], + ['int_31',['int',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faaf33d85056a643117a360425f97dd5d0f',1,'DelayImpEntryWrapper::INT'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa27f7d3c0ef312dfd3820d9eb588d9664',1,'WrappedValue::INT']]], ['intersectsblock_32',['intersectsBlock',['../class_abstract_byte_buffer.html#a14f43c9bfaa747b5ee4191a51f1180d9',1,'AbstractByteBuffer']]], ['invalid_5faddr_33',['INVALID_ADDR',['../_abstract_byte_buffer_8h.html#ab99058386f4a8bc4e8cd07fad8198178',1,'AbstractByteBuffer.h']]], ['invalid_5fentrynum_34',['INVALID_ENTRYNUM',['../_exe_node_wrapper_8h.html#a149d2e3961126d408917b942f3cca465',1,'ExeNodeWrapper.h']]], @@ -43,25 +43,25 @@ var searchData= ['is_5fendline_40',['IS_ENDLINE',['../_util_8h.html#a08090b46d9133e90e2a8f0d326895b09',1,'Util.h']]], ['is_5fprintable_41',['IS_PRINTABLE',['../_util_8h.html#a1a739e1f368dc1b3b122572eec3d12ab',1,'Util.h']]], ['isareaempty_42',['isAreaEmpty',['../class_abstract_byte_buffer.html#ad6e51045cafb47ed7d4467b55ad74d4f',1,'AbstractByteBuffer']]], - ['isbit32_43',['isBit32',['../class_exe_element_wrapper.html#a10375011f680e46f236a878916838fd6',1,'ExeElementWrapper::isBit32()'],['../class_executable.html#adcf60bc50efc0f27dd245baf5fab3b1b',1,'Executable::isBit32(Executable *exe)'],['../class_executable.html#a2dacd9266dfa0a64948e494b412a5810',1,'Executable::isBit32()']]], - ['isbit64_44',['isBit64',['../class_exe_element_wrapper.html#a85682570009a6c69fb22f035763a3c56',1,'ExeElementWrapper::isBit64()'],['../class_executable.html#a42b330a49cdaca307ec4b0022db2fe30',1,'Executable::isBit64()'],['../class_executable.html#a4c85f844b8f48e9070a72f7fcb300a70',1,'Executable::isBit64(Executable *exe)']]], + ['isbit32_43',['isbit32',['../class_exe_element_wrapper.html#a10375011f680e46f236a878916838fd6',1,'ExeElementWrapper::isBit32()'],['../class_executable.html#adcf60bc50efc0f27dd245baf5fab3b1b',1,'Executable::isBit32(Executable *exe)'],['../class_executable.html#a2dacd9266dfa0a64948e494b412a5810',1,'Executable::isBit32()']]], + ['isbit64_44',['isbit64',['../class_exe_element_wrapper.html#a85682570009a6c69fb22f035763a3c56',1,'ExeElementWrapper::isBit64()'],['../class_executable.html#a42b330a49cdaca307ec4b0022db2fe30',1,'Executable::isBit64()'],['../class_executable.html#a4c85f844b8f48e9070a72f7fcb300a70',1,'Executable::isBit64(Executable *exe)']]], ['isbound_45',['isBound',['../class_import_entry_wrapper.html#a021b26ef410620ed558536575794e5e3',1,'ImportEntryWrapper']]], ['isbyname_46',['isByName',['../class_resource_entry_wrapper.html#ab64fbc478f6e70835f3eba2dd59a4a7f',1,'ResourceEntryWrapper']]], - ['isbyordinal_47',['isByOrdinal',['../class_imported_func_wrapper.html#a9188244dbc4ad0c1834bac394cf0d66d',1,'ImportedFuncWrapper::isByOrdinal()'],['../class_export_entry_wrapper.html#a994d8a16bcbd84a6991c1febe4e29c41',1,'ExportEntryWrapper::isByOrdinal()'],['../class_import_base_func_wrapper.html#ace0d20b46771cb1c8f978ebaf7a5106e',1,'ImportBaseFuncWrapper::isByOrdinal()'],['../class_delay_imp_func_wrapper.html#a3b4e8d96c151873ca97513c0165348b6',1,'DelayImpFuncWrapper::isByOrdinal()']]], + ['isbyordinal_47',['isbyordinal',['../class_imported_func_wrapper.html#a9188244dbc4ad0c1834bac394cf0d66d',1,'ImportedFuncWrapper::isByOrdinal()'],['../class_export_entry_wrapper.html#a994d8a16bcbd84a6991c1febe4e29c41',1,'ExportEntryWrapper::isByOrdinal()'],['../class_import_base_func_wrapper.html#ace0d20b46771cb1c8f978ebaf7a5106e',1,'ImportBaseFuncWrapper::isByOrdinal()'],['../class_delay_imp_func_wrapper.html#a3b4e8d96c151873ca97513c0165348b6',1,'DelayImpFuncWrapper::isByOrdinal()']]], ['isdir_48',['isDir',['../class_resource_entry_wrapper.html#a9624f3dc917bdc36fc2e10c45b139ce2',1,'ResourceEntryWrapper']]], ['ishex_49',['isHex',['../class_formatter.html#ab9c774af452b980b4e4775a33b950fbe',1,'Formatter']]], ['ishexchar_50',['isHexChar',['../namespacepe__util.html#ad7a076665793ae6a73d7fb9243d4501e',1,'pe_util']]], - ['ismyentrytype_51',['isMyEntryType',['../class_exe_node_wrapper.html#a18ce067c9b583670403ed0abc2cbad2d',1,'ExeNodeWrapper::isMyEntryType()'],['../class_sect_hdrs_wrapper.html#a72bf5fb11581fdfc4c2653d2be7c3633',1,'SectHdrsWrapper::isMyEntryType()']]], + ['ismyentrytype_51',['ismyentrytype',['../class_exe_node_wrapper.html#a18ce067c9b583670403ed0abc2cbad2d',1,'ExeNodeWrapper::isMyEntryType()'],['../class_sect_hdrs_wrapper.html#a72bf5fb11581fdfc4c2653d2be7c3633',1,'SectHdrsWrapper::isMyEntryType()']]], ['isnamevalid_52',['isNameValid',['../namespaceimports__util.html#a3a68efb57dab497843ba53f23161f9a3',1,'imports_util']]], ['isprintable_53',['isPrintable',['../namespacepe__util.html#aad5182df7cffa8c7cbcadcf71ff60a19',1,'pe_util']]], ['isrepro_54',['isRepro',['../class_debug_dir_wrapper.html#a6a8ae76c391c092a19a4ad29d2f150f4',1,'DebugDirWrapper']]], ['isreprobuild_55',['isReproBuild',['../class_p_e_file.html#af5acfb39da44ddc17215468fcd9de38b',1,'PEFile']]], - ['isresized_56',['isResized',['../class_executable.html#afc83c5cdac5c8a28c59949944c790c5d',1,'Executable::isResized()'],['../class_file_buffer.html#a0525da6f0ae5fc868ad5b398034ec4df',1,'FileBuffer::isResized()'],['../class_byte_buffer.html#a2a9463758d08480ddf96d7d551f39a8f',1,'ByteBuffer::isResized()'],['../class_abstract_byte_buffer.html#a20e43caa5780d199dd1d7d919f9d590e',1,'AbstractByteBuffer::isResized()']]], + ['isresized_56',['isresized',['../class_executable.html#afc83c5cdac5c8a28c59949944c790c5d',1,'Executable::isResized()'],['../class_file_buffer.html#a0525da6f0ae5fc868ad5b398034ec4df',1,'FileBuffer::isResized()'],['../class_byte_buffer.html#a2a9463758d08480ddf96d7d551f39a8f',1,'ByteBuffer::isResized()'],['../class_abstract_byte_buffer.html#a20e43caa5780d199dd1d7d919f9d590e',1,'AbstractByteBuffer::isResized()']]], ['isskipnonprintable_57',['isSkipNonprintable',['../class_formatter.html#afbb60c22ecb6537ff3440c66c56002f9',1,'Formatter']]], ['isspaceclear_58',['isSpaceClear',['../namespacepe__util.html#a8d27344da7a33a4c5b7c43c329179367',1,'pe_util']]], ['isstrlonger_59',['isStrLonger',['../namespacepe__util.html#a3206ffc8778304d1d269decfbe3ab0b6',1,'pe_util']]], - ['istruncated_60',['isTruncated',['../class_file_buffer.html#ae1b0afb493c07daf35cdf4e7da5cbc45',1,'FileBuffer::isTruncated()'],['../class_file_view.html#a0cbe4cf4efb205092c64c993ce4dc3cb',1,'FileView::isTruncated()'],['../class_executable.html#a076fe5621405c05bc0835866a32a2b0d',1,'Executable::isTruncated()'],['../class_abstract_byte_buffer.html#a113d0f29022df23ed74ff1c171df8c82',1,'AbstractByteBuffer::isTruncated()']]], - ['isvalid_61',['isValid',['../class_wrapped_value.html#a35afd8eacb5727e0921d7448333c6cca',1,'WrappedValue::isValid()'],['../class_import_base_entry_wrapper.html#ac43611e5b2a326c78da167b0e4784de8',1,'ImportBaseEntryWrapper::isValid()'],['../class_exe_node_wrapper.html#aa90cce24f1bec49d87dc18b329dce62e',1,'ExeNodeWrapper::isValid()'],['../class_abstract_byte_buffer.html#ac24d107f7f7dafeeb671e9aceeba818d',1,'AbstractByteBuffer::isValid()']]], + ['istruncated_60',['istruncated',['../class_file_buffer.html#ae1b0afb493c07daf35cdf4e7da5cbc45',1,'FileBuffer::isTruncated()'],['../class_file_view.html#a0cbe4cf4efb205092c64c993ce4dc3cb',1,'FileView::isTruncated()'],['../class_executable.html#a076fe5621405c05bc0835866a32a2b0d',1,'Executable::isTruncated()'],['../class_abstract_byte_buffer.html#a113d0f29022df23ed74ff1c171df8c82',1,'AbstractByteBuffer::isTruncated()']]], + ['isvalid_61',['isvalid',['../class_wrapped_value.html#a35afd8eacb5727e0921d7448333c6cca',1,'WrappedValue::isValid()'],['../class_import_base_entry_wrapper.html#ac43611e5b2a326c78da167b0e4784de8',1,'ImportBaseEntryWrapper::isValid()'],['../class_exe_node_wrapper.html#aa90cce24f1bec49d87dc18b329dce62e',1,'ExeNodeWrapper::isValid()'],['../class_abstract_byte_buffer.html#ac24d107f7f7dafeeb671e9aceeba818d',1,'AbstractByteBuffer::isValid()']]], ['isvalidaddr_62',['isValidAddr',['../class_executable.html#a383eb91b928dc417d9a631704737a192',1,'Executable']]], ['isvalidva_63',['isValidVA',['../class_executable.html#a7c38d78f5e14efeaaa205b9ee593dd4a',1,'Executable']]] ]; diff --git a/search/all_a.js b/search/all_a.js index 6d5bc832..384b9bcd 100644 --- a/search/all_a.js +++ b/search/all_a.js @@ -1,10 +1,10 @@ var searchData= [ ['ldconfigdirfid_0',['LdConfigDirFID',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45',1,'LdConfigDirWrapper']]], - ['ldconfigdirwrapper_1',['LdConfigDirWrapper',['../class_ld_config_dir_wrapper.html',1,'LdConfigDirWrapper'],['../class_ld_config_dir_wrapper.html#ae5eb16e4b4007b592f8be58fa86b2f7f',1,'LdConfigDirWrapper::LdConfigDirWrapper()']]], + ['ldconfigdirwrapper_1',['ldconfigdirwrapper',['../class_ld_config_dir_wrapper.html',1,'LdConfigDirWrapper'],['../class_ld_config_dir_wrapper.html#ae5eb16e4b4007b592f8be58fa86b2f7f',1,'LdConfigDirWrapper::LdConfigDirWrapper()']]], ['ldconfigdirwrapper_2ecpp_2',['LdConfigDirWrapper.cpp',['../_ld_config_dir_wrapper_8cpp.html',1,'']]], ['ldconfigdirwrapper_2eh_3',['LdConfigDirWrapper.h',['../_ld_config_dir_wrapper_8h.html',1,'']]], - ['ldconfigentrywrapper_4',['LdConfigEntryWrapper',['../class_ld_config_entry_wrapper.html',1,'LdConfigEntryWrapper'],['../class_ld_config_dir_wrapper.html#afd7a686e3034702ce373ff254c6cd970',1,'LdConfigDirWrapper::LdConfigEntryWrapper'],['../class_ld_config_entry_wrapper.html#af702751103c7d40c035daeec6e4fba92',1,'LdConfigEntryWrapper::LdConfigEntryWrapper()']]], + ['ldconfigentrywrapper_4',['ldconfigentrywrapper',['../class_ld_config_entry_wrapper.html',1,'LdConfigEntryWrapper'],['../class_ld_config_dir_wrapper.html#afd7a686e3034702ce373ff254c6cd970',1,'LdConfigDirWrapper::LdConfigEntryWrapper'],['../class_ld_config_entry_wrapper.html#af702751103c7d40c035daeec6e4fba92',1,'LdConfigEntryWrapper::LdConfigEntryWrapper()']]], ['ldr_5fflags_5',['LDR_FLAGS',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013aafe8e1d10eea1cc5ca808b3956706402',1,'OptHdrWrapper']]], ['leafentryptr_6',['leafEntryPtr',['../class_resource_leaf_wrapper.html#a00acc594812f9d0e856a7e7a781b6e96',1,'ResourceLeafWrapper']]], ['leaftocontentwrapper_7',['leafToContentWrapper',['../class_resources_album.html#a14dd99e9165c36bf387562a84d5cf18a',1,'ResourcesAlbum']]], @@ -15,7 +15,7 @@ var searchData= ['linker_5fmajor_12',['LINKER_MAJOR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a35fcd8f293b68e094adc613bdf54c3ed',1,'OptHdrWrapper']]], ['linker_5fminor_13',['LINKER_MINOR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013afc771dd7e003623b2dc0db9a8387a79a',1,'OptHdrWrapper']]], ['listsmap_14',['listsMap',['../class_common_ordinals_lookup.html#a08b6b71e72a5ba7df5dcb8c21e1f70d9',1,'CommonOrdinalsLookup']]], - ['loadnextentry_15',['loadNextEntry',['../class_exe_node_wrapper.html#a8a0305cc15aefe812f69485bbe82508d',1,'ExeNodeWrapper::loadNextEntry()'],['../class_bound_imp_dir_wrapper.html#a13b9a7bba1549733fdc60d51abcea5ea',1,'BoundImpDirWrapper::loadNextEntry()'],['../class_debug_dir_wrapper.html#a71d7b9d4bd5aafbc77a6939b293f14c3',1,'DebugDirWrapper::loadNextEntry()'],['../class_delay_imp_dir_wrapper.html#a9a65bd88e9cba04eec4d53c626e1f967',1,'DelayImpDirWrapper::loadNextEntry()'],['../class_delay_imp_entry_wrapper.html#abd79b0c4556c89d51d65d60d947629ee',1,'DelayImpEntryWrapper::loadNextEntry()'],['../class_import_dir_wrapper.html#a4299a35ac29e73bc70c4788a7e7d1099',1,'ImportDirWrapper::loadNextEntry()'],['../class_import_entry_wrapper.html#a5a8b765e428aaf85d898604b50dba99f',1,'ImportEntryWrapper::loadNextEntry()'],['../class_sect_hdrs_wrapper.html#a5d346cfbb674f06a00fceb5fceedadc5',1,'SectHdrsWrapper::loadNextEntry()']]], + ['loadnextentry_15',['loadnextentry',['../class_exe_node_wrapper.html#a8a0305cc15aefe812f69485bbe82508d',1,'ExeNodeWrapper::loadNextEntry()'],['../class_bound_imp_dir_wrapper.html#a13b9a7bba1549733fdc60d51abcea5ea',1,'BoundImpDirWrapper::loadNextEntry()'],['../class_debug_dir_wrapper.html#a71d7b9d4bd5aafbc77a6939b293f14c3',1,'DebugDirWrapper::loadNextEntry()'],['../class_delay_imp_dir_wrapper.html#a9a65bd88e9cba04eec4d53c626e1f967',1,'DelayImpDirWrapper::loadNextEntry()'],['../class_delay_imp_entry_wrapper.html#abd79b0c4556c89d51d65d60d947629ee',1,'DelayImpEntryWrapper::loadNextEntry()'],['../class_import_dir_wrapper.html#a4299a35ac29e73bc70c4788a7e7d1099',1,'ImportDirWrapper::loadNextEntry()'],['../class_import_entry_wrapper.html#a5a8b765e428aaf85d898604b50dba99f',1,'ImportEntryWrapper::loadNextEntry()'],['../class_sect_hdrs_wrapper.html#a5d346cfbb674f06a00fceb5fceedadc5',1,'SectHdrsWrapper::loadNextEntry()']]], ['lock_5fprefix_16',['LOCK_PREFIX',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a1d70c5ea2073941962eb465ca089baae',1,'LdConfigDirWrapper']]], ['log_17',['LOG',['../_util_8h.html#a158a8c64f24645c7478298399825737f',1,'Util.h']]], ['logger_18',['Logger',['../namespace_logger.html',1,'']]] diff --git a/search/all_b.js b/search/all_b.js index 554be58d..686da9ff 100644 --- a/search/all_b.js +++ b/search/all_b.js @@ -7,22 +7,22 @@ var searchData= ['m_5finfo_4',['m_info',['../class_custom_exception.html#ad647e059969453d490d9225996fe691f',1,'CustomException']]], ['m_5foffset_5',['m_Offset',['../class_wrapped_value.html#a9eef8d6c51ceb83bbcc6e56c11bf7b55',1,'WrappedValue']]], ['m_5fowner_6',['m_Owner',['../class_wrapped_value.html#a5e8faf9a28fd4a43beb2192392b873d5',1,'WrappedValue']]], - ['m_5fpe_7',['m_PE',['../class_p_e_element_wrapper.html#a6b7a41c35e9fa8d9f10b286fd3c4cb0a',1,'PEElementWrapper::m_PE'],['../class_p_e_node_wrapper.html#ab6fa549a7490efc0a84ab0c39fe0ef95',1,'PENodeWrapper::m_PE']]], + ['m_5fpe_7',['m_pe',['../class_p_e_element_wrapper.html#a6b7a41c35e9fa8d9f10b286fd3c4cb0a',1,'PEElementWrapper::m_PE'],['../class_p_e_node_wrapper.html#ab6fa549a7490efc0a84ab0c39fe0ef95',1,'PENodeWrapper::m_PE']]], ['m_5fsize_8',['m_Size',['../class_wrapped_value.html#ac2fc04ffc939e9fba89ab9535d4dce08',1,'WrappedValue']]], ['m_5fstrinfo_9',['m_strInfo',['../class_custom_exception.html#afcb66d9e30f5187bf091caf681a3a63e',1,'CustomException']]], ['m_5ftype_10',['m_Type',['../class_wrapped_value.html#af143ebb295f2dee15fd42cbda1caf3ab',1,'WrappedValue']]], ['machine_11',['MACHINE',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a0c86253059680989ff05e7dd7121e95d',1,'FileHdrWrapper']]], - ['magic_12',['MAGIC',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ad1fd33ea56b34e1192c12cc118a2b04b',1,'OptHdrWrapper::MAGIC'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a95b692db16fad10051ae9593c8f0f760',1,'DosHdrWrapper::MAGIC']]], + ['magic_12',['magic',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ad1fd33ea56b34e1192c12cc118a2b04b',1,'OptHdrWrapper::MAGIC'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a95b692db16fad10051ae9593c8f0f760',1,'DosHdrWrapper::MAGIC']]], ['mainresourcedir_13',['mainResourceDir',['../class_resource_dir_wrapper.html#aaeea9f84d4329dd206861d5c41162b49',1,'ResourceDirWrapper']]], ['major_5fruntime_5fver_14',['MAJOR_RUNTIME_VER',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a215965bffca4b12402ea4caccd69ff0d',1,'ClrDirWrapper']]], - ['major_5fver_15',['MAJOR_VER',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768caa24f931f7d20e085fe8b91c99a87e1fa',1,'DebugDirEntryWrapper::MAJOR_VER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a827d9eb2ecd3b1d1bfe974d4864c4f00',1,'ExportDirWrapper::MAJOR_VER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45af074a80e85389e98d9077d3ce6d7c88f',1,'LdConfigDirWrapper::MAJOR_VER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa6283d7dd9fa2570df472a191223278ac',1,'ResourceDirWrapper::MAJOR_VER']]], + ['major_5fver_15',['major_ver',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768caa24f931f7d20e085fe8b91c99a87e1fa',1,'DebugDirEntryWrapper::MAJOR_VER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a827d9eb2ecd3b1d1bfe974d4864c4f00',1,'ExportDirWrapper::MAJOR_VER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45af074a80e85389e98d9077d3ce6d7c88f',1,'LdConfigDirWrapper::MAJOR_VER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa6283d7dd9fa2570df472a191223278ac',1,'ResourceDirWrapper::MAJOR_VER']]], ['makerescontentwrapper_16',['makeResContentWrapper',['../class_resource_content_factory.html#a0994d8fb70984e2b07f88ddb4c58add2',1,'ResourceContentFactory']]], ['managed_5fnative_5fhdr_5fsize_17',['MANAGED_NATIVE_HDR_SIZE',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987af7384e3b25f79fb9c3904a3473c2e38d',1,'ClrDirWrapper']]], ['managed_5fnative_5fhdr_5fva_18',['MANAGED_NATIVE_HDR_VA',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a18e8a1749c4b03340489b5b268fa8e5f',1,'ClrDirWrapper']]], ['mapidtoleaftype_19',['mapIdToLeafType',['../class_resources_album.html#a554267294eeb03991a348a4080315fd9',1,'ResourcesAlbum']]], ['mapnames_20',['mapNames',['../class_export_dir_wrapper.html#abd57df0de1f87bbdc7ea89d77ed7f13e',1,'ExportDirWrapper']]], ['mappedcontent_21',['mappedContent',['../class_file_view.html#afb59ab8d973f579ab1722cc99d05bd8e',1,'FileView']]], - ['mappedexe_22',['MappedExe',['../class_mapped_exe.html#a13b467d7d3f93744f9ea586d72b8102b',1,'MappedExe::MappedExe()'],['../class_mapped_exe.html',1,'MappedExe']]], + ['mappedexe_22',['mappedexe',['../class_mapped_exe.html#a13b467d7d3f93744f9ea586d72b8102b',1,'MappedExe::MappedExe()'],['../class_mapped_exe.html',1,'MappedExe']]], ['mappedexe_2ecpp_23',['MappedExe.cpp',['../_mapped_exe_8cpp.html',1,'']]], ['mappedexe_2eh_24',['MappedExe.h',['../_mapped_exe_8h.html',1,'']]], ['mappedname_25',['mappedName',['../class_section_hdr_wrapper.html#aa8b26184dc257c0ce603f05ff45c4310',1,'SectionHdrWrapper']]], @@ -39,7 +39,7 @@ var searchData= ['metadatasize_36',['metadataSize',['../class_ld_config_dir_wrapper.html#a921992fbed4ccd0b10ccf35eb13cf125',1,'LdConfigDirWrapper']]], ['minalloc_37',['MINALLOC',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980ab663f26d2a9de5200179f2f4d07be6e5',1,'DosHdrWrapper']]], ['minor_5fruntime_5fver_38',['MINOR_RUNTIME_VER',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a1878ba98eaaf94c5c8afbdc180c9fa67',1,'ClrDirWrapper']]], - ['minor_5fver_39',['MINOR_VER',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca23b02ed23f57ab0d3ccf01ea01141df6',1,'DebugDirEntryWrapper::MINOR_VER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a13bf7b89609646eee07ba0f53a9abd60',1,'ExportDirWrapper::MINOR_VER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aa76dfdd293335dc2409fa0c4dc5a5680',1,'LdConfigDirWrapper::MINOR_VER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aab72d80c68e57e9385c97d572d738517c',1,'ResourceDirWrapper::MINOR_VER']]], + ['minor_5fver_39',['minor_ver',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca23b02ed23f57ab0d3ccf01ea01141df6',1,'DebugDirEntryWrapper::MINOR_VER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a13bf7b89609646eee07ba0f53a9abd60',1,'ExportDirWrapper::MINOR_VER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aa76dfdd293335dc2409fa0c4dc5a5680',1,'LdConfigDirWrapper::MINOR_VER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aab72d80c68e57e9385c97d572d738517c',1,'ResourceDirWrapper::MINOR_VER']]], ['mod_40',['MOD',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa77e5f11a0a737dd5444a5a8c9c82a50b',1,'DelayImpEntryWrapper']]], ['module_5fforwarders_5fnum_41',['MODULE_FORWARDERS_NUM',['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a7d8aaf3c97ddbcbda21069f4bd6dbbf1',1,'BoundEntryWrapper']]], ['module_5fname_5foffset_42',['MODULE_NAME_OFFSET',['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3aae67fb255bd152d7a0e4fe345d052fbc',1,'BoundEntryWrapper']]], diff --git a/search/all_c.js b/search/all_c.js index 0a57c747..d1653c75 100644 --- a/search/all_c.js +++ b/search/all_c.js @@ -1,18 +1,16 @@ var searchData= [ - ['name_0',['NAME',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986abe90c95a7ec5dd5b2352e6f1bbf660f0',1,'ImportEntryWrapper::NAME'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730add44c0f45d60cfc3eed133f50815deaf',1,'SectionHdrWrapper::NAME']]], - ['name_1',['name',['../class_section_hdr_wrapper.html#ac6008396a3cf422cc6a369f638b7b909',1,'SectionHdrWrapper']]], - ['name_2',['NAME',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa9f9a920f0b75abb118b86d05998f0767',1,'DelayImpEntryWrapper']]], - ['name_5fid_5faddr_3',['NAME_ID_ADDR',['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ac5f23d5e6381c0898e6b0269da9cb878',1,'ResourceEntryWrapper']]], - ['name_5frva_4',['NAME_RVA',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a23ea9140ac5c0bbddac0bb0eb09b2208',1,'ExportDirWrapper::NAME_RVA'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065ab2605ea1ef9c96f38c1210f643695353',1,'ExportEntryWrapper::NAME_RVA']]], - ['named_5fentries_5fnum_5',['NAMED_ENTRIES_NUM',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aae439f322aecd72399eba4402630ddcff',1,'ResourceDirWrapper']]], - ['namelenlimit_6',['NameLenLimit',['../class_import_base_entry_wrapper.html#a83e97c3b3a078b79abe1330c9bc6519f',1,'ImportBaseEntryWrapper']]], - ['names_5fnum_7',['NAMES_NUM',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a0974bbb9e618ac71d6978d24a7dee48a',1,'ExportDirWrapper']]], - ['names_5fordinals_5frva_8',['NAMES_ORDINALS_RVA',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a88092af9c6cd349b96e7da750c58f34f',1,'ExportDirWrapper']]], - ['namethunk_5faddr_9',['NAMETHUNK_ADDR',['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246ab2b8e8d90868fc502f6d8d43dac3cf9f',1,'DelayImpFuncWrapper']]], - ['none_10',['NONE',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389ae5d1f7bff52b7c5e0157bec09dcb4b1b',1,'FileHdrWrapper::NONE'],['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac71f5d77ca12a30020289dcecac1b5a9',1,'OptHdrWrapper::NONE'],['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03a2d016aec93e272fb7ed9ea4b0567f57f',1,'RelocBlockWrapper::NONE'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099ba9337da9a4ccb3ae778139ac05a583147',1,'LdConfigEntryWrapper::NONE'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37caa57c30c76e424042b1c78070c434f61f',1,'RelocEntryWrapper::NONE'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aae0ab7803841d6904c6e160cf01d2ccd8',1,'ResourceDirWrapper::NONE'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094a894b6d514551caa532cc56ee73975762',1,'ResourceEntryWrapper::NONE'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a283281a04f3a370a9af1adf7a6c4e306',1,'ResourceLeafWrapper::NONE'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ad2bd4397f0312bc4ab81a10c13d98637',1,'RichHdrWrapper::NONE'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba4fe71bc0442043188bf8f3abbd719711',1,'ResString::NONE'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a8b386c4e7319a656788e1d1394c529b6',1,'ResourceStringsWrapper::NONE'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a994fc43dab04e3017f80247c41b5eade',1,'ResourceVersionWrapper::NONE'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1a9eb30257f6e748d14225bb9cf7bf30e6',1,'SecurityDirWrapper::NONE'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a91d00a7f0e1a7de7e7db33e24806c845',1,'TlsDirWrapper::NONE'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5ea6d445bab258a5f2f3b10f023509e7c42',1,'TlsEntryWrapper::NONE'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa2f68a5210e3980a4730e252aee282a05',1,'WrappedValue::NONE'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca4ba185dac86fd37f140e754c262ecc0b',1,'ImportedFuncWrapper::NONE'],['../class_exe_factory.html#adc59e611b34ce9a0c6888fddd3699715aea38b2736e89a0e473b7d7c63f5d32e6',1,'ExeFactory::NONE'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a876cde1ddb10dffc8a75197955a2c79d',1,'BoundEntryWrapper::NONE'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a14e78b1db5f348f95079472e12939595',1,'ClrDirWrapper::NONE'],['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6a46461b8f43056d6170e714f97a34b80f',1,'DataDirWrapper::NONE'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca8aba8d7d789042b8c78b8c24f70a16ab',1,'DebugDirEntryWrapper::NONE'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5dac4298b7dbc836d7dc3e72440ce194560',1,'DebugDirCVEntryWrapper::NONE'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faac6ae0f1e5fa53a2885b8b270cf5bc7ed',1,'DelayImpEntryWrapper::NONE'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246ad2dedf87872348b4895dbab527371224',1,'DelayImpFuncWrapper::NONE'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980af2d61bd2c183cd5da8334ea428aeac8c',1,'DosHdrWrapper::NONE'],['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faa3c9f6c0e85bf94b86507faa162ae6d75',1,'ExceptionEntryWrapper::NONE'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7af91ce9d5b8d272075427bcb1679ab68d',1,'ExportDirWrapper::NONE'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065a3f5ee786ec709307ac1b19804dbce6be',1,'ExportEntryWrapper::NONE'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a83c3945b970c5015200c08053f815d7d',1,'ImportEntryWrapper::NONE'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a4f02a40f0d4dd710b3a74de0d2b61f50',1,'LdConfigDirWrapper::NONE']]], - ['not_5faddr_11',['NOT_ADDR',['../class_executable.html#a2202e0db9d88f3be2b26fc138ddd3b5ba3f1414297193a39037e1f72a7d46ec2f',1,'Executable']]], - ['nowhitecount_12',['noWhiteCount',['../namespacepe__util.html#a5d0faa3e638d06b8762b1e646c5ee8bb',1,'pe_util::noWhiteCount(char *buf, size_t bufSize)'],['../namespacepe__util.html#ac9d2020d6eb85db1c13823e993139440',1,'pe_util::noWhiteCount(std::string)']]], - ['nt32_13',['nt32',['../class_opt_hdr_wrapper.html#a8da3077340617977fe5940cb732281d1',1,'OptHdrWrapper']]], - ['nt64_14',['nt64',['../class_opt_hdr_wrapper.html#a2b341217f5473600609cfafff148d721',1,'OptHdrWrapper']]] + ['name_0',['name',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986abe90c95a7ec5dd5b2352e6f1bbf660f0',1,'ImportEntryWrapper::NAME'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730add44c0f45d60cfc3eed133f50815deaf',1,'SectionHdrWrapper::NAME'],['../class_section_hdr_wrapper.html#ac6008396a3cf422cc6a369f638b7b909',1,'SectionHdrWrapper::name'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa9f9a920f0b75abb118b86d05998f0767',1,'DelayImpEntryWrapper::NAME']]], + ['name_5fid_5faddr_1',['NAME_ID_ADDR',['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ac5f23d5e6381c0898e6b0269da9cb878',1,'ResourceEntryWrapper']]], + ['name_5frva_2',['name_rva',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a23ea9140ac5c0bbddac0bb0eb09b2208',1,'ExportDirWrapper::NAME_RVA'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065ab2605ea1ef9c96f38c1210f643695353',1,'ExportEntryWrapper::NAME_RVA']]], + ['named_5fentries_5fnum_3',['NAMED_ENTRIES_NUM',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aae439f322aecd72399eba4402630ddcff',1,'ResourceDirWrapper']]], + ['namelenlimit_4',['NameLenLimit',['../class_import_base_entry_wrapper.html#a83e97c3b3a078b79abe1330c9bc6519f',1,'ImportBaseEntryWrapper']]], + ['names_5fnum_5',['NAMES_NUM',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a0974bbb9e618ac71d6978d24a7dee48a',1,'ExportDirWrapper']]], + ['names_5fordinals_5frva_6',['NAMES_ORDINALS_RVA',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a88092af9c6cd349b96e7da750c58f34f',1,'ExportDirWrapper']]], + ['namethunk_5faddr_7',['NAMETHUNK_ADDR',['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246ab2b8e8d90868fc502f6d8d43dac3cf9f',1,'DelayImpFuncWrapper']]], + ['none_8',['none',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389ae5d1f7bff52b7c5e0157bec09dcb4b1b',1,'FileHdrWrapper::NONE'],['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac71f5d77ca12a30020289dcecac1b5a9',1,'OptHdrWrapper::NONE'],['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03a2d016aec93e272fb7ed9ea4b0567f57f',1,'RelocBlockWrapper::NONE'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099ba9337da9a4ccb3ae778139ac05a583147',1,'LdConfigEntryWrapper::NONE'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37caa57c30c76e424042b1c78070c434f61f',1,'RelocEntryWrapper::NONE'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aae0ab7803841d6904c6e160cf01d2ccd8',1,'ResourceDirWrapper::NONE'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094a894b6d514551caa532cc56ee73975762',1,'ResourceEntryWrapper::NONE'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a283281a04f3a370a9af1adf7a6c4e306',1,'ResourceLeafWrapper::NONE'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ad2bd4397f0312bc4ab81a10c13d98637',1,'RichHdrWrapper::NONE'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba4fe71bc0442043188bf8f3abbd719711',1,'ResString::NONE'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a8b386c4e7319a656788e1d1394c529b6',1,'ResourceStringsWrapper::NONE'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a994fc43dab04e3017f80247c41b5eade',1,'ResourceVersionWrapper::NONE'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1a9eb30257f6e748d14225bb9cf7bf30e6',1,'SecurityDirWrapper::NONE'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a91d00a7f0e1a7de7e7db33e24806c845',1,'TlsDirWrapper::NONE'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5ea6d445bab258a5f2f3b10f023509e7c42',1,'TlsEntryWrapper::NONE'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa2f68a5210e3980a4730e252aee282a05',1,'WrappedValue::NONE'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca4ba185dac86fd37f140e754c262ecc0b',1,'ImportedFuncWrapper::NONE'],['../class_exe_factory.html#adc59e611b34ce9a0c6888fddd3699715aea38b2736e89a0e473b7d7c63f5d32e6',1,'ExeFactory::NONE'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a876cde1ddb10dffc8a75197955a2c79d',1,'BoundEntryWrapper::NONE'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a14e78b1db5f348f95079472e12939595',1,'ClrDirWrapper::NONE'],['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6a46461b8f43056d6170e714f97a34b80f',1,'DataDirWrapper::NONE'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca8aba8d7d789042b8c78b8c24f70a16ab',1,'DebugDirEntryWrapper::NONE'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5dac4298b7dbc836d7dc3e72440ce194560',1,'DebugDirCVEntryWrapper::NONE'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faac6ae0f1e5fa53a2885b8b270cf5bc7ed',1,'DelayImpEntryWrapper::NONE'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246ad2dedf87872348b4895dbab527371224',1,'DelayImpFuncWrapper::NONE'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980af2d61bd2c183cd5da8334ea428aeac8c',1,'DosHdrWrapper::NONE'],['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faa3c9f6c0e85bf94b86507faa162ae6d75',1,'ExceptionEntryWrapper::NONE'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7af91ce9d5b8d272075427bcb1679ab68d',1,'ExportDirWrapper::NONE'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065a3f5ee786ec709307ac1b19804dbce6be',1,'ExportEntryWrapper::NONE'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a83c3945b970c5015200c08053f815d7d',1,'ImportEntryWrapper::NONE'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a4f02a40f0d4dd710b3a74de0d2b61f50',1,'LdConfigDirWrapper::NONE']]], + ['not_5faddr_9',['NOT_ADDR',['../class_executable.html#a2202e0db9d88f3be2b26fc138ddd3b5ba3f1414297193a39037e1f72a7d46ec2f',1,'Executable']]], + ['nowhitecount_10',['nowhitecount',['../namespacepe__util.html#a5d0faa3e638d06b8762b1e646c5ee8bb',1,'pe_util::noWhiteCount(char *buf, size_t bufSize)'],['../namespacepe__util.html#ac9d2020d6eb85db1c13823e993139440',1,'pe_util::noWhiteCount(std::string)']]], + ['nt32_11',['nt32',['../class_opt_hdr_wrapper.html#a8da3077340617977fe5940cb732281d1',1,'OptHdrWrapper']]], + ['nt64_12',['nt64',['../class_opt_hdr_wrapper.html#a2b341217f5473600609cfafff148d721',1,'OptHdrWrapper']]] ]; diff --git a/search/all_d.js b/search/all_d.js index a1ad0a29..2d72950a 100644 --- a/search/all_d.js +++ b/search/all_d.js @@ -5,14 +5,14 @@ var searchData= ['offset_2',['offset',['../class_buffer_view.html#a3334df39474d78ab0ff2d208e38aab66',1,'BufferView::offset'],['../class_resource_leaf_wrapper.html#a4c4cb064777eb478a72142f92cfd449e',1,'ResourceLeafWrapper::offset'],['../class_res_string.html#a9b09eb92c820f6945a4540938c188da5',1,'ResString::offset']]], ['offset_5fmax_3',['OFFSET_MAX',['../_abstract_byte_buffer_8h.html#a1c38207b963b6be8f5f125ae1eaa231c',1,'AbstractByteBuffer.h']]], ['offset_5ft_4',['offset_t',['../_abstract_byte_buffer_8h.html#aea96e09e4ebfca2845a36a4d9882f7f6',1,'AbstractByteBuffer.h']]], - ['offset_5fto_5fdata_5',['OFFSET_TO_DATA',['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ae9c5bc4371ade736f5c18e2d3ff44d3a',1,'ResourceEntryWrapper::OFFSET_TO_DATA'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1ac8e8bfa8e2fdd2e54becc4c495e2c247',1,'ResourceLeafWrapper::OFFSET_TO_DATA']]], + ['offset_5fto_5fdata_5',['offset_to_data',['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ae9c5bc4371ade736f5c18e2d3ff44d3a',1,'ResourceEntryWrapper::OFFSET_TO_DATA'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1ac8e8bfa8e2fdd2e54becc4c495e2c247',1,'ResourceLeafWrapper::OFFSET_TO_DATA']]], ['operator_5b_5d_6',['operator[]',['../class_abstract_byte_buffer.html#abe753ded9eb9cb7495c37050d0ed8a5e',1,'AbstractByteBuffer::operator[]()'],['../class_abstract_formatter.html#a53099d0eb6374a39ff83bcf90b1aa41e',1,'AbstractFormatter::operator[]()'],['../class_formatter.html#a5e1a806e1a1bebdab3a08736d8a10990',1,'Formatter::operator[]()']]], ['opt32_7',['opt32',['../class_opt_hdr_wrapper.html#a47d8da971d1e085b9e8e1958f5965058',1,'OptHdrWrapper::opt32'],['../class_p_e_core.html#a78e7bc74699074938bb07d6e17aee1eb',1,'PECore::opt32']]], ['opt64_8',['opt64',['../class_p_e_core.html#ad28c19fee0317e4986f322f8fad4c97a',1,'PECore::opt64'],['../class_opt_hdr_wrapper.html#a4261c57fc2195a29207b1a1ae6716b46',1,'OptHdrWrapper::opt64']]], ['opthdr_9',['optHdr',['../class_p_e_file.html#a751a81dedb00cad24d969b05e02cf97b',1,'PEFile']]], ['opthdr_5fsize_10',['OPTHDR_SIZE',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a5da8c34f8163ba4adc382d8b716ef9d9',1,'FileHdrWrapper']]], ['opthdrfid_11',['OptHdrFID',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013',1,'OptHdrWrapper']]], - ['opthdrwrapper_12',['OptHdrWrapper',['../class_opt_hdr_wrapper.html',1,'OptHdrWrapper'],['../class_opt_hdr_wrapper.html#a7cde8b941af7eb4407d278f0a7b18727',1,'OptHdrWrapper::OptHdrWrapper()']]], + ['opthdrwrapper_12',['opthdrwrapper',['../class_opt_hdr_wrapper.html',1,'OptHdrWrapper'],['../class_opt_hdr_wrapper.html#a7cde8b941af7eb4407d278f0a7b18727',1,'OptHdrWrapper::OptHdrWrapper()']]], ['opthdrwrapper_2ecpp_13',['OptHdrWrapper.cpp',['../_opt_hdr_wrapper_8cpp.html',1,'']]], ['opthdrwrapper_2eh_14',['OptHdrWrapper.h',['../_opt_hdr_wrapper_8h.html',1,'']]], ['ord_5fnames_15',['ord_names',['../class_common_ordinals_map.html#ae6a3ed44ab14b878f2c3e9319fccf437',1,'CommonOrdinalsMap']]], diff --git a/search/all_e.js b/search/all_e.js index 71db44e7..8f7829e5 100644 --- a/search/all_e.js +++ b/search/all_e.js @@ -5,30 +5,30 @@ var searchData= ['parent_2',['parent',['../class_buffer_view.html#a9f2689c51aa106a822cdde9fd46cb7a9',1,'BufferView']]], ['parentnode_3',['parentNode',['../class_exe_node_wrapper.html#a9c3516076bbc1fd16c9222fb56e36f57',1,'ExeNodeWrapper']]], ['parsedsize_4',['parsedSize',['../class_resource_strings_wrapper.html#a9dcea50718f26303d42a6ba217d62080',1,'ResourceStringsWrapper']]], - ['parserexception_5',['ParserException',['../class_parser_exception.html#a87bf9bea4b361a4f8d09895dc49ccde8',1,'ParserException::ParserException()'],['../class_parser_exception.html',1,'ParserException']]], + ['parserexception_5',['parserexception',['../class_parser_exception.html#a87bf9bea4b361a4f8d09895dc49ccde8',1,'ParserException::ParserException()'],['../class_parser_exception.html',1,'ParserException']]], ['pastebuffer_6',['pasteBuffer',['../class_abstract_byte_buffer.html#a879558945e14b82e6345dd47f25140c1',1,'AbstractByteBuffer']]], ['pe_7',['PE',['../class_exe_factory.html#adc59e611b34ce9a0c6888fddd3699715ad88dc484a3f82b26e5ef4e90857e4362',1,'ExeFactory']]], ['pe_2eh_8',['pe.h',['../pe_8h.html',1,'']]], ['pe_5frsrc_2eh_9',['pe_rsrc.h',['../pe__rsrc_8h.html',1,'']]], ['pe_5futil_10',['pe_util',['../namespacepe__util.html',1,'']]], - ['pecore_11',['PECore',['../class_p_e_core.html',1,'PECore'],['../class_p_e_core.html#a9d10fffb2dd077f43b0e02eaacb8064c',1,'PECore::PECore()']]], + ['pecore_11',['pecore',['../class_p_e_core.html',1,'PECore'],['../class_p_e_core.html#a9d10fffb2dd077f43b0e02eaacb8064c',1,'PECore::PECore()']]], ['pecore_2ecpp_12',['PECore.cpp',['../_p_e_core_8cpp.html',1,'']]], ['pecore_2eh_13',['PECore.h',['../_p_e_core_8h.html',1,'']]], ['pedatadiroffset_14',['peDataDirOffset',['../class_p_e_file.html#a333e4ee6d015fd59630b1ebe2b6d2307',1,'PEFile']]], - ['peelementwrapper_15',['PEElementWrapper',['../class_p_e_element_wrapper.html#a27653bb6e16743105c6a3211b11274e0',1,'PEElementWrapper::PEElementWrapper()'],['../class_p_e_element_wrapper.html',1,'PEElementWrapper']]], - ['pefile_16',['PEFile',['../class_data_dir_entry_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'DataDirEntryWrapper::PEFile'],['../class_p_e_core.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PECore::PEFile'],['../class_p_e_element_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PEElementWrapper::PEFile'],['../class_p_e_node_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PENodeWrapper::PEFile'],['../class_section_hdr_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'SectionHdrWrapper::PEFile'],['../class_p_e_file.html#ac56e1d69640d7133583e3599021a6662',1,'PEFile::PEFile()'],['../class_p_e_file.html',1,'PEFile']]], + ['peelementwrapper_15',['peelementwrapper',['../class_p_e_element_wrapper.html#a27653bb6e16743105c6a3211b11274e0',1,'PEElementWrapper::PEElementWrapper()'],['../class_p_e_element_wrapper.html',1,'PEElementWrapper']]], + ['pefile_16',['pefile',['../class_data_dir_entry_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'DataDirEntryWrapper::PEFile'],['../class_p_e_core.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PECore::PEFile'],['../class_p_e_element_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PEElementWrapper::PEFile'],['../class_p_e_node_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PENodeWrapper::PEFile'],['../class_section_hdr_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'SectionHdrWrapper::PEFile'],['../class_p_e_file.html#ac56e1d69640d7133583e3599021a6662',1,'PEFile::PEFile()'],['../class_p_e_file.html',1,'PEFile']]], ['pefile_2ecpp_17',['PEFile.cpp',['../_p_e_file_8cpp.html',1,'']]], ['pefile_2eh_18',['PEFile.h',['../_p_e_file_8h.html',1,'']]], - ['pefilebuilder_19',['PEFileBuilder',['../class_p_e_file_builder.html',1,'PEFileBuilder'],['../class_p_e_file_builder.html#a45fd170cbdd43ed35697b42946130eb4',1,'PEFileBuilder::PEFileBuilder()']]], - ['pefilehdroffset_20',['peFileHdrOffset',['../class_p_e_core.html#a809ce6d61e968f409e6d630514b224bb',1,'PECore::peFileHdrOffset()'],['../class_p_e_file.html#a1bce6b846bd7e24d5aae0b15af67f58a',1,'PEFile::peFileHdrOffset()']]], - ['penodewrapper_21',['PENodeWrapper',['../class_p_e_node_wrapper.html',1,'PENodeWrapper'],['../class_p_e_node_wrapper.html#a313df66e81dfce411fa83d0ebc08c935',1,'PENodeWrapper::PENodeWrapper(PEFile *pe, PENodeWrapper *parent=NULL)'],['../class_p_e_node_wrapper.html#a236303f92c7a56aa3cfaeaae958f9b6b',1,'PENodeWrapper::PENodeWrapper(PEFile *pe, PENodeWrapper *parent, size_t entryNumber)']]], + ['pefilebuilder_19',['pefilebuilder',['../class_p_e_file_builder.html',1,'PEFileBuilder'],['../class_p_e_file_builder.html#a45fd170cbdd43ed35697b42946130eb4',1,'PEFileBuilder::PEFileBuilder()']]], + ['pefilehdroffset_20',['pefilehdroffset',['../class_p_e_core.html#a809ce6d61e968f409e6d630514b224bb',1,'PECore::peFileHdrOffset()'],['../class_p_e_file.html#a1bce6b846bd7e24d5aae0b15af67f58a',1,'PEFile::peFileHdrOffset()']]], + ['penodewrapper_21',['penodewrapper',['../class_p_e_node_wrapper.html',1,'PENodeWrapper'],['../class_p_e_node_wrapper.html#a313df66e81dfce411fa83d0ebc08c935',1,'PENodeWrapper::PENodeWrapper(PEFile *pe, PENodeWrapper *parent=NULL)'],['../class_p_e_node_wrapper.html#a236303f92c7a56aa3cfaeaae958f9b6b',1,'PENodeWrapper::PENodeWrapper(PEFile *pe, PENodeWrapper *parent, size_t entryNumber)']]], ['penodewrapper_2ecpp_22',['PENodeWrapper.cpp',['../_p_e_node_wrapper_8cpp.html',1,'']]], ['penodewrapper_2eh_23',['PENodeWrapper.h',['../_p_e_node_wrapper_8h.html',1,'']]], ['penthdroffset_24',['peNtHdrOffset',['../class_p_e_file.html#aca1ded6302c26c4d25cd1f2dcedf737b',1,'PEFile']]], - ['pentheaderssize_25',['peNtHeadersSize',['../class_p_e_file.html#a2591ddf9ec68450e67c875625b190821',1,'PEFile::peNtHeadersSize()'],['../class_p_e_core.html#aa9c0035f661485e8c24fc548a0a233c1',1,'PECore::peNtHeadersSize() const']]], - ['peopthdroffset_26',['peOptHdrOffset',['../class_p_e_core.html#a6bf58c2b373385ac5ce05aa676dc43b7',1,'PECore::peOptHdrOffset()'],['../class_p_e_file.html#a8923acc72bb12a868e0da26ddf8abbf9',1,'PEFile::peOptHdrOffset()']]], + ['pentheaderssize_25',['pentheaderssize',['../class_p_e_file.html#a2591ddf9ec68450e67c875625b190821',1,'PEFile::peNtHeadersSize()'],['../class_p_e_core.html#aa9c0035f661485e8c24fc548a0a233c1',1,'PECore::peNtHeadersSize() const']]], + ['peopthdroffset_26',['peopthdroffset',['../class_p_e_core.html#a6bf58c2b373385ac5ce05aa676dc43b7',1,'PECore::peOptHdrOffset()'],['../class_p_e_file.html#a8923acc72bb12a868e0da26ddf8abbf9',1,'PEFile::peOptHdrOffset()']]], ['peparentnode_27',['peParentNode',['../class_p_e_node_wrapper.html#aa7b05b302e7fcccefec832b72d135a78',1,'PENodeWrapper']]], - ['pesignatureoffset_28',['peSignatureOffset',['../class_d_o_s_exe.html#a76084023f6d740e836149a0f7c04b5fe',1,'DOSExe::peSignatureOffset()'],['../class_p_e_core.html#aa2ff4665d8b56b2a5e1e1e00bc446b18',1,'PECore::peSignatureOffset()']]], + ['pesignatureoffset_28',['pesignatureoffset',['../class_d_o_s_exe.html#a76084023f6d740e836149a0f7c04b5fe',1,'DOSExe::peSignatureOffset()'],['../class_p_e_core.html#aa2ff4665d8b56b2a5e1e1e00bc446b18',1,'PECore::peSignatureOffset()']]], ['printsectionsmapping_29',['printSectionsMapping',['../class_sect_hdrs_wrapper.html#a3130c9344561fe2397036d51293cd315',1,'SectHdrsWrapper']]], ['proc_5faff_5fmask32_30',['PROC_AFF_MASK32',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45ae85c8147efa80bbb2bb56572f0775cba',1,'LdConfigDirWrapper']]], ['proc_5fheap_5fflags32_31',['PROC_HEAP_FLAGS32',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a1908a79356fba2941d7c7d0c3d299241',1,'LdConfigDirWrapper']]], diff --git a/search/all_f.js b/search/all_f.js index 4380b2f5..ec92105c 100644 --- a/search/all_f.js +++ b/search/all_f.js @@ -3,22 +3,22 @@ var searchData= ['raw_0',['RAW',['../class_executable.html#a2202e0db9d88f3be2b26fc138ddd3b5badb8a64acd3f74166ea450698d025db3b',1,'Executable']]], ['raw_5fdata_5faddr_1',['RAW_DATA_ADDR',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768cae2e700d6fd3694ac11bd7b7fb23adf6f',1,'DebugDirEntryWrapper']]], ['raw_5fdata_5fptr_2',['RAW_DATA_PTR',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca0d6168884820bf465cb591591c55b868',1,'DebugDirEntryWrapper']]], - ['rawtorva_3',['rawToRva',['../class_executable.html#a8ea6a55050fe8242f94e830cac77c483',1,'Executable::rawToRva()'],['../class_d_o_s_exe.html#ac4417e47e4af170c9d9a8c72fbd32937',1,'DOSExe::rawToRva()'],['../class_p_e_file.html#aaf80a2d2b2d7e9b87e0edf79dcf19f42',1,'PEFile::rawToRva()']]], + ['rawtorva_3',['rawtorva',['../class_executable.html#a8ea6a55050fe8242f94e830cac77c483',1,'Executable::rawToRva()'],['../class_d_o_s_exe.html#ac4417e47e4af170c9d9a8c72fbd32937',1,'DOSExe::rawToRva()'],['../class_p_e_file.html#aaf80a2d2b2d7e9b87e0edf79dcf19f42',1,'PEFile::rawToRva()']]], ['read_4',['read',['../class_abstract_file_buffer.html#acfe88940b215a54b9e514a0fb8146781',1,'AbstractFileBuffer::read(QString &file, bufsize_t minBufSize, const bool allowTruncate)'],['../class_abstract_file_buffer.html#aa7315240b434b114bb5b935746f27b69',1,'AbstractFileBuffer::read(QFile &fIn, bufsize_t minBufSize, const bool allowTruncate)']]], - ['reloadmapping_5',['reloadMapping',['../class_exe_node_wrapper.html#a659e73a1d597a93ae7dd31cf7e98f23a',1,'ExeNodeWrapper::reloadMapping()'],['../class_import_base_dir_wrapper.html#a736fac50c585752a8c8b6cb85ef9c9d3',1,'ImportBaseDirWrapper::reloadMapping()'],['../class_sect_hdrs_wrapper.html#a7cf7f2fd77bab1e52b044c5f77e439ad',1,'SectHdrsWrapper::reloadMapping()']]], + ['reloadmapping_5',['reloadmapping',['../class_exe_node_wrapper.html#a659e73a1d597a93ae7dd31cf7e98f23a',1,'ExeNodeWrapper::reloadMapping()'],['../class_import_base_dir_wrapper.html#a736fac50c585752a8c8b6cb85ef9c9d3',1,'ImportBaseDirWrapper::reloadMapping()'],['../class_sect_hdrs_wrapper.html#a7cf7f2fd77bab1e52b044c5f77e439ad',1,'SectHdrsWrapper::reloadMapping()']]], ['reloadname_6',['reloadName',['../class_section_hdr_wrapper.html#a3a97c0c870be0be28a7425142338a55e',1,'SectionHdrWrapper']]], ['reloc_7',['reloc',['../class_reloc_dir_wrapper.html#a9c0949d9331d8bc2376736732491fbfc',1,'RelocDirWrapper']]], ['reloc_5fentry_5fval_8',['RELOC_ENTRY_VAL',['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37ca97433c0cb900e62cbe741e4de7a46480',1,'RelocEntryWrapper']]], ['reloc_5fnum_9',['RELOC_NUM',['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730ae5de568545f864bc9fb1f1be9f5b69ce',1,'SectionHdrWrapper']]], ['reloc_5fptr_10',['RELOC_PTR',['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730a301b90a5d811d3e7cd8f69ecc2451ff3',1,'SectionHdrWrapper']]], ['relocblockfid_11',['RelocBlockFID',['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03',1,'RelocBlockWrapper']]], - ['relocblockwrapper_12',['RelocBlockWrapper',['../class_reloc_dir_wrapper.html#a34f3d7dd0d1515c570621828bd1d7b7a',1,'RelocDirWrapper::RelocBlockWrapper'],['../class_reloc_block_wrapper.html#a6dfd0ada972f9de522390a454c14d121',1,'RelocBlockWrapper::RelocBlockWrapper()'],['../class_reloc_block_wrapper.html',1,'RelocBlockWrapper']]], - ['relocdirwrapper_13',['RelocDirWrapper',['../class_reloc_dir_wrapper.html#a890a07b3d56bc36a526c1b5a73e2073c',1,'RelocDirWrapper::RelocDirWrapper()'],['../class_reloc_dir_wrapper.html',1,'RelocDirWrapper']]], + ['relocblockwrapper_12',['relocblockwrapper',['../class_reloc_dir_wrapper.html#a34f3d7dd0d1515c570621828bd1d7b7a',1,'RelocDirWrapper::RelocBlockWrapper'],['../class_reloc_block_wrapper.html#a6dfd0ada972f9de522390a454c14d121',1,'RelocBlockWrapper::RelocBlockWrapper()'],['../class_reloc_block_wrapper.html',1,'RelocBlockWrapper']]], + ['relocdirwrapper_13',['relocdirwrapper',['../class_reloc_dir_wrapper.html#a890a07b3d56bc36a526c1b5a73e2073c',1,'RelocDirWrapper::RelocDirWrapper()'],['../class_reloc_dir_wrapper.html',1,'RelocDirWrapper']]], ['relocdirwrapper_2ecpp_14',['RelocDirWrapper.cpp',['../_reloc_dir_wrapper_8cpp.html',1,'']]], ['relocdirwrapper_2eh_15',['RelocDirWrapper.h',['../_reloc_dir_wrapper_8h.html',1,'']]], - ['relocentrywrapper_16',['RelocEntryWrapper',['../class_reloc_entry_wrapper.html#a9fd90e5423cd5d01b4fbd494976f1fa3',1,'RelocEntryWrapper::RelocEntryWrapper()'],['../class_reloc_entry_wrapper.html',1,'RelocEntryWrapper']]], - ['reourcehtmlwrapper_17',['ReourceHTMLWrapper',['../class_reource_h_t_m_l_wrapper.html#ab7c2350ca773b5323b763cca55b89f1a',1,'ReourceHTMLWrapper::ReourceHTMLWrapper()'],['../class_reource_h_t_m_l_wrapper.html',1,'ReourceHTMLWrapper']]], - ['reourcemanifestwrapper_18',['ReourceManifestWrapper',['../class_reource_manifest_wrapper.html',1,'ReourceManifestWrapper'],['../class_reource_manifest_wrapper.html#a922598f6cba397e5df07e6f6757ed9e5',1,'ReourceManifestWrapper::ReourceManifestWrapper()']]], + ['relocentrywrapper_16',['relocentrywrapper',['../class_reloc_entry_wrapper.html#a9fd90e5423cd5d01b4fbd494976f1fa3',1,'RelocEntryWrapper::RelocEntryWrapper()'],['../class_reloc_entry_wrapper.html',1,'RelocEntryWrapper']]], + ['reourcehtmlwrapper_17',['reourcehtmlwrapper',['../class_reource_h_t_m_l_wrapper.html#ab7c2350ca773b5323b763cca55b89f1a',1,'ReourceHTMLWrapper::ReourceHTMLWrapper()'],['../class_reource_h_t_m_l_wrapper.html',1,'ReourceHTMLWrapper']]], + ['reourcemanifestwrapper_18',['reourcemanifestwrapper',['../class_reource_manifest_wrapper.html',1,'ReourceManifestWrapper'],['../class_reource_manifest_wrapper.html#a922598f6cba397e5df07e6f6757ed9e5',1,'ReourceManifestWrapper::ReourceManifestWrapper()']]], ['res_19',['RES',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980ac04f355a702130b0a18489a06dde2938',1,'DosHdrWrapper']]], ['res2_20',['RES2',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980afe8a1ce6486c538849b079deacbf1d55',1,'DosHdrWrapper']]], ['reserved_21',['RESERVED',['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a9a4ae215b9b8540ad21fe3bdd3502252',1,'ResourceLeafWrapper']]], @@ -26,38 +26,38 @@ var searchData= ['reserved3_23',['RESERVED3',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45ace66390b29be694b6ec08a348131a4be',1,'LdConfigDirWrapper']]], ['reset_24',['reset',['../class_p_e_core.html#a91d89cd5d9f8b6f84c6eab5b195dc1ec',1,'PECore']]], ['resize_25',['resize',['../class_mapped_exe.html#a48c66e1ace578bb506e5beb7f1b661cc',1,'MappedExe::resize()'],['../class_file_buffer.html#ac0170f40d7df0b65b416937fe46f066e',1,'FileBuffer::resize()'],['../class_executable.html#ab87eef44bb2ba2cdd64f830d7f067d31',1,'Executable::resize()'],['../class_byte_buffer.html#ab92692d610d9138a850e0cd04bef69d2',1,'ByteBuffer::resize()'],['../class_abstract_byte_buffer.html#ac1710ac29680e17156a74a3618fe35f2',1,'AbstractByteBuffer::resize()']]], - ['resourcecontentfactory_26',['ResourceContentFactory',['../class_resource_content_factory.html',1,'ResourceContentFactory'],['../class_resource_content_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceContentWrapper::ResourceContentFactory'],['../class_reource_manifest_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ReourceManifestWrapper::ResourceContentFactory'],['../class_reource_h_t_m_l_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ReourceHTMLWrapper::ResourceContentFactory'],['../class_resource_strings_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceStringsWrapper::ResourceContentFactory'],['../class_resource_version_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceVersionWrapper::ResourceContentFactory']]], + ['resourcecontentfactory_26',['resourcecontentfactory',['../class_resource_content_factory.html',1,'ResourceContentFactory'],['../class_resource_content_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceContentWrapper::ResourceContentFactory'],['../class_reource_manifest_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ReourceManifestWrapper::ResourceContentFactory'],['../class_reource_h_t_m_l_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ReourceHTMLWrapper::ResourceContentFactory'],['../class_resource_strings_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceStringsWrapper::ResourceContentFactory'],['../class_resource_version_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceVersionWrapper::ResourceContentFactory']]], ['resourcecontentfactory_2ecpp_27',['ResourceContentFactory.cpp',['../_resource_content_factory_8cpp.html',1,'']]], ['resourcecontentfactory_2eh_28',['ResourceContentFactory.h',['../_resource_content_factory_8h.html',1,'']]], - ['resourcecontentwrapper_29',['ResourceContentWrapper',['../class_resource_content_wrapper.html',1,'ResourceContentWrapper'],['../class_resource_content_wrapper.html#a0a191f56c69c5a5e9cdb4e272bf03912',1,'ResourceContentWrapper::ResourceContentWrapper()']]], + ['resourcecontentwrapper_29',['resourcecontentwrapper',['../class_resource_content_wrapper.html',1,'ResourceContentWrapper'],['../class_resource_content_wrapper.html#a0a191f56c69c5a5e9cdb4e272bf03912',1,'ResourceContentWrapper::ResourceContentWrapper()']]], ['resourcecontentwrapper_2ecpp_30',['ResourceContentWrapper.cpp',['../_resource_content_wrapper_8cpp.html',1,'']]], ['resourcecontentwrapper_2eh_31',['ResourceContentWrapper.h',['../_resource_content_wrapper_8h.html',1,'']]], ['resourcedirfid_32',['ResourceDirFID',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56a',1,'ResourceDirWrapper']]], - ['resourcedirwrapper_33',['ResourceDirWrapper',['../class_resource_dir_wrapper.html',1,'ResourceDirWrapper'],['../class_resource_dir_wrapper.html#a1601df2ad50ec285a1787c0704d553f4',1,'ResourceDirWrapper::ResourceDirWrapper()']]], + ['resourcedirwrapper_33',['resourcedirwrapper',['../class_resource_dir_wrapper.html',1,'ResourceDirWrapper'],['../class_resource_dir_wrapper.html#a1601df2ad50ec285a1787c0704d553f4',1,'ResourceDirWrapper::ResourceDirWrapper()']]], ['resourcedirwrapper_2ecpp_34',['ResourceDirWrapper.cpp',['../_resource_dir_wrapper_8cpp.html',1,'']]], ['resourcedirwrapper_2eh_35',['ResourceDirWrapper.h',['../_resource_dir_wrapper_8h.html',1,'']]], - ['resourceentrywrapper_36',['ResourceEntryWrapper',['../class_resource_entry_wrapper.html',1,'ResourceEntryWrapper'],['../class_resource_entry_wrapper.html#ad94889f542bc6271b439df8f4df53eee',1,'ResourceEntryWrapper::ResourceEntryWrapper()']]], - ['resourcefid_37',['ResourceFID',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928',1,'ResourceVersionWrapper::ResourceFID'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2',1,'ResourceStringsWrapper::ResourceFID'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899b',1,'ResString::ResourceFID']]], - ['resourceleafwrapper_38',['ResourceLeafWrapper',['../class_resource_leaf_wrapper.html#a9e23624a774a13a0836fbe34780f4630',1,'ResourceLeafWrapper::ResourceLeafWrapper()'],['../class_resource_leaf_wrapper.html',1,'ResourceLeafWrapper']]], + ['resourceentrywrapper_36',['resourceentrywrapper',['../class_resource_entry_wrapper.html',1,'ResourceEntryWrapper'],['../class_resource_entry_wrapper.html#ad94889f542bc6271b439df8f4df53eee',1,'ResourceEntryWrapper::ResourceEntryWrapper()']]], + ['resourcefid_37',['resourcefid',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928',1,'ResourceVersionWrapper::ResourceFID'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2',1,'ResourceStringsWrapper::ResourceFID'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899b',1,'ResString::ResourceFID']]], + ['resourceleafwrapper_38',['resourceleafwrapper',['../class_resource_leaf_wrapper.html#a9e23624a774a13a0836fbe34780f4630',1,'ResourceLeafWrapper::ResourceLeafWrapper()'],['../class_resource_leaf_wrapper.html',1,'ResourceLeafWrapper']]], ['resourceleafwrapper_2eh_39',['ResourceLeafWrapper.h',['../_resource_leaf_wrapper_8h.html',1,'']]], ['resources_5fsize_40',['RESOURCES_SIZE',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987aadcf2d4df5d3e68f64ec2bd2ebfb6725',1,'ClrDirWrapper']]], ['resources_5fva_41',['RESOURCES_VA',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987afe5cb5af8fe28ef89ad4ed4e6fbe6afa',1,'ClrDirWrapper']]], - ['resourcesalbum_42',['ResourcesAlbum',['../class_resources_album.html#a0e65c9b299e6b9ec7c644f9849c4fe81',1,'ResourcesAlbum::ResourcesAlbum()'],['../class_resource_strings_wrapper.html#ae2e16b38aa4a3547e0192445022318e2',1,'ResourceStringsWrapper::ResourcesAlbum'],['../class_resources_album.html',1,'ResourcesAlbum']]], + ['resourcesalbum_42',['resourcesalbum',['../class_resources_album.html#a0e65c9b299e6b9ec7c644f9849c4fe81',1,'ResourcesAlbum::ResourcesAlbum()'],['../class_resource_strings_wrapper.html#ae2e16b38aa4a3547e0192445022318e2',1,'ResourceStringsWrapper::ResourcesAlbum'],['../class_resources_album.html',1,'ResourcesAlbum']]], ['resourcesalbum_2ecpp_43',['ResourcesAlbum.cpp',['../_resources_album_8cpp.html',1,'']]], ['resourcesalbum_2eh_44',['ResourcesAlbum.h',['../_resources_album_8h.html',1,'']]], - ['resourcescontainer_45',['ResourcesContainer',['../class_resources_container.html#adc03e9c3ad599952c22df323649070be',1,'ResourcesContainer::ResourcesContainer()'],['../class_resources_container.html',1,'ResourcesContainer']]], - ['resourcestringswrapper_46',['ResourceStringsWrapper',['../class_resource_strings_wrapper.html#a25b72c8ff9142caaa3ee283358924962',1,'ResourceStringsWrapper::ResourceStringsWrapper()'],['../class_resource_strings_wrapper.html',1,'ResourceStringsWrapper']]], + ['resourcescontainer_45',['resourcescontainer',['../class_resources_container.html#adc03e9c3ad599952c22df323649070be',1,'ResourcesContainer::ResourcesContainer()'],['../class_resources_container.html',1,'ResourcesContainer']]], + ['resourcestringswrapper_46',['resourcestringswrapper',['../class_resource_strings_wrapper.html#a25b72c8ff9142caaa3ee283358924962',1,'ResourceStringsWrapper::ResourceStringsWrapper()'],['../class_resource_strings_wrapper.html',1,'ResourceStringsWrapper']]], ['resourcestringswrapper_2ecpp_47',['ResourceStringsWrapper.cpp',['../_resource_strings_wrapper_8cpp.html',1,'']]], ['resourcestringswrapper_2eh_48',['ResourceStringsWrapper.h',['../_resource_strings_wrapper_8h.html',1,'']]], - ['resourceversionwrapper_49',['ResourceVersionWrapper',['../class_resource_version_wrapper.html',1,'ResourceVersionWrapper'],['../class_resource_version_wrapper.html#a74b01a4d91d77408fdd3224ef8298b7e',1,'ResourceVersionWrapper::ResourceVersionWrapper()']]], + ['resourceversionwrapper_49',['resourceversionwrapper',['../class_resource_version_wrapper.html',1,'ResourceVersionWrapper'],['../class_resource_version_wrapper.html#a74b01a4d91d77408fdd3224ef8298b7e',1,'ResourceVersionWrapper::ResourceVersionWrapper()']]], ['resourceversionwrapper_2ecpp_50',['ResourceVersionWrapper.cpp',['../_resource_version_wrapper_8cpp.html',1,'']]], ['resourceversionwrapper_2eh_51',['ResourceVersionWrapper.h',['../_resource_version_wrapper_8h.html',1,'']]], - ['resstring_52',['ResString',['../class_res_string.html',1,'ResString'],['../class_res_string.html#afd4f14a99df2437551aee24c0e23cf98',1,'ResString::ResString()']]], + ['resstring_52',['resstring',['../class_res_string.html',1,'ResString'],['../class_res_string.html#afd4f14a99df2437551aee24c0e23cf98',1,'ResString::ResString()']]], ['revision_53',['REVISION',['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1aba11d88107b8938d4bd22da2ccdb73b0',1,'SecurityDirWrapper']]], ['rich_5fid_54',['RICH_ID',['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ac83415d46b4fd516df994e8c86783098',1,'RichHdrWrapper']]], - ['richhdr_5fprodidtovsversion_55',['RichHdr_ProdIdToVSversion',['../_rich_hdr_wrapper_8cpp.html#af2c1239be431508bb71268fd12d19b5e',1,'RichHdr_ProdIdToVSversion(WORD i): RichHdrWrapper.cpp'],['../_rich_hdr_wrapper_8h.html#a913fc8d543723ac58e3879467e443e3b',1,'RichHdr_ProdIdToVSversion(WORD prodId): RichHdrWrapper.cpp']]], - ['richhdr_5ftranslateprodid_56',['RichHdr_translateProdId',['../_rich_hdr_wrapper_8cpp.html#a744aac9fc84622b590219bd10edc085f',1,'RichHdr_translateProdId(WORD prodId): RichHdrWrapper.cpp'],['../_rich_hdr_wrapper_8h.html#a744aac9fc84622b590219bd10edc085f',1,'RichHdr_translateProdId(WORD prodId): RichHdrWrapper.cpp']]], - ['richhdrwrapper_57',['RichHdrWrapper',['../class_rich_hdr_wrapper.html#a442f58b906a6d2e82cb919a7ee3d69f3',1,'RichHdrWrapper::RichHdrWrapper()'],['../class_rich_hdr_wrapper.html',1,'RichHdrWrapper']]], + ['richhdr_5fprodidtovsversion_55',['richhdr_prodidtovsversion',['../_rich_hdr_wrapper_8cpp.html#af2c1239be431508bb71268fd12d19b5e',1,'RichHdr_ProdIdToVSversion(WORD i): RichHdrWrapper.cpp'],['../_rich_hdr_wrapper_8h.html#a913fc8d543723ac58e3879467e443e3b',1,'RichHdr_ProdIdToVSversion(WORD prodId): RichHdrWrapper.cpp']]], + ['richhdr_5ftranslateprodid_56',['richhdr_translateprodid',['../_rich_hdr_wrapper_8cpp.html#a744aac9fc84622b590219bd10edc085f',1,'RichHdr_translateProdId(WORD prodId): RichHdrWrapper.cpp'],['../_rich_hdr_wrapper_8h.html#a744aac9fc84622b590219bd10edc085f',1,'RichHdr_translateProdId(WORD prodId): RichHdrWrapper.cpp']]], + ['richhdrwrapper_57',['richhdrwrapper',['../class_rich_hdr_wrapper.html#a442f58b906a6d2e82cb919a7ee3d69f3',1,'RichHdrWrapper::RichHdrWrapper()'],['../class_rich_hdr_wrapper.html',1,'RichHdrWrapper']]], ['richhdrwrapper_2ecpp_58',['RichHdrWrapper.cpp',['../_rich_hdr_wrapper_8cpp.html',1,'']]], ['richhdrwrapper_2eh_59',['RichHdrWrapper.h',['../_rich_hdr_wrapper_8h.html',1,'']]], ['richsign_60',['richSign',['../class_rich_hdr_wrapper.html#ac97737fa98d53212bf594e4b21e107af',1,'RichHdrWrapper']]], @@ -69,6 +69,6 @@ var searchData= ['rsize_66',['RSIZE',['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730a767d5726ed32bf524adcfba6f7c70f63',1,'SectionHdrWrapper']]], ['rva_67',['RVA',['../class_executable.html#a2202e0db9d88f3be2b26fc138ddd3b5bab09fbc5c56c2c2f13f0318d67c72b8be',1,'Executable']]], ['rvas_5fsizes_5fnum_68',['RVAS_SIZES_NUM',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013af33cf400e2fda16f6fc84c81a2ee516e',1,'OptHdrWrapper']]], - ['rvatoraw_69',['rvaToRaw',['../class_p_e_file.html#a7fa60daf15123f14d1f7b199d19d1368',1,'PEFile::rvaToRaw()'],['../class_d_o_s_exe.html#a2b381dee76f31a58fb41c9b5e5293938',1,'DOSExe::rvaToRaw()'],['../class_executable.html#a9d1979e57f2c6d4146e8ddf1892c6e99',1,'Executable::rvaToRaw(offset_t rva)=0']]], + ['rvatoraw_69',['rvatoraw',['../class_p_e_file.html#a7fa60daf15123f14d1f7b199d19d1368',1,'PEFile::rvaToRaw()'],['../class_d_o_s_exe.html#a2b381dee76f31a58fb41c9b5e5293938',1,'DOSExe::rvaToRaw()'],['../class_executable.html#a9d1979e57f2c6d4146e8ddf1892c6e99',1,'Executable::rvaToRaw(offset_t rva)=0']]], ['rvatova_70',['rvaToVa',['../class_executable.html#ae3a32e3cea7c9c5a9aa2e938fc1091b9',1,'Executable']]] ]; diff --git a/search/enums_3.js b/search/enums_3.js index d913124c..e328ac8f 100644 --- a/search/enums_3.js +++ b/search/enums_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['fieldid_0',['FieldID',['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3',1,'BoundEntryWrapper::FieldID'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987',1,'ClrDirWrapper::FieldID'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5d',1,'DebugDirCVEntryWrapper::FieldID'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246',1,'DelayImpFuncWrapper::FieldID'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065',1,'ExportEntryWrapper::FieldID'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389',1,'FileHdrWrapper::FieldID'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986',1,'ImportEntryWrapper::FieldID'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcc',1,'ImportedFuncWrapper::FieldID'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099b',1,'LdConfigEntryWrapper::FieldID'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37c',1,'RelocEntryWrapper::FieldID'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094',1,'ResourceEntryWrapper::FieldID'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1',1,'ResourceLeafWrapper::FieldID'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62',1,'RichHdrWrapper::FieldID'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5e',1,'TlsEntryWrapper::FieldID']]] + ['fieldid_0',['fieldid',['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3',1,'BoundEntryWrapper::FieldID'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987',1,'ClrDirWrapper::FieldID'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5d',1,'DebugDirCVEntryWrapper::FieldID'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246',1,'DelayImpFuncWrapper::FieldID'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065',1,'ExportEntryWrapper::FieldID'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389',1,'FileHdrWrapper::FieldID'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986',1,'ImportEntryWrapper::FieldID'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcc',1,'ImportedFuncWrapper::FieldID'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099b',1,'LdConfigEntryWrapper::FieldID'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37c',1,'RelocEntryWrapper::FieldID'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094',1,'ResourceEntryWrapper::FieldID'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1',1,'ResourceLeafWrapper::FieldID'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62',1,'RichHdrWrapper::FieldID'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5e',1,'TlsEntryWrapper::FieldID']]] ]; diff --git a/search/enums_6.js b/search/enums_6.js index 4ad72b1f..a0514263 100644 --- a/search/enums_6.js +++ b/search/enums_6.js @@ -2,5 +2,5 @@ var searchData= [ ['relocblockfid_0',['RelocBlockFID',['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03',1,'RelocBlockWrapper']]], ['resourcedirfid_1',['ResourceDirFID',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56a',1,'ResourceDirWrapper']]], - ['resourcefid_2',['ResourceFID',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899b',1,'ResString::ResourceFID'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2',1,'ResourceStringsWrapper::ResourceFID'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928',1,'ResourceVersionWrapper::ResourceFID']]] + ['resourcefid_2',['resourcefid',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899b',1,'ResString::ResourceFID'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2',1,'ResourceStringsWrapper::ResourceFID'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928',1,'ResourceVersionWrapper::ResourceFID']]] ]; diff --git a/search/enums_9.js b/search/enums_9.js index d9b43096..76690ec1 100644 --- a/search/enums_9.js +++ b/search/enums_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['wrappers_0',['WRAPPERS',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195ba',1,'ExeWrappersContainer::WRAPPERS'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6',1,'DOSExe::WRAPPERS'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbe',1,'PEFile::WRAPPERS']]] + ['wrappers_0',['wrappers',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195ba',1,'ExeWrappersContainer::WRAPPERS'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6',1,'DOSExe::WRAPPERS'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbe',1,'PEFile::WRAPPERS']]] ]; diff --git a/search/enumvalues_10.js b/search/enumvalues_10.js index daf7d8a4..c3ed3010 100644 --- a/search/enumvalues_10.js +++ b/search/enumvalues_10.js @@ -2,9 +2,9 @@ var searchData= [ ['thunk_0',['THUNK',['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bccac742ccbaf1f47ec79b6a34735b282142',1,'ImportedFuncWrapper']]], ['timest_1',['TIMEST',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aa18cb72f5cb3cb77fddf9ea32cf90b49',1,'LdConfigDirWrapper']]], - ['timestamp_2',['TIMESTAMP',['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a60a0cbbc2bb7b27561ec9ea8801cc870',1,'BoundEntryWrapper::TIMESTAMP'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768cadeb59065b1799c7857487db415d5d6db',1,'DebugDirEntryWrapper::TIMESTAMP'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa3125918209e5d5416b0a87b0b46a3086',1,'DelayImpEntryWrapper::TIMESTAMP'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a405efe24209ca0d6e4f0d3c2610204ec',1,'ExportDirWrapper::TIMESTAMP'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389abf8f7d97cd9f1422adaa337933e59f7e',1,'FileHdrWrapper::TIMESTAMP'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986ad46d9bba5e489e0cefcf2ebca86c6e28',1,'ImportEntryWrapper::TIMESTAMP'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa33a0e4c95be9409e1c77b4fcd857ffff',1,'ResourceDirWrapper::TIMESTAMP']]], + ['timestamp_2',['timestamp',['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a60a0cbbc2bb7b27561ec9ea8801cc870',1,'BoundEntryWrapper::TIMESTAMP'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768cadeb59065b1799c7857487db415d5d6db',1,'DebugDirEntryWrapper::TIMESTAMP'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa3125918209e5d5416b0a87b0b46a3086',1,'DelayImpEntryWrapper::TIMESTAMP'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a405efe24209ca0d6e4f0d3c2610204ec',1,'ExportDirWrapper::TIMESTAMP'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389abf8f7d97cd9f1422adaa337933e59f7e',1,'FileHdrWrapper::TIMESTAMP'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986ad46d9bba5e489e0cefcf2ebca86c6e28',1,'ImportEntryWrapper::TIMESTAMP'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa33a0e4c95be9409e1c77b4fcd857ffff',1,'ResourceDirWrapper::TIMESTAMP']]], ['timestamp_5f0_3',['TIMESTAMP_0',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928af584ece6bc61667742baaeaa1e34648b',1,'ResourceVersionWrapper']]], ['timestamp_5f1_4',['TIMESTAMP_1',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a6b1d448e2fbed80fa5ea1af6bf1b68ff',1,'ResourceVersionWrapper']]], - ['type_5',['TYPE',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca9a1511e88c2d14241c118312f3b899e6',1,'DebugDirEntryWrapper::TYPE'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928ac30a4eabb4d236925ec0fdc2d695085c',1,'ResourceVersionWrapper::TYPE'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1a6f7742c514ec2ba309f372beee91039b',1,'SecurityDirWrapper::TYPE']]], + ['type_5',['type',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca9a1511e88c2d14241c118312f3b899e6',1,'DebugDirEntryWrapper::TYPE'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928ac30a4eabb4d236925ec0fdc2d695085c',1,'ResourceVersionWrapper::TYPE'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1a6f7742c514ec2ba309f372beee91039b',1,'SecurityDirWrapper::TYPE']]], ['types_5fcount_6',['TYPES_COUNT',['../class_exe_factory.html#adc59e611b34ce9a0c6888fddd3699715a404daf8c7bf0d37bc89eec70c7a10651',1,'ExeFactory']]] ]; diff --git a/search/enumvalues_13.js b/search/enumvalues_13.js index f62650da..f1507c3f 100644 --- a/search/enumvalues_13.js +++ b/search/enumvalues_13.js @@ -4,11 +4,11 @@ var searchData= ['wr_5fdatadir_1',['WR_DATADIR',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbea20fbab7b3a38f1e3325870d0d9059257',1,'PEFile']]], ['wr_5fdir_5fentry_2',['WR_DIR_ENTRY',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbea1cca759f1f49d1264123301da89d36cc',1,'PEFile']]], ['wr_5fdir_5fentry_5fend_3',['WR_DIR_ENTRY_END',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeaa7ec741256258f4231e6c50c33adedae',1,'PEFile']]], - ['wr_5fdos_5fhdr_4',['WR_DOS_HDR',['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6af6cea8f13093c049d24cf07f45b3b784',1,'DOSExe::WR_DOS_HDR'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbead09a642c1ab2e8998c9e70dd3b1973fa',1,'PEFile::WR_DOS_HDR']]], + ['wr_5fdos_5fhdr_4',['wr_dos_hdr',['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6af6cea8f13093c049d24cf07f45b3b784',1,'DOSExe::WR_DOS_HDR'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbead09a642c1ab2e8998c9e70dd3b1973fa',1,'PEFile::WR_DOS_HDR']]], ['wr_5ffile_5fhdr_5',['WR_FILE_HDR',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeac047b8bc87d2d6ac1c6c2c511bdd9f51',1,'PEFile']]], - ['wr_5fnone_6',['WR_NONE',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195baa56e88c8b27cfa1d4ec1bba2147c5ab73',1,'ExeWrappersContainer::WR_NONE'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6a415faa43146ed061aa769881b2dc0e42',1,'DOSExe::WR_NONE'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbea8fedba5aaf4adc0c2aba45142e429181',1,'PEFile::WR_NONE']]], + ['wr_5fnone_6',['wr_none',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195baa56e88c8b27cfa1d4ec1bba2147c5ab73',1,'ExeWrappersContainer::WR_NONE'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6a415faa43146ed061aa769881b2dc0e42',1,'DOSExe::WR_NONE'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbea8fedba5aaf4adc0c2aba45142e429181',1,'PEFile::WR_NONE']]], ['wr_5foptional_5fhdr_7',['WR_OPTIONAL_HDR',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeaaaa46d11501dd590955b6770d6c8825e',1,'PEFile']]], ['wr_5frich_5fhdr_8',['WR_RICH_HDR',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbead565153667edff3db6527c5732b33ac6',1,'PEFile']]], ['wr_5fsections_9',['WR_SECTIONS',['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbead0e41312e3cf9609c1e742c18821b0a4',1,'PEFile']]], - ['wstring_10',['WSTRING',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899bab897d3e759fbc72109e473213b5ac0a6',1,'ResString::WSTRING'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a286d99e0e4e343b570a63e93821947cc',1,'ResourceStringsWrapper::WSTRING'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa68fcb332e868bb023fe3f7d7bab408ff',1,'WrappedValue::WSTRING']]] + ['wstring_10',['wstring',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899bab897d3e759fbc72109e473213b5ac0a6',1,'ResString::WSTRING'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a286d99e0e4e343b570a63e93821947cc',1,'ResourceStringsWrapper::WSTRING'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa68fcb332e868bb023fe3f7d7bab408ff',1,'WrappedValue::WSTRING']]] ]; diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js index 07709375..e33b1af1 100644 --- a/search/enumvalues_2.js +++ b/search/enumvalues_2.js @@ -6,9 +6,9 @@ var searchData= ['cblp_3',['CBLP',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a1a53e62c243b01f1b26fa976dfafa0a5',1,'DosHdrWrapper']]], ['cert_5fcontent_4',['CERT_CONTENT',['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1ad9e37f7b91843a72af119d16c04fc636',1,'SecurityDirWrapper']]], ['cert_5flen_5',['CERT_LEN',['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1aa2f1979eb635e05fa3f632bd4771feb7',1,'SecurityDirWrapper']]], - ['charact_6',['CHARACT',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389afdc50ad0970e62ca9fc2c4eba9dc3ca3',1,'FileHdrWrapper::CHARACT'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730af7c70586f8e9b86ace1652c7d83bc148',1,'SectionHdrWrapper::CHARACT'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a68dbaf11cbaeaab233dae52bb776a705',1,'TlsDirWrapper::CHARACT']]], - ['characteristic_7',['CHARACTERISTIC',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa4d46d47ca1273a5d717a9aa2f4c5b9d7',1,'ResourceDirWrapper::CHARACTERISTIC'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a372e998427427f989def40fed8cdbdf4',1,'ExportDirWrapper::CHARACTERISTIC'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca2f99dac39d7828e1a3a78f218c0f7e33',1,'DebugDirEntryWrapper::CHARACTERISTIC']]], - ['checksum_8',['CHECKSUM',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a601b9f43dd948b375e99ed9e4e4340e2',1,'OptHdrWrapper::CHECKSUM'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a53379b9a73cdcf510560de8080a57bcf',1,'RichHdrWrapper::CHECKSUM']]], + ['charact_6',['charact',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389afdc50ad0970e62ca9fc2c4eba9dc3ca3',1,'FileHdrWrapper::CHARACT'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730af7c70586f8e9b86ace1652c7d83bc148',1,'SectionHdrWrapper::CHARACT'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a68dbaf11cbaeaab233dae52bb776a705',1,'TlsDirWrapper::CHARACT']]], + ['characteristic_7',['characteristic',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa4d46d47ca1273a5d717a9aa2f4c5b9d7',1,'ResourceDirWrapper::CHARACTERISTIC'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a372e998427427f989def40fed8cdbdf4',1,'ExportDirWrapper::CHARACTERISTIC'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca2f99dac39d7828e1a3a78f218c0f7e33',1,'DebugDirEntryWrapper::CHARACTERISTIC']]], + ['checksum_8',['checksum',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a601b9f43dd948b375e99ed9e4e4340e2',1,'OptHdrWrapper::CHECKSUM'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a53379b9a73cdcf510560de8080a57bcf',1,'RichHdrWrapper::CHECKSUM']]], ['children_9',['CHILDREN',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a31d2a89b741a0554d05aeb734c1fa9a0',1,'ResourceVersionWrapper']]], ['chpe_5fmetadata_5fptr_10',['CHPE_METADATA_PTR',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a05992de4c35c5593b7cdbbda2871cee3',1,'LdConfigDirWrapper']]], ['code_5fbase_11',['CODE_BASE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ae66214434fd16d5eb1f92b66e4bc3188',1,'OptHdrWrapper']]], @@ -22,7 +22,7 @@ var searchData= ['code_5fsize_19',['CODE_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013aeee88e1c7a89cbdf04afe00fe3c32a95',1,'OptHdrWrapper']]], ['comp_5fid_5f1_20',['COMP_ID_1',['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ad0e88caeba8511669e82637541f6cf05',1,'RichHdrWrapper']]], ['complex_21',['COMPLEX',['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aaa3a63d5724d6624f3752721825bbfd8f',1,'WrappedValue']]], - ['count_5fwrappers_22',['COUNT_WRAPPERS',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195baa9722ac832e8fe6028a3e8244b14d1113',1,'ExeWrappersContainer::COUNT_WRAPPERS'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6a9163bf16195001b31faa65f8fd09548c',1,'DOSExe::COUNT_WRAPPERS'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeaf602ed67e7d928004454d54b5b0aeaf2',1,'PEFile::COUNT_WRAPPERS']]], + ['count_5fwrappers_22',['count_wrappers',['../class_exe_wrappers_container.html#aed42e01f70986d8dff3fda4925b195baa9722ac832e8fe6028a3e8244b14d1113',1,'ExeWrappersContainer::COUNT_WRAPPERS'],['../class_d_o_s_exe.html#ac92b91f03b5679b4eff43c65a435d7b6a9163bf16195001b31faa65f8fd09548c',1,'DOSExe::COUNT_WRAPPERS'],['../class_p_e_file.html#a69fde81c3cbe7490cd595c6fb934ecbeaf602ed67e7d928004454d54b5b0aeaf2',1,'PEFile::COUNT_WRAPPERS']]], ['counter_23',['COUNTER',['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6ab08abeea38320156929f8adae75f297f',1,'DataDirWrapper']]], ['cp_24',['CP',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a17654786e166ea739ec74ca7cad40213',1,'DosHdrWrapper']]], ['cpad0_25',['CPAD0',['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ab831886bb4e8934b2a49f9c5e5157f5a',1,'RichHdrWrapper']]], diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js index 5e0a68f2..8d2c61b2 100644 --- a/search/enumvalues_3.js +++ b/search/enumvalues_3.js @@ -7,7 +7,7 @@ var searchData= ['dans_5fid_4',['DANS_ID',['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a06b867dd028484259f02ad30cf49c284',1,'RichHdrWrapper']]], ['data_5fbase_5',['DATA_BASE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac707d42c0d8bbbc427719a0675c38790',1,'OptHdrWrapper']]], ['data_5fdir_6',['DATA_DIR',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ab09378c8fb9254f6b54b38eee81f72c3',1,'OptHdrWrapper']]], - ['data_5fsize_7',['DATA_SIZE',['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a5f79e6a5b19b020a93aa0be5e4e5155f',1,'ResourceLeafWrapper::DATA_SIZE'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768caa934aede5c40d5900c723f7a93548f66',1,'DebugDirEntryWrapper::DATA_SIZE']]], + ['data_5fsize_7',['data_size',['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a5f79e6a5b19b020a93aa0be5e4e5155f',1,'ResourceLeafWrapper::DATA_SIZE'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768caa934aede5c40d5900c723f7a93548f66',1,'DebugDirEntryWrapper::DATA_SIZE']]], ['datatype_5fcount_8',['DATATYPE_COUNT',['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aab15ad7b0ac32a44d4b444cfd6575230a',1,'WrappedValue']]], ['decommit_5ffree_9',['DECOMMIT_FREE',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a6920ab6c583d970b5e758552714625fe',1,'LdConfigDirWrapper']]], ['decommit_5ftotal_10',['DECOMMIT_TOTAL',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a68f2da2f9fa115134d2e894f9fb3a8da',1,'LdConfigDirWrapper']]], diff --git a/search/enumvalues_4.js b/search/enumvalues_4.js index 75a9db91..c3f8cacc 100644 --- a/search/enumvalues_4.js +++ b/search/enumvalues_4.js @@ -2,7 +2,7 @@ var searchData= [ ['edit_5flist_0',['EDIT_LIST',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a863df145224199bbfd1481b598f7dc08',1,'LdConfigDirWrapper']]], ['enclave_5fconfig_5fptr_1',['ENCLAVE_CONFIG_PTR',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a640ceb809aa78345dbc6f2cff685a6e3',1,'LdConfigDirWrapper']]], - ['end_5faddr_2',['END_ADDR',['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faacac5bc77db162f5c15f058e2c68ad166',1,'ExceptionEntryWrapper::END_ADDR'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a480e94769b9077a5253337f1949841b4',1,'TlsDirWrapper::END_ADDR']]], + ['end_5faddr_2',['end_addr',['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faacac5bc77db162f5c15f058e2c68ad166',1,'ExceptionEntryWrapper::END_ADDR'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a480e94769b9077a5253337f1949841b4',1,'TlsDirWrapper::END_ADDR']]], ['entries_5fptr_3',['ENTRIES_PTR',['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03aa843683ada8138561b84c2bbbba122f1',1,'RelocBlockWrapper']]], ['entry_5fpoint_4',['ENTRY_POINT',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987aa940f0548268efdc923e633d1295526d',1,'ClrDirWrapper']]], ['ep_5',['EP',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a6120a545a9e836638d32308e25358ceb',1,'OptHdrWrapper']]], diff --git a/search/enumvalues_5.js b/search/enumvalues_5.js index 1ff44955..36c200e5 100644 --- a/search/enumvalues_5.js +++ b/search/enumvalues_5.js @@ -4,16 +4,16 @@ var searchData= ['f_5fcvdbg_5fguid_1',['F_CVDBG_GUID',['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5da77045f4597b98f0997ec53446e180c19',1,'DebugDirCVEntryWrapper']]], ['f_5fcvdbg_5fpdb_2',['F_CVDBG_PDB',['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5daf6a09257c103ec397e4e15948c362aab',1,'DebugDirCVEntryWrapper']]], ['f_5fcvdbg_5fsign_3',['F_CVDBG_SIGN',['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5da707663e86b99e6b3ab64de827da83186',1,'DebugDirCVEntryWrapper']]], - ['field_5fcounter_4',['FIELD_COUNTER',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013aaee210eb8a4bc9818a1785095c4cc9fa',1,'OptHdrWrapper::FIELD_COUNTER'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a4b26d210993e8d80ea33c8921e0dd760',1,'ResourceLeafWrapper::FIELD_COUNTER'],['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03a7852e4dcd6665d551d639360dfe8ce20',1,'RelocBlockWrapper::FIELD_COUNTER'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37ca65462f5696a2e3fbcb411d601d9fbbb6',1,'RelocEntryWrapper::FIELD_COUNTER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa5ccba73df3348ebc0e4b19d154d23e9e',1,'ResourceDirWrapper::FIELD_COUNTER'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ac7bf50b53a2451281f5e58483de582d7',1,'ResourceEntryWrapper::FIELD_COUNTER'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a723fb63d14f375ce7c3696f395c404a6',1,'RichHdrWrapper::FIELD_COUNTER'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba04816b390a2e8abb2859a61c6360f5dd',1,'ResString::FIELD_COUNTER'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a09b04fec49e3d5e0e5b7cb6886986f1e',1,'ResourceStringsWrapper::FIELD_COUNTER'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a90c8492e00a9098773328a09ef1c1944',1,'ResourceVersionWrapper::FIELD_COUNTER'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730a726fe6e89ada12ef1981d2ff4e59cfb5',1,'SectionHdrWrapper::FIELD_COUNTER'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1ac6915a22dc9930f77a50dfe7119c5fad',1,'SecurityDirWrapper::FIELD_COUNTER'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a609f3db5f15768bee8036bc3680cd81f',1,'TlsDirWrapper::FIELD_COUNTER'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5eae789820de8c949bd8efaaae41a8ed22b',1,'TlsEntryWrapper::FIELD_COUNTER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a2b6e8bb645042d8b0a87748726c44610',1,'LdConfigDirWrapper::FIELD_COUNTER'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bccace3e9cf7c380521b4ac7675e23c753de',1,'ImportedFuncWrapper::FIELD_COUNTER'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986adb88e8ddf720cf0bed4f76c792e3243f',1,'ImportEntryWrapper::FIELD_COUNTER'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a82a0fdd42a005e50ee7f2ad0566c1403',1,'FileHdrWrapper::FIELD_COUNTER'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065aa86013338f0e910a43911219fecf08bb',1,'ExportEntryWrapper::FIELD_COUNTER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a470c66fac17361dd53f833b3d2d32f99',1,'ExportDirWrapper::FIELD_COUNTER'],['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faa9ab51a13e13d8850f1377d66baf13264',1,'ExceptionEntryWrapper::FIELD_COUNTER'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a17f3e8da080d1d346a7e02f0d25fbdfe',1,'DosHdrWrapper::FIELD_COUNTER'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246a9a5d9d544bec8c034108cb870faf9923',1,'DelayImpFuncWrapper::FIELD_COUNTER'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faae157decbfc80a04b385bcdf468d2e63d',1,'DelayImpEntryWrapper::FIELD_COUNTER'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5daf1238c7ae3aa18419ea8ca3555b8a74a',1,'DebugDirCVEntryWrapper::FIELD_COUNTER'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca7e66143809c07b541d74334b6b15a3b8',1,'DebugDirEntryWrapper::FIELD_COUNTER'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987ab8d0ca30dd59b2e4497e9141b307fbe3',1,'ClrDirWrapper::FIELD_COUNTER'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a72ec1d55b4bfe951acccef257a0cdc73',1,'BoundEntryWrapper::FIELD_COUNTER'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099bad3cc9e1494addf76649afa0667543979',1,'LdConfigEntryWrapper::FIELD_COUNTER']]], + ['field_5fcounter_4',['field_counter',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013aaee210eb8a4bc9818a1785095c4cc9fa',1,'OptHdrWrapper::FIELD_COUNTER'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a4b26d210993e8d80ea33c8921e0dd760',1,'ResourceLeafWrapper::FIELD_COUNTER'],['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03a7852e4dcd6665d551d639360dfe8ce20',1,'RelocBlockWrapper::FIELD_COUNTER'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37ca65462f5696a2e3fbcb411d601d9fbbb6',1,'RelocEntryWrapper::FIELD_COUNTER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa5ccba73df3348ebc0e4b19d154d23e9e',1,'ResourceDirWrapper::FIELD_COUNTER'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ac7bf50b53a2451281f5e58483de582d7',1,'ResourceEntryWrapper::FIELD_COUNTER'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62a723fb63d14f375ce7c3696f395c404a6',1,'RichHdrWrapper::FIELD_COUNTER'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba04816b390a2e8abb2859a61c6360f5dd',1,'ResString::FIELD_COUNTER'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a09b04fec49e3d5e0e5b7cb6886986f1e',1,'ResourceStringsWrapper::FIELD_COUNTER'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a90c8492e00a9098773328a09ef1c1944',1,'ResourceVersionWrapper::FIELD_COUNTER'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730a726fe6e89ada12ef1981d2ff4e59cfb5',1,'SectionHdrWrapper::FIELD_COUNTER'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1ac6915a22dc9930f77a50dfe7119c5fad',1,'SecurityDirWrapper::FIELD_COUNTER'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a609f3db5f15768bee8036bc3680cd81f',1,'TlsDirWrapper::FIELD_COUNTER'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5eae789820de8c949bd8efaaae41a8ed22b',1,'TlsEntryWrapper::FIELD_COUNTER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a2b6e8bb645042d8b0a87748726c44610',1,'LdConfigDirWrapper::FIELD_COUNTER'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bccace3e9cf7c380521b4ac7675e23c753de',1,'ImportedFuncWrapper::FIELD_COUNTER'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986adb88e8ddf720cf0bed4f76c792e3243f',1,'ImportEntryWrapper::FIELD_COUNTER'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a82a0fdd42a005e50ee7f2ad0566c1403',1,'FileHdrWrapper::FIELD_COUNTER'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065aa86013338f0e910a43911219fecf08bb',1,'ExportEntryWrapper::FIELD_COUNTER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a470c66fac17361dd53f833b3d2d32f99',1,'ExportDirWrapper::FIELD_COUNTER'],['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faa9ab51a13e13d8850f1377d66baf13264',1,'ExceptionEntryWrapper::FIELD_COUNTER'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a17f3e8da080d1d346a7e02f0d25fbdfe',1,'DosHdrWrapper::FIELD_COUNTER'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246a9a5d9d544bec8c034108cb870faf9923',1,'DelayImpFuncWrapper::FIELD_COUNTER'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faae157decbfc80a04b385bcdf468d2e63d',1,'DelayImpEntryWrapper::FIELD_COUNTER'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5daf1238c7ae3aa18419ea8ca3555b8a74a',1,'DebugDirCVEntryWrapper::FIELD_COUNTER'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca7e66143809c07b541d74334b6b15a3b8',1,'DebugDirEntryWrapper::FIELD_COUNTER'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987ab8d0ca30dd59b2e4497e9141b307fbe3',1,'ClrDirWrapper::FIELD_COUNTER'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a72ec1d55b4bfe951acccef257a0cdc73',1,'BoundEntryWrapper::FIELD_COUNTER'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099bad3cc9e1494addf76649afa0667543979',1,'LdConfigEntryWrapper::FIELD_COUNTER']]], ['field_5fcounter_5fold_5',['FIELD_COUNTER_OLD',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45ae40ccf75b9dea842d220e7d2409d5c0a',1,'LdConfigDirWrapper']]], ['field_5fcounter_5fw81_6',['FIELD_COUNTER_W81',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45adcae626c193b985ba722ffc9b252fc0a',1,'LdConfigDirWrapper']]], ['file_5falign_7',['FILE_ALIGN',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a5fb3bc1ced512b28d499e4974ffe39be',1,'OptHdrWrapper']]], ['file_5fver_5f0_8',['FILE_VER_0',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928ae6c4fa8c5d88b02fcc5e1c5fbebff13a',1,'ResourceVersionWrapper']]], ['file_5fver_5f1_9',['FILE_VER_1',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a330be5af7b2d1a873bc167a718f66680',1,'ResourceVersionWrapper']]], ['first_5fthunk_10',['FIRST_THUNK',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a396947c7c6e8e7e7032f019cb3b0ece0',1,'ImportEntryWrapper']]], - ['flags_11',['FLAGS',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a7222cc6cfedd7725087bc83afcc30e89',1,'ClrDirWrapper::FLAGS'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928aee691bd717b1e07f1c442bf9dd93ae7f',1,'ResourceVersionWrapper::FLAGS']]], + ['flags_11',['flags',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a7222cc6cfedd7725087bc83afcc30e89',1,'ClrDirWrapper::FLAGS'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928aee691bd717b1e07f1c442bf9dd93ae7f',1,'ResourceVersionWrapper::FLAGS']]], ['flags_5fmask_12',['FLAGS_MASK',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a12dd91808873ec54cc6c3ede2eaa7ae7',1,'ResourceVersionWrapper']]], - ['forwarder_13',['FORWARDER',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a4629b6d3ec24d0e252b0a052f6dd5cfe',1,'ImportEntryWrapper::FORWARDER'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca5d89cf3e810ea9777d29a79503881d31',1,'ImportedFuncWrapper::FORWARDER']]], + ['forwarder_13',['forwarder',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a4629b6d3ec24d0e252b0a052f6dd5cfe',1,'ImportEntryWrapper::FORWARDER'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca5d89cf3e810ea9777d29a79503881d31',1,'ImportedFuncWrapper::FORWARDER']]], ['func_5fnames_5frva_14',['FUNC_NAMES_RVA',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7aea01fa04fdba9ecce6ab2e61e0a56617',1,'ExportDirWrapper']]], ['function_5frva_15',['FUNCTION_RVA',['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065a1324b0e5567fe59a77d53501010b1d81',1,'ExportEntryWrapper']]], ['functions_5fnum_16',['FUNCTIONS_NUM',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a873c45444d5151dac2edb5c14239ad0f',1,'ExportDirWrapper']]], diff --git a/search/enumvalues_8.js b/search/enumvalues_8.js index 5807f258..03230ebf 100644 --- a/search/enumvalues_8.js +++ b/search/enumvalues_8.js @@ -10,6 +10,6 @@ var searchData= ['index_5faddr_7',['INDEX_ADDR',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a5bf345f0a756f439f23982a8b8dc93cb',1,'TlsDirWrapper']]], ['info_8',['INFO',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a3075b0de04d7af3f02f02ebff6817500',1,'ResourceVersionWrapper']]], ['initdata_5fsize_9',['INITDATA_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ae7d3200fd93c0c87a3d1bdc6e3b5c5ca',1,'OptHdrWrapper']]], - ['int_10',['INT',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faaf33d85056a643117a360425f97dd5d0f',1,'DelayImpEntryWrapper::INT'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa27f7d3c0ef312dfd3820d9eb588d9664',1,'WrappedValue::INT']]], + ['int_10',['int',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faaf33d85056a643117a360425f97dd5d0f',1,'DelayImpEntryWrapper::INT'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa27f7d3c0ef312dfd3820d9eb588d9664',1,'WrappedValue::INT']]], ['ip_11',['IP',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980ae0f61c7244883136dd27f3f9bd20dd7b',1,'DosHdrWrapper']]] ]; diff --git a/search/enumvalues_a.js b/search/enumvalues_a.js index ee1e9f25..35f92e15 100644 --- a/search/enumvalues_a.js +++ b/search/enumvalues_a.js @@ -1,9 +1,9 @@ var searchData= [ ['machine_0',['MACHINE',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a0c86253059680989ff05e7dd7121e95d',1,'FileHdrWrapper']]], - ['magic_1',['MAGIC',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a95b692db16fad10051ae9593c8f0f760',1,'DosHdrWrapper::MAGIC'],['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ad1fd33ea56b34e1192c12cc118a2b04b',1,'OptHdrWrapper::MAGIC']]], + ['magic_1',['magic',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a95b692db16fad10051ae9593c8f0f760',1,'DosHdrWrapper::MAGIC'],['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ad1fd33ea56b34e1192c12cc118a2b04b',1,'OptHdrWrapper::MAGIC']]], ['major_5fruntime_5fver_2',['MAJOR_RUNTIME_VER',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a215965bffca4b12402ea4caccd69ff0d',1,'ClrDirWrapper']]], - ['major_5fver_3',['MAJOR_VER',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768caa24f931f7d20e085fe8b91c99a87e1fa',1,'DebugDirEntryWrapper::MAJOR_VER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a827d9eb2ecd3b1d1bfe974d4864c4f00',1,'ExportDirWrapper::MAJOR_VER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45af074a80e85389e98d9077d3ce6d7c88f',1,'LdConfigDirWrapper::MAJOR_VER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa6283d7dd9fa2570df472a191223278ac',1,'ResourceDirWrapper::MAJOR_VER']]], + ['major_5fver_3',['major_ver',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768caa24f931f7d20e085fe8b91c99a87e1fa',1,'DebugDirEntryWrapper::MAJOR_VER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a827d9eb2ecd3b1d1bfe974d4864c4f00',1,'ExportDirWrapper::MAJOR_VER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45af074a80e85389e98d9077d3ce6d7c88f',1,'LdConfigDirWrapper::MAJOR_VER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aa6283d7dd9fa2570df472a191223278ac',1,'ResourceDirWrapper::MAJOR_VER']]], ['managed_5fnative_5fhdr_5fsize_4',['MANAGED_NATIVE_HDR_SIZE',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987af7384e3b25f79fb9c3904a3473c2e38d',1,'ClrDirWrapper']]], ['managed_5fnative_5fhdr_5fva_5',['MANAGED_NATIVE_HDR_VA',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a18e8a1749c4b03340489b5b268fa8e5f',1,'ClrDirWrapper']]], ['max_5falloc_6',['MAX_ALLOC',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a644d74b750f5ffb4de95d8b68b1066aa',1,'LdConfigDirWrapper']]], @@ -13,7 +13,7 @@ var searchData= ['metadata_10',['METADATA',['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099ba77734a98499a81da45dd088adc954aba',1,'LdConfigEntryWrapper']]], ['minalloc_11',['MINALLOC',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980ab663f26d2a9de5200179f2f4d07be6e5',1,'DosHdrWrapper']]], ['minor_5fruntime_5fver_12',['MINOR_RUNTIME_VER',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a1878ba98eaaf94c5c8afbdc180c9fa67',1,'ClrDirWrapper']]], - ['minor_5fver_13',['MINOR_VER',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca23b02ed23f57ab0d3ccf01ea01141df6',1,'DebugDirEntryWrapper::MINOR_VER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a13bf7b89609646eee07ba0f53a9abd60',1,'ExportDirWrapper::MINOR_VER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aa76dfdd293335dc2409fa0c4dc5a5680',1,'LdConfigDirWrapper::MINOR_VER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aab72d80c68e57e9385c97d572d738517c',1,'ResourceDirWrapper::MINOR_VER']]], + ['minor_5fver_13',['minor_ver',['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca23b02ed23f57ab0d3ccf01ea01141df6',1,'DebugDirEntryWrapper::MINOR_VER'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a13bf7b89609646eee07ba0f53a9abd60',1,'ExportDirWrapper::MINOR_VER'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45aa76dfdd293335dc2409fa0c4dc5a5680',1,'LdConfigDirWrapper::MINOR_VER'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aab72d80c68e57e9385c97d572d738517c',1,'ResourceDirWrapper::MINOR_VER']]], ['mod_14',['MOD',['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa77e5f11a0a737dd5444a5a8c9c82a50b',1,'DelayImpEntryWrapper']]], ['module_5fforwarders_5fnum_15',['MODULE_FORWARDERS_NUM',['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a7d8aaf3c97ddbcbda21069f4bd6dbbf1',1,'BoundEntryWrapper']]], ['module_5fname_5foffset_16',['MODULE_NAME_OFFSET',['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3aae67fb255bd152d7a0e4fe345d052fbc',1,'BoundEntryWrapper']]], diff --git a/search/enumvalues_b.js b/search/enumvalues_b.js index 22a5032a..c635fa7a 100644 --- a/search/enumvalues_b.js +++ b/search/enumvalues_b.js @@ -1,12 +1,12 @@ var searchData= [ - ['name_0',['NAME',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986abe90c95a7ec5dd5b2352e6f1bbf660f0',1,'ImportEntryWrapper::NAME'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730add44c0f45d60cfc3eed133f50815deaf',1,'SectionHdrWrapper::NAME'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa9f9a920f0b75abb118b86d05998f0767',1,'DelayImpEntryWrapper::NAME']]], + ['name_0',['name',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986abe90c95a7ec5dd5b2352e6f1bbf660f0',1,'ImportEntryWrapper::NAME'],['../class_section_hdr_wrapper.html#a5ab13065e15d8a0a487ba80544deb730add44c0f45d60cfc3eed133f50815deaf',1,'SectionHdrWrapper::NAME'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faa9f9a920f0b75abb118b86d05998f0767',1,'DelayImpEntryWrapper::NAME']]], ['name_5fid_5faddr_1',['NAME_ID_ADDR',['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ac5f23d5e6381c0898e6b0269da9cb878',1,'ResourceEntryWrapper']]], - ['name_5frva_2',['NAME_RVA',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a23ea9140ac5c0bbddac0bb0eb09b2208',1,'ExportDirWrapper::NAME_RVA'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065ab2605ea1ef9c96f38c1210f643695353',1,'ExportEntryWrapper::NAME_RVA']]], + ['name_5frva_2',['name_rva',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a23ea9140ac5c0bbddac0bb0eb09b2208',1,'ExportDirWrapper::NAME_RVA'],['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065ab2605ea1ef9c96f38c1210f643695353',1,'ExportEntryWrapper::NAME_RVA']]], ['named_5fentries_5fnum_3',['NAMED_ENTRIES_NUM',['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aae439f322aecd72399eba4402630ddcff',1,'ResourceDirWrapper']]], ['names_5fnum_4',['NAMES_NUM',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a0974bbb9e618ac71d6978d24a7dee48a',1,'ExportDirWrapper']]], ['names_5fordinals_5frva_5',['NAMES_ORDINALS_RVA',['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7a88092af9c6cd349b96e7da750c58f34f',1,'ExportDirWrapper']]], ['namethunk_5faddr_6',['NAMETHUNK_ADDR',['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246ab2b8e8d90868fc502f6d8d43dac3cf9f',1,'DelayImpFuncWrapper']]], - ['none_7',['NONE',['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065a3f5ee786ec709307ac1b19804dbce6be',1,'ExportEntryWrapper::NONE'],['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac71f5d77ca12a30020289dcecac1b5a9',1,'OptHdrWrapper::NONE'],['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03a2d016aec93e272fb7ed9ea4b0567f57f',1,'RelocBlockWrapper::NONE'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37caa57c30c76e424042b1c78070c434f61f',1,'RelocEntryWrapper::NONE'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099ba9337da9a4ccb3ae778139ac05a583147',1,'LdConfigEntryWrapper::NONE'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aae0ab7803841d6904c6e160cf01d2ccd8',1,'ResourceDirWrapper::NONE'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094a894b6d514551caa532cc56ee73975762',1,'ResourceEntryWrapper::NONE'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a283281a04f3a370a9af1adf7a6c4e306',1,'ResourceLeafWrapper::NONE'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ad2bd4397f0312bc4ab81a10c13d98637',1,'RichHdrWrapper::NONE'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba4fe71bc0442043188bf8f3abbd719711',1,'ResString::NONE'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a8b386c4e7319a656788e1d1394c529b6',1,'ResourceStringsWrapper::NONE'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a994fc43dab04e3017f80247c41b5eade',1,'ResourceVersionWrapper::NONE'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1a9eb30257f6e748d14225bb9cf7bf30e6',1,'SecurityDirWrapper::NONE'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a91d00a7f0e1a7de7e7db33e24806c845',1,'TlsDirWrapper::NONE'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5ea6d445bab258a5f2f3b10f023509e7c42',1,'TlsEntryWrapper::NONE'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa2f68a5210e3980a4730e252aee282a05',1,'WrappedValue::NONE'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a4f02a40f0d4dd710b3a74de0d2b61f50',1,'LdConfigDirWrapper::NONE'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca4ba185dac86fd37f140e754c262ecc0b',1,'ImportedFuncWrapper::NONE'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a83c3945b970c5015200c08053f815d7d',1,'ImportEntryWrapper::NONE'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389ae5d1f7bff52b7c5e0157bec09dcb4b1b',1,'FileHdrWrapper::NONE'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7af91ce9d5b8d272075427bcb1679ab68d',1,'ExportDirWrapper::NONE'],['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faa3c9f6c0e85bf94b86507faa162ae6d75',1,'ExceptionEntryWrapper::NONE'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980af2d61bd2c183cd5da8334ea428aeac8c',1,'DosHdrWrapper::NONE'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246ad2dedf87872348b4895dbab527371224',1,'DelayImpFuncWrapper::NONE'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faac6ae0f1e5fa53a2885b8b270cf5bc7ed',1,'DelayImpEntryWrapper::NONE'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5dac4298b7dbc836d7dc3e72440ce194560',1,'DebugDirCVEntryWrapper::NONE'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca8aba8d7d789042b8c78b8c24f70a16ab',1,'DebugDirEntryWrapper::NONE'],['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6a46461b8f43056d6170e714f97a34b80f',1,'DataDirWrapper::NONE'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a14e78b1db5f348f95079472e12939595',1,'ClrDirWrapper::NONE'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a876cde1ddb10dffc8a75197955a2c79d',1,'BoundEntryWrapper::NONE'],['../class_exe_factory.html#adc59e611b34ce9a0c6888fddd3699715aea38b2736e89a0e473b7d7c63f5d32e6',1,'ExeFactory::NONE']]], + ['none_7',['none',['../class_export_entry_wrapper.html#aea83351c906b2506a9f0672dd2dcc065a3f5ee786ec709307ac1b19804dbce6be',1,'ExportEntryWrapper::NONE'],['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac71f5d77ca12a30020289dcecac1b5a9',1,'OptHdrWrapper::NONE'],['../class_reloc_block_wrapper.html#ab1fae7ba4a5ef07ccdd5f495e216ab03a2d016aec93e272fb7ed9ea4b0567f57f',1,'RelocBlockWrapper::NONE'],['../class_reloc_entry_wrapper.html#a43de8e3541d124b2211939a17bc8f37caa57c30c76e424042b1c78070c434f61f',1,'RelocEntryWrapper::NONE'],['../class_ld_config_entry_wrapper.html#accff2f311e6ac2b4807adbaec7e7099ba9337da9a4ccb3ae778139ac05a583147',1,'LdConfigEntryWrapper::NONE'],['../class_resource_dir_wrapper.html#a270a17235f08aa383476f02bd370f56aae0ab7803841d6904c6e160cf01d2ccd8',1,'ResourceDirWrapper::NONE'],['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094a894b6d514551caa532cc56ee73975762',1,'ResourceEntryWrapper::NONE'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1a283281a04f3a370a9af1adf7a6c4e306',1,'ResourceLeafWrapper::NONE'],['../class_rich_hdr_wrapper.html#a366b4901ae5d2c2bc0b08e2ae98a1e62ad2bd4397f0312bc4ab81a10c13d98637',1,'RichHdrWrapper::NONE'],['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba4fe71bc0442043188bf8f3abbd719711',1,'ResString::NONE'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2a8b386c4e7319a656788e1d1394c529b6',1,'ResourceStringsWrapper::NONE'],['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a994fc43dab04e3017f80247c41b5eade',1,'ResourceVersionWrapper::NONE'],['../class_security_dir_wrapper.html#a0b0004347ca16049809de0017fdcfcc1a9eb30257f6e748d14225bb9cf7bf30e6',1,'SecurityDirWrapper::NONE'],['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a91d00a7f0e1a7de7e7db33e24806c845',1,'TlsDirWrapper::NONE'],['../class_tls_entry_wrapper.html#a975fe390254cca747a67bae9890e9b5ea6d445bab258a5f2f3b10f023509e7c42',1,'TlsEntryWrapper::NONE'],['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aa2f68a5210e3980a4730e252aee282a05',1,'WrappedValue::NONE'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a4f02a40f0d4dd710b3a74de0d2b61f50',1,'LdConfigDirWrapper::NONE'],['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca4ba185dac86fd37f140e754c262ecc0b',1,'ImportedFuncWrapper::NONE'],['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a83c3945b970c5015200c08053f815d7d',1,'ImportEntryWrapper::NONE'],['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389ae5d1f7bff52b7c5e0157bec09dcb4b1b',1,'FileHdrWrapper::NONE'],['../class_export_dir_wrapper.html#a22dd158da711b958e68d34e6d415e9f7af91ce9d5b8d272075427bcb1679ab68d',1,'ExportDirWrapper::NONE'],['../class_exception_entry_wrapper.html#a84568192904db189455113ad1f4963faa3c9f6c0e85bf94b86507faa162ae6d75',1,'ExceptionEntryWrapper::NONE'],['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980af2d61bd2c183cd5da8334ea428aeac8c',1,'DosHdrWrapper::NONE'],['../class_delay_imp_func_wrapper.html#a4286619e7718b72b4df710d488829246ad2dedf87872348b4895dbab527371224',1,'DelayImpFuncWrapper::NONE'],['../class_delay_imp_entry_wrapper.html#ab3020a74b9682cd49e18c1da1e8096faac6ae0f1e5fa53a2885b8b270cf5bc7ed',1,'DelayImpEntryWrapper::NONE'],['../class_debug_dir_c_v_entry_wrapper.html#a33effcfa5e2f66975431da3b77668e5dac4298b7dbc836d7dc3e72440ce194560',1,'DebugDirCVEntryWrapper::NONE'],['../class_debug_dir_entry_wrapper.html#a78106e75b9c8550289c35667ddd0768ca8aba8d7d789042b8c78b8c24f70a16ab',1,'DebugDirEntryWrapper::NONE'],['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6a46461b8f43056d6170e714f97a34b80f',1,'DataDirWrapper::NONE'],['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a14e78b1db5f348f95079472e12939595',1,'ClrDirWrapper::NONE'],['../class_bound_entry_wrapper.html#a337aebcf2a61cfe78f703cbeb854a5b3a876cde1ddb10dffc8a75197955a2c79d',1,'BoundEntryWrapper::NONE'],['../class_exe_factory.html#adc59e611b34ce9a0c6888fddd3699715aea38b2736e89a0e473b7d7c63f5d32e6',1,'ExeFactory::NONE']]], ['not_5faddr_8',['NOT_ADDR',['../class_executable.html#a2202e0db9d88f3be2b26fc138ddd3b5ba3f1414297193a39037e1f72a7d46ec2f',1,'Executable']]] ]; diff --git a/search/enumvalues_c.js b/search/enumvalues_c.js index 6a9195a9..b9cb2a69 100644 --- a/search/enumvalues_c.js +++ b/search/enumvalues_c.js @@ -2,7 +2,7 @@ var searchData= [ ['oemid_0',['OEMID',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980aed725c43ed9b139c82014e08634d6ecb',1,'DosHdrWrapper']]], ['oeminfo_1',['OEMINFO',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a862775a2d0a1a8de49cb18fa582e09f8',1,'DosHdrWrapper']]], - ['offset_5fto_5fdata_2',['OFFSET_TO_DATA',['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ae9c5bc4371ade736f5c18e2d3ff44d3a',1,'ResourceEntryWrapper::OFFSET_TO_DATA'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1ac8e8bfa8e2fdd2e54becc4c495e2c247',1,'ResourceLeafWrapper::OFFSET_TO_DATA']]], + ['offset_5fto_5fdata_2',['offset_to_data',['../class_resource_entry_wrapper.html#adcfde441164c89796a7bfe20b9364094ae9c5bc4371ade736f5c18e2d3ff44d3a',1,'ResourceEntryWrapper::OFFSET_TO_DATA'],['../class_resource_leaf_wrapper.html#a904178c6336a9b45c75bf250ca29ffe1ac8e8bfa8e2fdd2e54becc4c495e2c247',1,'ResourceLeafWrapper::OFFSET_TO_DATA']]], ['opthdr_5fsize_3',['OPTHDR_SIZE',['../class_file_hdr_wrapper.html#a075f42271d453ff33ce06e801101a389a5da8c34f8163ba4adc382d8b716ef9d9',1,'FileHdrWrapper']]], ['orig_5ffirst_5fthunk_4',['ORIG_FIRST_THUNK',['../class_import_entry_wrapper.html#a0dd736fcaa604c966425896fd6f99986a6789ac43f4c80b7fc3c98999169dbcc1',1,'ImportEntryWrapper']]], ['orig_5fthunk_5',['ORIG_THUNK',['../class_imported_func_wrapper.html#a748f0650d6c1815885732483aa0d5bcca92b20e35811bb05b71f0c96c961ae271',1,'ImportedFuncWrapper']]], diff --git a/search/enumvalues_f.js b/search/enumvalues_f.js index b14ca751..77463e7e 100644 --- a/search/enumvalues_f.js +++ b/search/enumvalues_f.js @@ -6,13 +6,13 @@ var searchData= ['seh_5fcount_3',['SEH_COUNT',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a3e0022ede464f7628914c1dc3b76e156',1,'LdConfigDirWrapper']]], ['seh_5ftable_4',['SEH_TABLE',['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45ac27ea038c16f63633a82dd2ce3a1fd49',1,'LdConfigDirWrapper']]], ['signature_5',['SIGNATURE',['../class_resource_version_wrapper.html#ab5d68467854b544b4b69ce2701563928a328f3b3f04ee440c638d1d9bc7ae518f',1,'ResourceVersionWrapper']]], - ['size_6',['SIZE',['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6ab63d06bc0edd4b48645310bfe8e66f9e',1,'DataDirWrapper::SIZE'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a7551b2d2fcbe9db008417c94fb64a04c',1,'LdConfigDirWrapper::SIZE']]], + ['size_6',['size',['../class_data_dir_wrapper.html#aa6d39cbb88d0f3716cbd90412f4a0db6ab63d06bc0edd4b48645310bfe8e66f9e',1,'DataDirWrapper::SIZE'],['../class_ld_config_dir_wrapper.html#af8859de691d95f0b9a37501e0e38ca45a7551b2d2fcbe9db008417c94fb64a04c',1,'LdConfigDirWrapper::SIZE']]], ['sp_7',['SP',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a8babb7797752c266d316ffdd3f41d4ea',1,'DosHdrWrapper']]], ['ss_8',['SS',['../class_dos_hdr_wrapper.html#a7dcac0806ba5c5f16785f683c67d8980a12556fc7061e290cf36859cc10c64cc7',1,'DosHdrWrapper']]], ['stack_5fcommit_5fsize_9',['STACK_COMMIT_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013ac831ffabde3fdc4d2e82375da0733e15',1,'OptHdrWrapper']]], ['stack_5frsrv_5fsize_10',['STACK_RSRV_SIZE',['../class_opt_hdr_wrapper.html#a50a0ba638e2810426b475714dc23b013a38cad995ac435465741a6cc124b81a0b',1,'OptHdrWrapper']]], ['start_5faddr_11',['START_ADDR',['../class_tls_dir_wrapper.html#ab13e121ad448dcd394a87d0a4eadfa33a9cb78556ab6dd1f074ab6d495f427c93',1,'TlsDirWrapper']]], - ['str_5flen_12',['STR_LEN',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba9d7000a340ecf42702fe2dcfc5828e3e',1,'ResString::STR_LEN'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2ab42d5e8b1c9b6d7536f0d68ffb2c1db5',1,'ResourceStringsWrapper::STR_LEN']]], + ['str_5flen_12',['str_len',['../class_res_string.html#afc469fb50c7b5d46c70add3ed72b899ba9d7000a340ecf42702fe2dcfc5828e3e',1,'ResString::STR_LEN'],['../class_resource_strings_wrapper.html#a358476b3eb52fd0a26f0ccd17d1c74d2ab42d5e8b1c9b6d7536f0d68ffb2c1db5',1,'ResourceStringsWrapper::STR_LEN']]], ['string_13',['STRING',['../class_wrapped_value.html#a70fcd4afb963d228e1f84fc422d13e0aad8b842fd00d4b14f0473c9663dea2c0b',1,'WrappedValue']]], ['strong_5fname_5fsignature_5fsize_14',['STRONG_NAME_SIGNATURE_SIZE',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987a784c7b07f3914ef485966a0127f6cefe',1,'ClrDirWrapper']]], ['strong_5fname_5fsignature_5fva_15',['STRONG_NAME_SIGNATURE_VA',['../class_clr_dir_wrapper.html#aaa5e1e4c6b5e5923e503ed967a109987aaac47c3e547e24759381d384f6ffe850',1,'ClrDirWrapper']]], diff --git a/search/functions_1.js b/search/functions_1.js index e2fb9d70..5daf5e92 100644 --- a/search/functions_1.js +++ b/search/functions_1.js @@ -3,9 +3,9 @@ var searchData= ['abstractbytebuffer_0',['AbstractByteBuffer',['../class_abstract_byte_buffer.html#a083856a64bf8a0682a6a7799830f0ec1',1,'AbstractByteBuffer']]], ['abstractfilebuffer_1',['AbstractFileBuffer',['../class_abstract_file_buffer.html#ad81001a3650854c762c761b8c21ff762',1,'AbstractFileBuffer']]], ['abstractformatter_2',['AbstractFormatter',['../class_abstract_formatter.html#a57a59b2942bb9c829fcc1b45aba1bbb1',1,'AbstractFormatter']]], - ['addentry_3',['addEntry',['../class_exe_node_wrapper.html#ad3ccdd5e4f04f961dd84a201a9b8a1f4',1,'ExeNodeWrapper::addEntry()'],['../class_sect_hdrs_wrapper.html#a49ab96b47b072e3f0b2c1e360e550d68',1,'SectHdrsWrapper::addEntry()']]], + ['addentry_3',['addentry',['../class_exe_node_wrapper.html#ad3ccdd5e4f04f961dd84a201a9b8a1f4',1,'ExeNodeWrapper::addEntry()'],['../class_sect_hdrs_wrapper.html#a49ab96b47b072e3f0b2c1e360e550d68',1,'SectHdrsWrapper::addEntry()']]], ['addentryat_4',['addEntryAt',['../class_exe_node_wrapper.html#a22e7c147e4a0f6f9882d6ac3bb40ed25',1,'ExeNodeWrapper']]], - ['addmapping_5',['addMapping',['../class_exe_node_wrapper.html#a7689f2efd4ed0f43890385839a0b617a',1,'ExeNodeWrapper::addMapping()'],['../class_import_base_dir_wrapper.html#ae3401167a9ee3eee123cb42728d90b42',1,'ImportBaseDirWrapper::addMapping()'],['../class_import_base_entry_wrapper.html#abc5866cd92a0da7af6faa18b674e8e9a',1,'ImportBaseEntryWrapper::addMapping()'],['../class_sect_hdrs_wrapper.html#ab6d8b5a465ce5b8163f3975b302ea087',1,'SectHdrsWrapper::addMapping()']]], + ['addmapping_5',['addmapping',['../class_exe_node_wrapper.html#a7689f2efd4ed0f43890385839a0b617a',1,'ExeNodeWrapper::addMapping()'],['../class_import_base_dir_wrapper.html#ae3401167a9ee3eee123cb42728d90b42',1,'ImportBaseDirWrapper::addMapping()'],['../class_import_base_entry_wrapper.html#abc5866cd92a0da7af6faa18b674e8e9a',1,'ImportBaseEntryWrapper::addMapping()'],['../class_sect_hdrs_wrapper.html#ab6d8b5a465ce5b8163f3975b302ea087',1,'SectHdrsWrapper::addMapping()']]], ['addnewsection_6',['addNewSection',['../class_p_e_file.html#afdb1b254ee5f6d557c4d850196abd6e3',1,'PEFile']]], ['alloccontent_7',['allocContent',['../class_byte_buffer.html#a95821f73489496d751fefe6382d1e489',1,'ByteBuffer']]], ['append_8',['append',['../namespace_logger.html#a36e3deee152da96a491b670a00d224c9',1,'Logger']]] diff --git a/search/functions_10.js b/search/functions_10.js index 28311114..f40fcf65 100644 --- a/search/functions_10.js +++ b/search/functions_10.js @@ -1,22 +1,22 @@ var searchData= [ ['sechdrsendoffset_0',['secHdrsEndOffset',['../class_p_e_file.html#ab2bff011d7bf559482adc90a5e669911',1,'PEFile']]], - ['sechdrsoffset_1',['secHdrsOffset',['../class_p_e_core.html#ac2d793b316b1ee2a64fa8ed606e028b8',1,'PECore::secHdrsOffset()'],['../class_p_e_file.html#a35ddafbeba19abd9fe72e18afad43f0b',1,'PEFile::secHdrsOffset()']]], + ['sechdrsoffset_1',['sechdrsoffset',['../class_p_e_core.html#ac2d793b316b1ee2a64fa8ed606e028b8',1,'PECore::secHdrsOffset()'],['../class_p_e_file.html#a35ddafbeba19abd9fe72e18afad43f0b',1,'PEFile::secHdrsOffset()']]], ['secthdrswrapper_2',['SectHdrsWrapper',['../class_sect_hdrs_wrapper.html#a16122d83260892062668fdca12cdf296',1,'SectHdrsWrapper']]], - ['sectionhdrwrapper_3',['SectionHdrWrapper',['../class_section_hdr_wrapper.html#a36e21a830a294c26c9d5a750fdf23d54',1,'SectionHdrWrapper::SectionHdrWrapper(PEFile *pe, size_t sectionNumber)'],['../class_section_hdr_wrapper.html#a6ea887e1a18e11f53812ebef79ad2133',1,'SectionHdrWrapper::SectionHdrWrapper(PEFile *pe, IMAGE_SECTION_HEADER *v_header)']]], + ['sectionhdrwrapper_3',['sectionhdrwrapper',['../class_section_hdr_wrapper.html#a36e21a830a294c26c9d5a750fdf23d54',1,'SectionHdrWrapper::SectionHdrWrapper(PEFile *pe, size_t sectionNumber)'],['../class_section_hdr_wrapper.html#a6ea887e1a18e11f53812ebef79ad2133',1,'SectionHdrWrapper::SectionHdrWrapper(PEFile *pe, IMAGE_SECTION_HEADER *v_header)']]], ['securitydirwrapper_4',['SecurityDirWrapper',['../class_security_dir_wrapper.html#a60257e021043a0cb4a777d58c9137614',1,'SecurityDirWrapper']]], ['setbufferedvalue_5',['setBufferedValue',['../class_abstract_byte_buffer.html#a645af5adcbc9ea0639ffd216cdb2b170',1,'AbstractByteBuffer']]], ['setcharacteristics_6',['setCharacteristics',['../class_section_hdr_wrapper.html#a35202ca90dfe8caa13540f31ecb225c7',1,'SectionHdrWrapper']]], ['setentrypoint_7',['setEntryPoint',['../class_p_e_file.html#a540e79b6105e41a69f04fc5374367b36',1,'PEFile']]], ['sethdrsectionsnum_8',['setHdrSectionsNum',['../class_p_e_file.html#a893f8c6b03ccb7785757b5d4aee95f07',1,'PEFile']]], ['sethex_9',['setHex',['../class_formatter.html#af14f0559fb635c3a5afaa71fbc0e87ae',1,'Formatter']]], - ['setimagesize_10',['setImageSize',['../class_p_e_core.html#af05d45f16fb865550d00bdbdf3d9d8e8',1,'PECore::setImageSize()'],['../class_p_e_file.html#ac401f0d815819cd69fdb3e522af88fa0',1,'PEFile::setImageSize()']]], - ['setnumvalue_11',['setNumValue',['../class_abstract_byte_buffer.html#a5e4be1e74690ad6517c3d19ed946b857',1,'AbstractByteBuffer::setNumValue()'],['../class_exe_element_wrapper.html#a60e6c709525c912e4f4b60e7ecbdfb12',1,'ExeElementWrapper::setNumValue(size_t fieldId, uint64_t val)'],['../class_exe_element_wrapper.html#a1e74b95ca63396ca3f720b05a54f2b62',1,'ExeElementWrapper::setNumValue(size_t fieldId, size_t subField, uint64_t val)']]], + ['setimagesize_10',['setimagesize',['../class_p_e_core.html#af05d45f16fb865550d00bdbdf3d9d8e8',1,'PECore::setImageSize()'],['../class_p_e_file.html#ac401f0d815819cd69fdb3e522af88fa0',1,'PEFile::setImageSize()']]], + ['setnumvalue_11',['setnumvalue',['../class_abstract_byte_buffer.html#a5e4be1e74690ad6517c3d19ed946b857',1,'AbstractByteBuffer::setNumValue()'],['../class_exe_element_wrapper.html#a60e6c709525c912e4f4b60e7ecbdfb12',1,'ExeElementWrapper::setNumValue(size_t fieldId, uint64_t val)'],['../class_exe_element_wrapper.html#a1e74b95ca63396ca3f720b05a54f2b62',1,'ExeElementWrapper::setNumValue(size_t fieldId, size_t subField, uint64_t val)']]], ['setskipnonprintable_12',['setSkipNonPrintable',['../class_formatter.html#a184c36e62fb95e0df57aefdbc200a65b',1,'Formatter']]], ['setstringvalue_13',['setStringValue',['../class_abstract_byte_buffer.html#a91f67da45e60fe85a4b03bd4e2b1c59e',1,'AbstractByteBuffer']]], ['settextvalue_14',['setTextValue',['../class_abstract_byte_buffer.html#a39e77f97d0d667575ef574cc68255ae6',1,'AbstractByteBuffer']]], ['setvirtualsize_15',['setVirtualSize',['../class_p_e_file.html#a8b2bc35baf12d93820b5c10f78459bf6',1,'PEFile']]], - ['signaturematches_16',['signatureMatches',['../class_exe_builder.html#a9990099be9b3ccf17637ef6f8fce3291',1,'ExeBuilder::signatureMatches()'],['../class_d_o_s_exe_builder.html#af61a6197a24802577d439e2ce587b3ca',1,'DOSExeBuilder::signatureMatches()'],['../class_p_e_file_builder.html#ae651cc6bbd420150f4226ed0d515dd8c',1,'PEFileBuilder::signatureMatches()']]], + ['signaturematches_16',['signaturematches',['../class_exe_builder.html#a9990099be9b3ccf17637ef6f8fce3291',1,'ExeBuilder::signatureMatches()'],['../class_d_o_s_exe_builder.html#af61a6197a24802577d439e2ce587b3ca',1,'DOSExeBuilder::signatureMatches()'],['../class_p_e_file_builder.html#ae651cc6bbd420150f4226ed0d515dd8c',1,'PEFileBuilder::signatureMatches()']]], ['splitcharact_17',['splitCharact',['../class_file_hdr_wrapper.html#a29344e2019d8fa008f54b891543adf8a',1,'FileHdrWrapper']]], ['splitcharacteristics_18',['splitCharacteristics',['../class_section_hdr_wrapper.html#a1aa87e70606004870956c53281b1ae8d',1,'SectionHdrWrapper']]], ['splitdllcharact_19',['splitDllCharact',['../class_opt_hdr_wrapper.html#ae91a419a391f6a31059c9f245035c534',1,'OptHdrWrapper']]], diff --git a/search/functions_11.js b/search/functions_11.js index a91014fe..d958dd69 100644 --- a/search/functions_11.js +++ b/search/functions_11.js @@ -9,9 +9,9 @@ var searchData= ['tlsentrywrapper_6',['TlsEntryWrapper',['../class_tls_entry_wrapper.html#ab74215796ec6421dfcefc558176211d7',1,'TlsEntryWrapper']]], ['toqstring_7',['toQString',['../class_wrapped_value.html#aa298dfda5c7e3d9ab829e913a74fd9a7',1,'WrappedValue']]], ['toraw_8',['toRaw',['../class_executable.html#a310a106a5d61c54137c75c54042f4fa0',1,'Executable']]], - ['translatecharacteristics_9',['translateCharacteristics',['../class_file_hdr_wrapper.html#ae9a17e4f6f2c4948e7146ad105be5eb3',1,'FileHdrWrapper::translateCharacteristics()'],['../class_section_hdr_wrapper.html#a9671a2f5ab425dba30ca121432c3b6a3',1,'SectionHdrWrapper::translateCharacteristics()']]], + ['translatecharacteristics_9',['translatecharacteristics',['../class_file_hdr_wrapper.html#ae9a17e4f6f2c4948e7146ad105be5eb3',1,'FileHdrWrapper::translateCharacteristics()'],['../class_section_hdr_wrapper.html#a9671a2f5ab425dba30ca121432c3b6a3',1,'SectionHdrWrapper::translateCharacteristics()']]], ['translatedllcharacteristics_10',['translateDllCharacteristics',['../class_opt_hdr_wrapper.html#a50f3b338cb73ef1ac92df67a19f04843',1,'OptHdrWrapper']]], - ['translatefieldcontent_11',['translateFieldContent',['../class_opt_hdr_wrapper.html#a2f58952996bd80a93a8df5085e1ec900',1,'OptHdrWrapper::translateFieldContent()'],['../class_security_dir_wrapper.html#a037ebd28792517e6eae87e06c9adb3f6',1,'SecurityDirWrapper::translateFieldContent()'],['../class_rich_hdr_wrapper.html#afefee16bb14c27a7f58cb6601fab5e2e',1,'RichHdrWrapper::translateFieldContent()'],['../class_ld_config_dir_wrapper.html#abc88c0479f8e3f5879090893c01b71e4',1,'LdConfigDirWrapper::translateFieldContent()'],['../class_debug_dir_c_v_entry_wrapper.html#a0276e3f847dce139dea8c1ab2c72e79f',1,'DebugDirCVEntryWrapper::translateFieldContent()'],['../class_debug_dir_entry_wrapper.html#a34f1efb7b3acf7b77d2c9ac484ec026e',1,'DebugDirEntryWrapper::translateFieldContent()'],['../class_clr_dir_wrapper.html#a5e92bf89a741f2b78a30a8c280e9cb7a',1,'ClrDirWrapper::translateFieldContent()'],['../class_exe_element_wrapper.html#ac39b13e7ac41c89db1b66c6e7a57e757',1,'ExeElementWrapper::translateFieldContent()'],['../class_file_hdr_wrapper.html#a0de6339250f5c01a465fc7751db042f9',1,'FileHdrWrapper::translateFieldContent()']]], + ['translatefieldcontent_11',['translatefieldcontent',['../class_opt_hdr_wrapper.html#a2f58952996bd80a93a8df5085e1ec900',1,'OptHdrWrapper::translateFieldContent()'],['../class_security_dir_wrapper.html#a037ebd28792517e6eae87e06c9adb3f6',1,'SecurityDirWrapper::translateFieldContent()'],['../class_rich_hdr_wrapper.html#afefee16bb14c27a7f58cb6601fab5e2e',1,'RichHdrWrapper::translateFieldContent()'],['../class_ld_config_dir_wrapper.html#abc88c0479f8e3f5879090893c01b71e4',1,'LdConfigDirWrapper::translateFieldContent()'],['../class_debug_dir_c_v_entry_wrapper.html#a0276e3f847dce139dea8c1ab2c72e79f',1,'DebugDirCVEntryWrapper::translateFieldContent()'],['../class_debug_dir_entry_wrapper.html#a34f1efb7b3acf7b77d2c9ac484ec026e',1,'DebugDirEntryWrapper::translateFieldContent()'],['../class_clr_dir_wrapper.html#a5e92bf89a741f2b78a30a8c280e9cb7a',1,'ClrDirWrapper::translateFieldContent()'],['../class_exe_element_wrapper.html#ac39b13e7ac41c89db1b66c6e7a57e757',1,'ExeElementWrapper::translateFieldContent()'],['../class_file_hdr_wrapper.html#a0de6339250f5c01a465fc7751db042f9',1,'FileHdrWrapper::translateFieldContent()']]], ['translateflag_12',['translateFlag',['../class_clr_dir_wrapper.html#a6482ec54df71bff3d6c5bc29d0aeb6f2',1,'ClrDirWrapper']]], ['translateguardflag_13',['translateGuardFlag',['../class_ld_config_dir_wrapper.html#a43d84755174b5dcb0e8a4f8121996634',1,'LdConfigDirWrapper']]], ['translateguardflagscontent_14',['translateGuardFlagsContent',['../class_ld_config_dir_wrapper.html#a532f20c9b0555cb948fc303fd7bc9cf3',1,'LdConfigDirWrapper']]], @@ -19,6 +19,6 @@ var searchData= ['translateoptmagic_16',['translateOptMagic',['../class_opt_hdr_wrapper.html#a1bc7b80d2b5c95acf0cd5e98e6c6bcd4',1,'OptHdrWrapper']]], ['translateosversion_17',['translateOSVersion',['../class_opt_hdr_wrapper.html#a589cbcae1d89b2295ab5af8e0bc82d8f',1,'OptHdrWrapper']]], ['translatesubsystem_18',['translateSubsystem',['../class_opt_hdr_wrapper.html#a2d25477dc0fe8e3de6f756d5ba4c7cbb',1,'OptHdrWrapper']]], - ['translatetype_19',['translateType',['../class_debug_dir_entry_wrapper.html#aefefbb26d3a28d455fbeb50dc831e255',1,'DebugDirEntryWrapper::translateType()'],['../class_reloc_entry_wrapper.html#a0cd1f93bc857038e2773f7a4dbc55bf2',1,'RelocEntryWrapper::translateType()'],['../class_resource_entry_wrapper.html#aaf62191e5615d7504c94742edaacb56a',1,'ResourceEntryWrapper::translateType()'],['../class_resource_content_wrapper.html#a1947080dfd20756de608c2e40029be4e',1,'ResourceContentWrapper::translateType()'],['../class_security_dir_wrapper.html#ae527f94810e106aed6ae4246358e9ef1',1,'SecurityDirWrapper::translateType()']]], - ['typename_20',['typeName',['../class_exe_builder.html#ac80d9e1cf0d54bf93d915f249998cdc7',1,'ExeBuilder::typeName()'],['../class_d_o_s_exe_builder.html#a7ed22551a14df510965098dec9c737b5',1,'DOSExeBuilder::typeName()'],['../class_p_e_file_builder.html#a98168c0ec3abe40a825d418d97af666e',1,'PEFileBuilder::typeName()']]] + ['translatetype_19',['translatetype',['../class_debug_dir_entry_wrapper.html#aefefbb26d3a28d455fbeb50dc831e255',1,'DebugDirEntryWrapper::translateType()'],['../class_reloc_entry_wrapper.html#a0cd1f93bc857038e2773f7a4dbc55bf2',1,'RelocEntryWrapper::translateType()'],['../class_resource_entry_wrapper.html#aaf62191e5615d7504c94742edaacb56a',1,'ResourceEntryWrapper::translateType()'],['../class_resource_content_wrapper.html#a1947080dfd20756de608c2e40029be4e',1,'ResourceContentWrapper::translateType()'],['../class_security_dir_wrapper.html#ae527f94810e106aed6ae4246358e9ef1',1,'SecurityDirWrapper::translateType()']]], + ['typename_20',['typename',['../class_exe_builder.html#ac80d9e1cf0d54bf93d915f249998cdc7',1,'ExeBuilder::typeName()'],['../class_d_o_s_exe_builder.html#a7ed22551a14df510965098dec9c737b5',1,'DOSExeBuilder::typeName()'],['../class_p_e_file_builder.html#a98168c0ec3abe40a825d418d97af666e',1,'PEFileBuilder::typeName()']]] ]; diff --git a/search/functions_14.js b/search/functions_14.js index 86aeafaa..2061c927 100644 --- a/search/functions_14.js +++ b/search/functions_14.js @@ -3,6 +3,6 @@ var searchData= ['what_0',['what',['../class_custom_exception.html#a15a4aacc703430f5caa7b8c375208445',1,'CustomException']]], ['wrap_1',['wrap',['../class_ld_config_dir_wrapper.html#a9725e4776e97d6d1b229c7b50098b516',1,'LdConfigDirWrapper::wrap()'],['../class_exe_element_wrapper.html#af1cd1e9dfaedea5c17a07c9e39d3150f',1,'ExeElementWrapper::wrap()'],['../class_opt_hdr_wrapper.html#a88217306b4a5133e605ed8476f8afdbb',1,'OptHdrWrapper::wrap()'],['../class_p_e_core.html#a7d654edc4d82e1d1643e49081bc5657c',1,'PECore::wrap()'],['../class_p_e_file.html#a716ee06f43de71d1885443d861edfb8d',1,'PEFile::wrap()'],['../class_p_e_file.html#ab6c8d2e43a306a0011301370705af1a7',1,'PEFile::wrap(AbstractByteBuffer *v_buf)'],['../class_reloc_dir_wrapper.html#a0ebd8bd0012704d6677b1f247537b6a7',1,'RelocDirWrapper::wrap()'],['../class_reloc_block_wrapper.html#a7abe3fc11581a1c23c27251b9e09d4ab',1,'RelocBlockWrapper::wrap()'],['../class_resource_dir_wrapper.html#a3c8214b5261e5970e8da5acacf3c6222',1,'ResourceDirWrapper::wrap()'],['../class_resource_entry_wrapper.html#ac326068e4c8fee45d83e10a9799290c0',1,'ResourceEntryWrapper::wrap()'],['../class_rich_hdr_wrapper.html#a5b8139d2b81d4508cfbb81c26662a96c',1,'RichHdrWrapper::wrap()'],['../class_resource_strings_wrapper.html#ab7fdbd278641336a3356f184318a5a4c',1,'ResourceStringsWrapper::wrap()'],['../class_section_hdr_wrapper.html#a0654b98cb5a6b16c6bdbaa6d70231586',1,'SectionHdrWrapper::wrap()'],['../class_sect_hdrs_wrapper.html#aa3f5a79d62f8053557740949bb8ace4b',1,'SectHdrsWrapper::wrap()'],['../class_security_dir_wrapper.html#ae7bd72bbd0ea4c1b0be99568cadbbbdc',1,'SecurityDirWrapper::wrap()'],['../class_tls_dir_wrapper.html#a3a60743f4c55cf39f23dbbb77fe796cf',1,'TlsDirWrapper::wrap()'],['../class_import_base_dir_wrapper.html#a8d69d5e98e7fd4bd1761730621ce1c9a',1,'ImportBaseDirWrapper::wrap()'],['../class_exe_node_wrapper.html#a5cd7f16e4529be2a96f87237e31b2611',1,'ExeNodeWrapper::wrap()'],['../class_exe_wrappers_container.html#a8bd5ec898de13cafe645dc6f3bad76bf',1,'ExeWrappersContainer::wrap()'],['../class_mapped_exe.html#a936dd29ca35e9234aa8b9c800034d28d',1,'MappedExe::wrap()'],['../class_mapped_exe.html#af7bed138e662b4551ea3e9c8cd2edf94',1,'MappedExe::wrap(AbstractByteBuffer *v_buf)=0'],['../class_bound_imp_dir_wrapper.html#aa333f4aed19caef73594687fd0be321e',1,'BoundImpDirWrapper::wrap()'],['../class_bound_entry_wrapper.html#abc7259183410be2a23ed2469b44fa915',1,'BoundEntryWrapper::wrap()'],['../class_clr_dir_wrapper.html#a2baf0bbdc4c5d75c50044d8d5fe010a7',1,'ClrDirWrapper::wrap()'],['../class_debug_dir_wrapper.html#ac081e75c9eed3c5f67aa9826bd335b82',1,'DebugDirWrapper::wrap()'],['../class_debug_dir_entry_wrapper.html#a094321c2f8f21b0e267683b7a84c7231',1,'DebugDirEntryWrapper::wrap()'],['../class_d_o_s_exe.html#abc0fd3216a5eb7bd3e1d307f44ce116b',1,'DOSExe::wrap()'],['../class_exception_dir_wrapper.html#a9780166edee43854b4bdbe996e076ff1',1,'ExceptionDirWrapper::wrap()'],['../class_exception_entry_wrapper.html#a410c44c5ed1cb185a004f69cdfb2ec35',1,'ExceptionEntryWrapper::wrap()'],['../class_export_dir_wrapper.html#a88aaf739c6239484688dd17e188d092f',1,'ExportDirWrapper::wrap()'],['../class_file_hdr_wrapper.html#a0c2aaa155ea4ec20770b59bcebd7f27a',1,'FileHdrWrapper::wrap()'],['../class_import_base_entry_wrapper.html#aa176da686bdcec05c9a4acd23c2cdf13',1,'ImportBaseEntryWrapper::wrap()']]], ['wrapleafscontent_2',['wrapLeafsContent',['../class_resources_album.html#a45775c8f0746ad67f1e406a7e221852f',1,'ResourcesAlbum']]], - ['wrappedvalue_3',['WrappedValue',['../class_wrapped_value.html#aa5efdb1c423a01139611e6ab1729e53e',1,'WrappedValue::WrappedValue()'],['../class_wrapped_value.html#a25417732791f92ad155e1713f53afba8',1,'WrappedValue::WrappedValue(AbstractByteBuffer *owner, offset_t offset, bufsize_t size, data_type type)']]], + ['wrappedvalue_3',['wrappedvalue',['../class_wrapped_value.html#aa5efdb1c423a01139611e6ab1729e53e',1,'WrappedValue::WrappedValue()'],['../class_wrapped_value.html#a25417732791f92ad155e1713f53afba8',1,'WrappedValue::WrappedValue(AbstractByteBuffer *owner, offset_t offset, bufsize_t size, data_type type)']]], ['wrapperscount_4',['wrappersCount',['../class_exe_wrappers_container.html#a320d0e2d4475f1bd5c36f93fdea9f43e',1,'ExeWrappersContainer']]] ]; diff --git a/search/functions_2.js b/search/functions_2.js index 0d32d017..d43af7bd 100644 --- a/search/functions_2.js +++ b/search/functions_2.js @@ -6,5 +6,5 @@ var searchData= ['bufferexception_3',['BufferException',['../class_buffer_exception.html#a4af32a7ca757175a41906ec6e889b126',1,'BufferException']]], ['bufferview_4',['BufferView',['../class_buffer_view.html#a7e28aa60f3734aecc9595741f5bba11c',1,'BufferView']]], ['build_5',['build',['../class_exe_builder.html#a7eed0fb932d27efb3bef6b7f461df3a7',1,'ExeBuilder::build()'],['../class_exe_factory.html#a3998dc482c24498b474b801b2b9f4ddf',1,'ExeFactory::build()'],['../class_d_o_s_exe_builder.html#a5f40fd34d7e0eb259c258e14cc6f16f0',1,'DOSExeBuilder::build()'],['../class_p_e_file_builder.html#a85aed87fd79505c5a9bf111d51bfd503',1,'PEFileBuilder::build()']]], - ['bytebuffer_6',['ByteBuffer',['../class_byte_buffer.html#a7aa532de539fe0d1218349bb9dd043df',1,'ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)'],['../class_byte_buffer.html#aec65ed51a3f5a493df804a85f35af51c',1,'ByteBuffer::ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)'],['../class_byte_buffer.html#a9e0b0a64bb772e273d82f3069e2fb7fb',1,'ByteBuffer::ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding=DEFAULT_PADDING)']]] + ['bytebuffer_6',['bytebuffer',['../class_byte_buffer.html#a7aa532de539fe0d1218349bb9dd043df',1,'ByteBuffer::ByteBuffer(bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)'],['../class_byte_buffer.html#aec65ed51a3f5a493df804a85f35af51c',1,'ByteBuffer::ByteBuffer(BYTE *v_content, bufsize_t v_size, bufsize_t padding=DEFAULT_PADDING)'],['../class_byte_buffer.html#a9e0b0a64bb772e273d82f3069e2fb7fb',1,'ByteBuffer::ByteBuffer(AbstractByteBuffer *sourceBuf, offset_t offset, bufsize_t size, bufsize_t padding=DEFAULT_PADDING)']]] ]; diff --git a/search/functions_3.js b/search/functions_3.js index 7760a626..076c65fd 100644 --- a/search/functions_3.js +++ b/search/functions_3.js @@ -1,31 +1,31 @@ var searchData= [ ['calcchecksum_0',['calcChecksum',['../class_rich_hdr_wrapper.html#a947afa6580dac5e7f0b4e20c41d2185e',1,'RichHdrWrapper']]], - ['callvia_1',['callVia',['../class_delay_imp_func_wrapper.html#aea462a1e1a003bc6069bcda415c90d95',1,'DelayImpFuncWrapper::callVia()'],['../class_imported_func_wrapper.html#abeabc9dc8ff6a3c55907fbbf0c1ca232',1,'ImportedFuncWrapper::callVia()'],['../class_import_base_func_wrapper.html#ab7262c25838f7e5b8ab9e243f5e616ce',1,'ImportBaseFuncWrapper::callVia()']]], - ['canaddentry_2',['canAddEntry',['../class_exe_node_wrapper.html#a93babf789a4e49566b20395e43ffc797',1,'ExeNodeWrapper::canAddEntry()'],['../class_sect_hdrs_wrapper.html#a4db6152b11ac5f460f3fffa932144b89',1,'SectHdrsWrapper::canAddEntry()']]], + ['callvia_1',['callvia',['../class_delay_imp_func_wrapper.html#aea462a1e1a003bc6069bcda415c90d95',1,'DelayImpFuncWrapper::callVia()'],['../class_imported_func_wrapper.html#abeabc9dc8ff6a3c55907fbbf0c1ca232',1,'ImportedFuncWrapper::callVia()'],['../class_import_base_func_wrapper.html#ab7262c25838f7e5b8ab9e243f5e616ce',1,'ImportBaseFuncWrapper::callVia()']]], + ['canaddentry_2',['canaddentry',['../class_exe_node_wrapper.html#a93babf789a4e49566b20395e43ffc797',1,'ExeNodeWrapper::canAddEntry()'],['../class_sect_hdrs_wrapper.html#a4db6152b11ac5f460f3fffa932144b89',1,'SectHdrsWrapper::canAddEntry()']]], ['canaddnewsection_3',['canAddNewSection',['../class_p_e_file.html#ae4e53b490f606ebec77317b0b7e7f996',1,'PEFile']]], ['cancopytooffset_4',['canCopyToOffset',['../class_exe_element_wrapper.html#a1f58acc525be97f70b60d8a3ab1df6da',1,'ExeElementWrapper']]], - ['canresize_5',['canResize',['../class_mapped_exe.html#a0086dbc7e88025fc100cd258d1aa7df4',1,'MappedExe::canResize()'],['../class_p_e_file.html#adc9a572357c081d5fb8c6f7bb212c6a9',1,'PEFile::canResize()']]], + ['canresize_5',['canresize',['../class_mapped_exe.html#a0086dbc7e88025fc100cd258d1aa7df4',1,'MappedExe::canResize()'],['../class_p_e_file.html#adc9a572357c081d5fb8c6f7bb212c6a9',1,'PEFile::canResize()']]], ['clear_6',['clear',['../class_ld_config_dir_wrapper.html#a9ef0c9517e89724c92ab76e87a767387',1,'LdConfigDirWrapper::clear()'],['../class_sect_hdrs_wrapper.html#ad8cb1252bf430a536664675ffd31a6b0',1,'SectHdrsWrapper::clear()'],['../class_resources_album.html#a11466f13115f4491c5d1796d6092cffc',1,'ResourcesAlbum::clear()'],['../class_resource_entry_wrapper.html#a8a963b1e9d2a70fb23bcbc057ad87208',1,'ResourceEntryWrapper::clear()'],['../class_export_dir_wrapper.html#a706eeb2665046143ff6fc2379a451bec',1,'ExportDirWrapper::clear()'],['../class_common_ordinals_lookup.html#afca9209195b50366aaf379bf1f236a88',1,'CommonOrdinalsLookup::clear()'],['../class_exe_node_wrapper.html#abd74c2637211cf471d022b528654c84c',1,'ExeNodeWrapper::clear()']]], ['clearcontent_7',['clearContent',['../class_p_e_file.html#a9d533e42b3fcf6d6de7d0b188326ea74',1,'PEFile']]], ['clearleafscontent_8',['clearLeafsContent',['../class_resources_album.html#a3787964dab392032ae17f74ba747b9d8',1,'ResourcesAlbum']]], ['clearmapping_9',['clearMapping',['../class_import_base_dir_wrapper.html#aae9d0cf2cf11d4701bebb430b0326b08',1,'ImportBaseDirWrapper']]], - ['clearwrappers_10',['clearWrappers',['../class_exe_wrappers_container.html#a54af5aa313aaa568653fb32395a80195',1,'ExeWrappersContainer::clearWrappers()'],['../class_p_e_file.html#aa84f5074e8e5f9c6b29becd0ddfd523c',1,'PEFile::clearWrappers()']]], + ['clearwrappers_10',['clearwrappers',['../class_exe_wrappers_container.html#a54af5aa313aaa568653fb32395a80195',1,'ExeWrappersContainer::clearWrappers()'],['../class_p_e_file.html#aa84f5074e8e5f9c6b29becd0ddfd523c',1,'PEFile::clearWrappers()']]], ['clrdirwrapper_11',['ClrDirWrapper',['../class_clr_dir_wrapper.html#a016ad3aeb121981fb4d55c0d1a4e8a98',1,'ClrDirWrapper']]], ['codeoffset_12',['codeOffset',['../class_d_o_s_exe.html#a0dc602c68c8eb5b146b93112d86893a9',1,'DOSExe']]], ['codetostring_13',['codeToString',['../class_custom_exception.html#a956cad0ac8cc9568d8f06e7f11dc51a2',1,'CustomException']]], ['commonordinalslookup_14',['CommonOrdinalsLookup',['../class_common_ordinals_lookup.html#ad4a0c4e72ec13a1f5e9c9944ecd43132',1,'CommonOrdinalsLookup']]], - ['commonordinalsmap_15',['CommonOrdinalsMap',['../class_common_ordinals_map.html#a59e06f8c0779dfe150dd3e5ba23fb3f8',1,'CommonOrdinalsMap::CommonOrdinalsMap()'],['../class_common_ordinals_map.html#ae683dc0b100af8f9aeb1169a727fd2b3',1,'CommonOrdinalsMap::CommonOrdinalsMap(QString _dllName)']]], + ['commonordinalsmap_15',['commonordinalsmap',['../class_common_ordinals_map.html#a59e06f8c0779dfe150dd3e5ba23fb3f8',1,'CommonOrdinalsMap::CommonOrdinalsMap()'],['../class_common_ordinals_map.html#ae683dc0b100af8f9aeb1169a727fd2b3',1,'CommonOrdinalsMap::CommonOrdinalsMap(QString _dllName)']]], ['commonordinalsoleaut32_16',['CommonOrdinalsOleaut32',['../class_common_ordinals_oleaut32.html#a4d4f52ee8b2e2de7cedef847536997cc',1,'CommonOrdinalsOleaut32']]], ['commonordinalsws2_5f32_17',['CommonOrdinalsWS2_32',['../class_common_ordinals_w_s2__32.html#a9439a5235aa2f216ec4bb81d07f474d8',1,'CommonOrdinalsWS2_32']]], ['compidcount_18',['compIdCount',['../class_rich_hdr_wrapper.html#a9fa2a440b039172e68a3966841dea293',1,'RichHdrWrapper']]], ['computechecksum_19',['computeChecksum',['../class_p_e_file.html#ae7d8f52aaf0c8e5945eb68b76bbb5d96',1,'PEFile']]], - ['containsaddrtype_20',['containsAddrType',['../class_imported_func_wrapper.html#a86a7797cd4c3881c787a90cdc619d8ce',1,'ImportedFuncWrapper::containsAddrType()'],['../class_ld_config_dir_wrapper.html#ad8ebfc0a9bb4875d5e4347d104ef027b',1,'LdConfigDirWrapper::containsAddrType()'],['../class_ld_config_entry_wrapper.html#a33d4ceb10f68fdaa812da22f2c0b8d9d',1,'LdConfigEntryWrapper::containsAddrType()'],['../class_opt_hdr_wrapper.html#a1237d1e844f5a5fbfbbee66b061b4b75',1,'OptHdrWrapper::containsAddrType()'],['../class_reloc_block_wrapper.html#ab8b0e353acb1fd577cf454d10f987585',1,'RelocBlockWrapper::containsAddrType()'],['../class_reloc_entry_wrapper.html#a10cd6f8cd74ce170ec4712aa3b3ef42f',1,'RelocEntryWrapper::containsAddrType()'],['../class_resource_entry_wrapper.html#a53813936738fccc36c3d23d0153d7166',1,'ResourceEntryWrapper::containsAddrType()'],['../class_delay_imp_entry_wrapper.html#a4fb7884c5a6a8dbcaa4122d55bf4e2fc',1,'DelayImpEntryWrapper::containsAddrType()'],['../class_resource_leaf_wrapper.html#ae5d8a275e186d4588d595dd714c04dd2',1,'ResourceLeafWrapper::containsAddrType()'],['../class_rich_hdr_wrapper.html#a049aada35e8dca15ea4004c32d7861e0',1,'RichHdrWrapper::containsAddrType()'],['../class_section_hdr_wrapper.html#a95b3f58e69a7b38367a2701ca7df89eb',1,'SectionHdrWrapper::containsAddrType()'],['../class_tls_dir_wrapper.html#afc047beec3fff8fea78e5535e19b28af',1,'TlsDirWrapper::containsAddrType()'],['../class_tls_entry_wrapper.html#a8284e4b6950efe8d22ffc18dca14ab1a',1,'TlsEntryWrapper::containsAddrType()'],['../class_file_hdr_wrapper.html#a21f95f34fc7e0a77a4fad8830d11b13c',1,'FileHdrWrapper::containsAddrType()'],['../class_import_entry_wrapper.html#a7ffe9f8539b4305ace49513c696de90c',1,'ImportEntryWrapper::containsAddrType()'],['../class_exe_element_wrapper.html#a8108914de5353bd75c8874bb3fb17129',1,'ExeElementWrapper::containsAddrType()'],['../class_clr_dir_wrapper.html#a8bc11566fdb90d7962b86e0f2d5bdd41',1,'ClrDirWrapper::containsAddrType()'],['../class_data_dir_wrapper.html#a70f6562f2d0fdcabdab258ae438b0884',1,'DataDirWrapper::containsAddrType()'],['../class_debug_dir_entry_wrapper.html#aebcd309b79ac748e398fd5911a4904bf',1,'DebugDirEntryWrapper::containsAddrType()'],['../class_debug_dir_c_v_entry_wrapper.html#ac59a2e632af154ef8eafeae33482c246',1,'DebugDirCVEntryWrapper::containsAddrType()'],['../class_delay_imp_func_wrapper.html#a2d8546adf2b32cd7895bf3e5191f808d',1,'DelayImpFuncWrapper::containsAddrType()'],['../class_dos_hdr_wrapper.html#a2b2af365fa7330fbd198eb636aa247ca',1,'DosHdrWrapper::containsAddrType()'],['../class_exception_entry_wrapper.html#ae9404e5cb638b5c444aec3ffefacf096',1,'ExceptionEntryWrapper::containsAddrType()'],['../class_export_dir_wrapper.html#ab2f4f6ac5b4e50a0ef9e96ecfa3ca0d2',1,'ExportDirWrapper::containsAddrType()'],['../class_export_entry_wrapper.html#ab31921f4cae18bccd7781e6863290ef7',1,'ExportEntryWrapper::containsAddrType()']]], + ['containsaddrtype_20',['containsaddrtype',['../class_imported_func_wrapper.html#a86a7797cd4c3881c787a90cdc619d8ce',1,'ImportedFuncWrapper::containsAddrType()'],['../class_ld_config_dir_wrapper.html#ad8ebfc0a9bb4875d5e4347d104ef027b',1,'LdConfigDirWrapper::containsAddrType()'],['../class_ld_config_entry_wrapper.html#a33d4ceb10f68fdaa812da22f2c0b8d9d',1,'LdConfigEntryWrapper::containsAddrType()'],['../class_opt_hdr_wrapper.html#a1237d1e844f5a5fbfbbee66b061b4b75',1,'OptHdrWrapper::containsAddrType()'],['../class_reloc_block_wrapper.html#ab8b0e353acb1fd577cf454d10f987585',1,'RelocBlockWrapper::containsAddrType()'],['../class_reloc_entry_wrapper.html#a10cd6f8cd74ce170ec4712aa3b3ef42f',1,'RelocEntryWrapper::containsAddrType()'],['../class_resource_entry_wrapper.html#a53813936738fccc36c3d23d0153d7166',1,'ResourceEntryWrapper::containsAddrType()'],['../class_delay_imp_entry_wrapper.html#a4fb7884c5a6a8dbcaa4122d55bf4e2fc',1,'DelayImpEntryWrapper::containsAddrType()'],['../class_resource_leaf_wrapper.html#ae5d8a275e186d4588d595dd714c04dd2',1,'ResourceLeafWrapper::containsAddrType()'],['../class_rich_hdr_wrapper.html#a049aada35e8dca15ea4004c32d7861e0',1,'RichHdrWrapper::containsAddrType()'],['../class_section_hdr_wrapper.html#a95b3f58e69a7b38367a2701ca7df89eb',1,'SectionHdrWrapper::containsAddrType()'],['../class_tls_dir_wrapper.html#afc047beec3fff8fea78e5535e19b28af',1,'TlsDirWrapper::containsAddrType()'],['../class_tls_entry_wrapper.html#a8284e4b6950efe8d22ffc18dca14ab1a',1,'TlsEntryWrapper::containsAddrType()'],['../class_file_hdr_wrapper.html#a21f95f34fc7e0a77a4fad8830d11b13c',1,'FileHdrWrapper::containsAddrType()'],['../class_import_entry_wrapper.html#a7ffe9f8539b4305ace49513c696de90c',1,'ImportEntryWrapper::containsAddrType()'],['../class_exe_element_wrapper.html#a8108914de5353bd75c8874bb3fb17129',1,'ExeElementWrapper::containsAddrType()'],['../class_clr_dir_wrapper.html#a8bc11566fdb90d7962b86e0f2d5bdd41',1,'ClrDirWrapper::containsAddrType()'],['../class_data_dir_wrapper.html#a70f6562f2d0fdcabdab258ae438b0884',1,'DataDirWrapper::containsAddrType()'],['../class_debug_dir_entry_wrapper.html#aebcd309b79ac748e398fd5911a4904bf',1,'DebugDirEntryWrapper::containsAddrType()'],['../class_debug_dir_c_v_entry_wrapper.html#ac59a2e632af154ef8eafeae33482c246',1,'DebugDirCVEntryWrapper::containsAddrType()'],['../class_delay_imp_func_wrapper.html#a2d8546adf2b32cd7895bf3e5191f808d',1,'DelayImpFuncWrapper::containsAddrType()'],['../class_dos_hdr_wrapper.html#a2b2af365fa7330fbd198eb636aa247ca',1,'DosHdrWrapper::containsAddrType()'],['../class_exception_entry_wrapper.html#ae9404e5cb638b5c444aec3ffefacf096',1,'ExceptionEntryWrapper::containsAddrType()'],['../class_export_dir_wrapper.html#ab2f4f6ac5b4e50a0ef9e96ecfa3ca0d2',1,'ExportDirWrapper::containsAddrType()'],['../class_export_entry_wrapper.html#ab31921f4cae18bccd7781e6863290ef7',1,'ExportEntryWrapper::containsAddrType()']]], ['containsblock_21',['containsBlock',['../class_abstract_byte_buffer.html#a9fe8ad85b0926eacf7e3e4731b0344a3',1,'AbstractByteBuffer']]], - ['containsdatatype_22',['containsDataType',['../class_security_dir_wrapper.html#aa4a20aad32b13b8ab80bd34b52533f43',1,'SecurityDirWrapper::containsDataType()'],['../class_reloc_block_wrapper.html#a0374f7305a2d9a1f315e23ac190ebd02',1,'RelocBlockWrapper::containsDataType()'],['../class_section_hdr_wrapper.html#aae7571e02b78ab566c100dda88baaa2c',1,'SectionHdrWrapper::containsDataType()'],['../class_resource_version_wrapper.html#a2bb81deb942f3f4939ce9d1711972e93',1,'ResourceVersionWrapper::containsDataType()'],['../class_resource_strings_wrapper.html#ab638d9a9fb7ddd4522107577de2659ce',1,'ResourceStringsWrapper::containsDataType()'],['../class_res_string.html#afa0c4a78fca1de554fb8548fa7331f75',1,'ResString::containsDataType()'],['../class_reource_h_t_m_l_wrapper.html#aaf6e24a9090198000074c643a08ed228',1,'ReourceHTMLWrapper::containsDataType()'],['../class_reource_manifest_wrapper.html#ab32f51338178cb53972aac8d39276fd5',1,'ReourceManifestWrapper::containsDataType()'],['../class_resource_content_wrapper.html#acf3b9c996c16b047edf841a683887c74',1,'ResourceContentWrapper::containsDataType()'],['../class_exe_element_wrapper.html#a86cc36cd7ea4808d93c0ac59ffb12e60',1,'ExeElementWrapper::containsDataType()']]], + ['containsdatatype_22',['containsdatatype',['../class_security_dir_wrapper.html#aa4a20aad32b13b8ab80bd34b52533f43',1,'SecurityDirWrapper::containsDataType()'],['../class_reloc_block_wrapper.html#a0374f7305a2d9a1f315e23ac190ebd02',1,'RelocBlockWrapper::containsDataType()'],['../class_section_hdr_wrapper.html#aae7571e02b78ab566c100dda88baaa2c',1,'SectionHdrWrapper::containsDataType()'],['../class_resource_version_wrapper.html#a2bb81deb942f3f4939ce9d1711972e93',1,'ResourceVersionWrapper::containsDataType()'],['../class_resource_strings_wrapper.html#ab638d9a9fb7ddd4522107577de2659ce',1,'ResourceStringsWrapper::containsDataType()'],['../class_res_string.html#afa0c4a78fca1de554fb8548fa7331f75',1,'ResString::containsDataType()'],['../class_reource_h_t_m_l_wrapper.html#aaf6e24a9090198000074c643a08ed228',1,'ReourceHTMLWrapper::containsDataType()'],['../class_reource_manifest_wrapper.html#ab32f51338178cb53972aac8d39276fd5',1,'ReourceManifestWrapper::containsDataType()'],['../class_resource_content_wrapper.html#acf3b9c996c16b047edf841a683887c74',1,'ResourceContentWrapper::containsDataType()'],['../class_exe_element_wrapper.html#a86cc36cd7ea4808d93c0ac59ffb12e60',1,'ExeElementWrapper::containsDataType()']]], ['convertaddr_23',['convertAddr',['../class_executable.html#ab8129d6c42c7b4e84bf524381e4561b9',1,'Executable']]], ['copytooffset_24',['copyToOffset',['../class_exe_element_wrapper.html#aae7b512e4a6302259348e4f9ce817c36',1,'ExeElementWrapper']]], ['count_25',['count',['../class_resources_container.html#a3c38a9853548f264d01b01eca49a8672',1,'ResourcesContainer']]], ['createsectionview_26',['createSectionView',['../class_p_e_file.html#a80e5f636ab55ba20ae256c81e63ac4f4',1,'PEFile']]], - ['customexception_27',['CustomException',['../class_custom_exception.html#a1de10b1a2ce870d04854456f3d69590f',1,'CustomException::CustomException(const QString info, const int32_t code=UNKNOWN_EXCEPTION)'],['../class_custom_exception.html#a4262c8ac437b565af2a8418d0aa04118',1,'CustomException::CustomException(const int32_t code)']]] + ['customexception_27',['customexception',['../class_custom_exception.html#a1de10b1a2ce870d04854456f3d69590f',1,'CustomException::CustomException(const QString info, const int32_t code=UNKNOWN_EXCEPTION)'],['../class_custom_exception.html#a4262c8ac437b565af2a8418d0aa04118',1,'CustomException::CustomException(const int32_t code)']]] ]; diff --git a/search/functions_5.js b/search/functions_5.js index 6c269398..4fd6c11a 100644 --- a/search/functions_5.js +++ b/search/functions_5.js @@ -12,7 +12,7 @@ var searchData= ['exeelementwrapper_9',['ExeElementWrapper',['../class_exe_element_wrapper.html#a7764c345edef03df4f974f7f09a70a3b',1,'ExeElementWrapper']]], ['exeexception_10',['ExeException',['../class_exe_exception.html#a5a1d0a0e89988addd03224aa47c5dcb5',1,'ExeException']]], ['exefactoryexception_11',['ExeFactoryException',['../class_exe_factory_exception.html#abaf55cdb3d1988c20e6c57f4415bb4f0',1,'ExeFactoryException']]], - ['exenodewrapper_12',['ExeNodeWrapper',['../class_exe_node_wrapper.html#a62bc3ef1f006f8b4ac823c3d573819ce',1,'ExeNodeWrapper::ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent=NULL)'],['../class_exe_node_wrapper.html#adb280f768896cb573d995e3738988cb4',1,'ExeNodeWrapper::ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent, size_t entryNumber)']]], + ['exenodewrapper_12',['exenodewrapper',['../class_exe_node_wrapper.html#a62bc3ef1f006f8b4ac823c3d573819ce',1,'ExeNodeWrapper::ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent=NULL)'],['../class_exe_node_wrapper.html#adb280f768896cb573d995e3738988cb4',1,'ExeNodeWrapper::ExeNodeWrapper(Executable *pe, ExeNodeWrapper *parent, size_t entryNumber)']]], ['exewrapperscontainer_13',['ExeWrappersContainer',['../class_exe_wrappers_container.html#a0a27d87b01905e3c9fbf60f52bccdec3',1,'ExeWrappersContainer']]], ['exportdir_14',['exportDir',['../class_export_dir_wrapper.html#a7e49769340051dc3d1f11a60288e281f',1,'ExportDirWrapper']]], ['exportdirwrapper_15',['ExportDirWrapper',['../class_export_dir_wrapper.html#a5b0b8f1f86d3848ee3533adcf6c8988c',1,'ExportDirWrapper']]], diff --git a/search/functions_6.js b/search/functions_6.js index 5eade0f4..e4b5d9df 100644 --- a/search/functions_6.js +++ b/search/functions_6.js @@ -7,7 +7,7 @@ var searchData= ['fillcontent_4',['fillContent',['../class_abstract_byte_buffer.html#af71537f23fca3c17751b782fc41a4ca2',1,'AbstractByteBuffer']]], ['findfuncname_5',['findFuncName',['../class_common_ordinals_lookup.html#af0c6304bd8c696c17cbf2aa4c3fed5d6',1,'CommonOrdinalsLookup']]], ['findmatching_6',['findMatching',['../class_exe_factory.html#a2d77a07fa81a40bfa5edcf3a00bc10fd',1,'ExeFactory']]], - ['firstdelayld_7',['firstDelayLd',['../class_delay_imp_dir_wrapper.html#a7f046b23700a0da8f7a04fb4f3dc3f05',1,'DelayImpDirWrapper::firstDelayLd()'],['../class_delay_imp_dir_wrapper.html#adf0e92cb99f87b14a29dcf58153b1d94',1,'DelayImpDirWrapper::firstDelayLd(bufsize_t size)']]], + ['firstdelayld_7',['firstdelayld',['../class_delay_imp_dir_wrapper.html#a7f046b23700a0da8f7a04fb4f3dc3f05',1,'DelayImpDirWrapper::firstDelayLd()'],['../class_delay_imp_dir_wrapper.html#adf0e92cb99f87b14a29dcf58153b1d94',1,'DelayImpDirWrapper::firstDelayLd(bufsize_t size)']]], ['firstdescriptor_8',['firstDescriptor',['../class_import_dir_wrapper.html#ac294c418dc641d108d10ea9c4e1e1694',1,'ImportDirWrapper']]], ['firstsubentryptr_9',['firstSubEntryPtr',['../class_ld_config_dir_wrapper.html#aad06d308525d1f1658b4d496fe1bf9db',1,'LdConfigDirWrapper']]], ['firstsubentrysize_10',['firstSubEntrySize',['../class_ld_config_dir_wrapper.html#a4325b643a80909e6835f050f31dee498',1,'LdConfigDirWrapper']]], diff --git a/search/functions_7.js b/search/functions_7.js index 1f718739..5d03e480 100644 --- a/search/functions_7.js +++ b/search/functions_7.js @@ -1,29 +1,29 @@ var searchData= [ - ['geentrysize_0',['geEntrySize',['../class_import_entry_wrapper.html#a1fc7a429916eabaae1f59e9809df6c16',1,'ImportEntryWrapper::geEntrySize()'],['../class_exe_node_wrapper.html#a7b8052d3bc6614113d34ccbfcf9b08be',1,'ExeNodeWrapper::geEntrySize()']]], + ['geentrysize_0',['geentrysize',['../class_import_entry_wrapper.html#a1fc7a429916eabaae1f59e9809df6c16',1,'ImportEntryWrapper::geEntrySize()'],['../class_exe_node_wrapper.html#a7b8052d3bc6614113d34ccbfcf9b08be',1,'ExeNodeWrapper::geEntrySize()']]], ['getaddrsize_1',['getAddrSize',['../class_import_base_func_wrapper.html#a6f6b0bbc1e38f2cdb5f413ea4fd7337d',1,'ImportBaseFuncWrapper']]], - ['getalbumptr_2',['getAlbumPtr',['../class_resource_dir_wrapper.html#afefcfd07ea50d74885d9a652feeef332',1,'ResourceDirWrapper::getAlbumPtr()'],['../class_resource_entry_wrapper.html#a3005df7b5e9dca93a6822c401790bbbb',1,'ResourceEntryWrapper::getAlbumPtr()']]], - ['getalignment_3',['getAlignment',['../class_executable.html#ab74d0e5dd5daa2d8da6387f85c233287',1,'Executable::getAlignment()'],['../class_d_o_s_exe.html#afb5e62dec1e4bba1d214b5f71f59f7f6',1,'DOSExe::getAlignment()'],['../class_p_e_core.html#a4acc20ded3755cb301f284b0de0b0652',1,'PECore::getAlignment()'],['../class_p_e_file.html#acfaebe1d9ceb92b150eee6357cf1ca5c',1,'PEFile::getAlignment()']]], - ['getallentrypoints_4',['getAllEntryPoints',['../class_executable.html#a86fc35fdd3f5764d8b9940024a043330',1,'Executable::getAllEntryPoints()'],['../class_p_e_file.html#a601394b4354a7b4091bef37c00345868',1,'PEFile::getAllEntryPoints()']]], + ['getalbumptr_2',['getalbumptr',['../class_resource_dir_wrapper.html#afefcfd07ea50d74885d9a652feeef332',1,'ResourceDirWrapper::getAlbumPtr()'],['../class_resource_entry_wrapper.html#a3005df7b5e9dca93a6822c401790bbbb',1,'ResourceEntryWrapper::getAlbumPtr()']]], + ['getalignment_3',['getalignment',['../class_executable.html#ab74d0e5dd5daa2d8da6387f85c233287',1,'Executable::getAlignment()'],['../class_d_o_s_exe.html#afb5e62dec1e4bba1d214b5f71f59f7f6',1,'DOSExe::getAlignment()'],['../class_p_e_core.html#a4acc20ded3755cb301f284b0de0b0652',1,'PECore::getAlignment()'],['../class_p_e_file.html#acfaebe1d9ceb92b150eee6357cf1ca5c',1,'PEFile::getAlignment()']]], + ['getallentrypoints_4',['getallentrypoints',['../class_executable.html#a86fc35fdd3f5764d8b9940024a043330',1,'Executable::getAllEntryPoints()'],['../class_p_e_file.html#a601394b4354a7b4091bef37c00345868',1,'PEFile::getAllEntryPoints()']]], ['getasciilen_5',['getAsciiLen',['../namespacepe__util.html#a29d9c3fbe1df4a57764cd7da1263c695',1,'pe_util']]], ['getasciilenw_6',['getAsciiLenW',['../namespacepe__util.html#acc15740993227e006ab9ae4ea53ef6d3',1,'pe_util']]], - ['getbitmode_7',['getBitMode',['../class_executable.html#a2f2044788eb57c73903dca8e6a0477c2',1,'Executable::getBitMode()'],['../class_p_e_file.html#ad3a9277a8a87d1f8aebffc93551e2665',1,'PEFile::getBitMode()']]], + ['getbitmode_7',['getbitmode',['../class_executable.html#a2f2044788eb57c73903dca8e6a0477c2',1,'Executable::getBitMode()'],['../class_p_e_file.html#ad3a9277a8a87d1f8aebffc93551e2665',1,'PEFile::getBitMode()']]], ['getcharacteristics_8',['getCharacteristics',['../class_section_hdr_wrapper.html#a1f3da806e7d347f55eb3e6d2819d2cf4',1,'SectionHdrWrapper']]], ['getchildaddress_9',['getChildAddress',['../class_resource_entry_wrapper.html#a7578640e456565b30a017b91a18e198e',1,'ResourceEntryWrapper']]], ['getchildoffsettodirectory_10',['getChildOffsetToDirectory',['../class_resource_entry_wrapper.html#adc5168fb598c839544eae239a2ac13e2',1,'ResourceEntryWrapper']]], ['getcode_11',['getCode',['../class_custom_exception.html#a8527907ab0ce2b35de79f64a05e12dc4',1,'CustomException']]], ['getcompid_12',['getCompId',['../class_rich_hdr_wrapper.html#a80f930bee129f493f98a881156855ef6',1,'RichHdrWrapper']]], - ['getcontent_13',['getContent',['../class_abstract_byte_buffer.html#a2d68f6930726a129478c8ab5ed38779a',1,'AbstractByteBuffer::getContent()'],['../class_buffer_view.html#aa4a53aab5f6e22fb195d6b7ae8ed9e1f',1,'BufferView::getContent()'],['../class_byte_buffer.html#a04b5a95c6ab66b3685c2c6ff0aebf29e',1,'ByteBuffer::getContent()'],['../class_executable.html#a66e5a30580de455968bd682da7781af4',1,'Executable::getContent()'],['../class_exe_element_wrapper.html#a73e41be695c3260ba0764d5b9092937c',1,'ExeElementWrapper::getContent()'],['../class_file_view.html#a107374591eefba7980df282f52b3b8bc',1,'FileView::getContent()'],['../class_file_buffer.html#aa4a5ce54fcad76e42d7dbb867b10d2bb',1,'FileBuffer::getContent()']]], - ['getcontentat_14',['getContentAt',['../class_abstract_byte_buffer.html#a64f38e33f915741eb283ef9a34cacb6d',1,'AbstractByteBuffer::getContentAt()'],['../class_resource_content_wrapper.html#a1f8c6485f9736e4e2f02c83c5c584616',1,'ResourceContentWrapper::getContentAt()'],['../class_executable.html#a73f47abf247435055849c62f25cddb36',1,'Executable::getContentAt(offset_t offset, Executable::addr_type aType, bufsize_t size, bool allowExceptions=false)'],['../class_executable.html#a3f2511a46b6732f4afbcaa6a1bfb6c46',1,'Executable::getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)']]], - ['getcontentatptr_15',['getContentAtPtr',['../class_abstract_byte_buffer.html#a1bb3488a20437ae30801b5f1b30d10ca',1,'AbstractByteBuffer::getContentAtPtr()'],['../class_executable.html#a3dc1741cba39f6422ad114a3417c88bf',1,'Executable::getContentAtPtr()']]], + ['getcontent_13',['getcontent',['../class_abstract_byte_buffer.html#a2d68f6930726a129478c8ab5ed38779a',1,'AbstractByteBuffer::getContent()'],['../class_buffer_view.html#aa4a53aab5f6e22fb195d6b7ae8ed9e1f',1,'BufferView::getContent()'],['../class_byte_buffer.html#a04b5a95c6ab66b3685c2c6ff0aebf29e',1,'ByteBuffer::getContent()'],['../class_executable.html#a66e5a30580de455968bd682da7781af4',1,'Executable::getContent()'],['../class_exe_element_wrapper.html#a73e41be695c3260ba0764d5b9092937c',1,'ExeElementWrapper::getContent()'],['../class_file_view.html#a107374591eefba7980df282f52b3b8bc',1,'FileView::getContent()'],['../class_file_buffer.html#aa4a5ce54fcad76e42d7dbb867b10d2bb',1,'FileBuffer::getContent()']]], + ['getcontentat_14',['getcontentat',['../class_abstract_byte_buffer.html#a64f38e33f915741eb283ef9a34cacb6d',1,'AbstractByteBuffer::getContentAt()'],['../class_resource_content_wrapper.html#a1f8c6485f9736e4e2f02c83c5c584616',1,'ResourceContentWrapper::getContentAt()'],['../class_executable.html#a73f47abf247435055849c62f25cddb36',1,'Executable::getContentAt(offset_t offset, Executable::addr_type aType, bufsize_t size, bool allowExceptions=false)'],['../class_executable.html#a3f2511a46b6732f4afbcaa6a1bfb6c46',1,'Executable::getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)']]], + ['getcontentatptr_15',['getcontentatptr',['../class_abstract_byte_buffer.html#a1bb3488a20437ae30801b5f1b30d10ca',1,'AbstractByteBuffer::getContentAtPtr()'],['../class_executable.html#a3dc1741cba39f6422ad114a3417c88bf',1,'Executable::getContentAtPtr()']]], ['getcontentdeclaredoffset_16',['getContentDeclaredOffset',['../class_section_hdr_wrapper.html#a698831115eda474980d6be3e86747ee2',1,'SectionHdrWrapper']]], ['getcontentdeclaredsize_17',['getContentDeclaredSize',['../class_section_hdr_wrapper.html#a9478405806f657e94ca5192dd2b86839',1,'SectionHdrWrapper']]], ['getcontentendoffset_18',['getContentEndOffset',['../class_section_hdr_wrapper.html#a9b8a20d530aa83ead9c43b4925171d76',1,'SectionHdrWrapper']]], ['getcontentoffset_19',['getContentOffset',['../class_section_hdr_wrapper.html#a9dee2f275d168224c31131b56564b230',1,'SectionHdrWrapper']]], ['getcontentraw_20',['getContentRaw',['../class_resource_content_wrapper.html#a27630d9bfa014f5dbff2055bbd4d4562',1,'ResourceContentWrapper']]], - ['getcontentsize_21',['getContentSize',['../class_abstract_byte_buffer.html#a0493bdae87b5011993652335adb19577',1,'AbstractByteBuffer::getContentSize()'],['../class_buffer_view.html#afa235f02a4619a7e2f1e869d390c2cbf',1,'BufferView::getContentSize()'],['../class_byte_buffer.html#a1a8ecea490fbe8260620efab25dc1942',1,'ByteBuffer::getContentSize()'],['../class_executable.html#aeb23198ec798984f5b1cf6a3139be8f2',1,'Executable::getContentSize()'],['../class_exe_element_wrapper.html#a0bd5e125d24bc597cb6e7f720352fd5a',1,'ExeElementWrapper::getContentSize()'],['../class_file_view.html#ad8fe9370d252ab0c77327cad7f57397a',1,'FileView::getContentSize()'],['../class_file_buffer.html#a8e2cce24bd8e2e4c8ba2994c9a3c4567',1,'FileBuffer::getContentSize()'],['../class_section_hdr_wrapper.html#a969cb60019c3afe058ddcba62264ca30',1,'SectionHdrWrapper::getContentSize()']]], + ['getcontentsize_21',['getcontentsize',['../class_abstract_byte_buffer.html#a0493bdae87b5011993652335adb19577',1,'AbstractByteBuffer::getContentSize()'],['../class_buffer_view.html#afa235f02a4619a7e2f1e869d390c2cbf',1,'BufferView::getContentSize()'],['../class_byte_buffer.html#a1a8ecea490fbe8260620efab25dc1942',1,'ByteBuffer::getContentSize()'],['../class_executable.html#aeb23198ec798984f5b1cf6a3139be8f2',1,'Executable::getContentSize()'],['../class_exe_element_wrapper.html#a0bd5e125d24bc597cb6e7f720352fd5a',1,'ExeElementWrapper::getContentSize()'],['../class_file_view.html#ad8fe9370d252ab0c77327cad7f57397a',1,'FileView::getContentSize()'],['../class_file_buffer.html#a8e2cce24bd8e2e4c8ba2994c9a3c4567',1,'FileBuffer::getContentSize()'],['../class_section_hdr_wrapper.html#a969cb60019c3afe058ddcba62264ca30',1,'SectionHdrWrapper::getContentSize()']]], ['getcontentwrapper_22',['getContentWrapper',['../class_resources_album.html#a87bace4d1907d6841f17334a45189af5',1,'ResourcesAlbum']]], - ['getdatadirectory_23',['getDataDirectory',['../class_p_e_file.html#aaf212c882b9f95a0f6542cd656ffbad4',1,'PEFile::getDataDirectory()'],['../class_import_dir_wrapper.html#a0f5c35951ef2b3989c4ab44e677ab44f',1,'ImportDirWrapper::getDataDirectory()'],['../class_data_dir_entry_wrapper.html#af5e95792dc15586d7b769dc46ba55e59',1,'DataDirEntryWrapper::getDataDirectory()']]], + ['getdatadirectory_23',['getdatadirectory',['../class_p_e_file.html#aaf212c882b9f95a0f6542cd656ffbad4',1,'PEFile::getDataDirectory()'],['../class_import_dir_wrapper.html#a0f5c35951ef2b3989c4ab44e677ab44f',1,'ImportDirWrapper::getDataDirectory()'],['../class_data_dir_entry_wrapper.html#af5e95792dc15586d7b769dc46ba55e59',1,'DataDirEntryWrapper::getDataDirectory()']]], ['getdatadirentry_24',['getDataDirEntry',['../class_p_e_file.html#a9c486bba23979268695ac6cdfcda318e',1,'PEFile']]], ['getdatatype_25',['getDataType',['../class_wrapped_value.html#a32ce95243975ef0284b01f7e7888bfa6',1,'WrappedValue']]], ['getdatestring_26',['getDateString',['../namespaceutil.html#a66b3958432adf14bbd908d8a29e4dd92',1,'util']]], @@ -37,29 +37,29 @@ var searchData= ['getdirentrytype_34',['getDirEntryType',['../class_data_dir_entry_wrapper.html#a003e8eb376b75ba76191ec525c02d94e',1,'DataDirEntryWrapper']]], ['getdirscount_35',['getDirsCount',['../class_data_dir_wrapper.html#ae9323984ac2986c3f1725a8c290c80b0',1,'DataDirWrapper']]], ['getentriesareasize_36',['getEntriesAreaSize',['../class_resource_dir_wrapper.html#ad7df0786cfb16d35a84311ec6a1e5d39',1,'ResourceDirWrapper']]], - ['getentriescount_37',['getEntriesCount',['../class_exe_node_wrapper.html#aacbf801e0cf579c0e16a7e27f8165693',1,'ExeNodeWrapper::getEntriesCount()'],['../class_exe_node_wrapper.html#ab65292a452c9c7d94b6c0b3ce2d934d5',1,'ExeNodeWrapper::getEntriesCount(std::vector< ExeNodeWrapper * > &_entries)']]], + ['getentriescount_37',['getentriescount',['../class_exe_node_wrapper.html#aacbf801e0cf579c0e16a7e27f8165693',1,'ExeNodeWrapper::getEntriesCount()'],['../class_exe_node_wrapper.html#ab65292a452c9c7d94b6c0b3ce2d934d5',1,'ExeNodeWrapper::getEntriesCount(std::vector< ExeNodeWrapper * > &_entries)']]], ['getentriesnum_38',['getEntriesNum',['../class_exe_node_wrapper.html#a42d41c0f9153991ecd1ba3d620dac124',1,'ExeNodeWrapper']]], ['getentriesptr_39',['getEntriesPtr',['../class_reloc_block_wrapper.html#aaee09f7b096e8a122c22f61f0114fb22',1,'RelocBlockWrapper']]], - ['getentryat_40',['getEntryAt',['../class_exe_node_wrapper.html#a6cce2ccdd539d5afa4eb463b34941123',1,'ExeNodeWrapper::getEntryAt(size_t fieldId)'],['../class_exe_node_wrapper.html#a682867297187a2c4369484354c515400',1,'ExeNodeWrapper::getEntryAt(std::vector< ExeNodeWrapper * > &_entries, size_t fieldId)']]], + ['getentryat_40',['getentryat',['../class_exe_node_wrapper.html#a6cce2ccdd539d5afa4eb463b34941123',1,'ExeNodeWrapper::getEntryAt(size_t fieldId)'],['../class_exe_node_wrapper.html#a682867297187a2c4369484354c515400',1,'ExeNodeWrapper::getEntryAt(std::vector< ExeNodeWrapper * > &_entries, size_t fieldId)']]], ['getentryid_41',['getEntryId',['../class_exe_node_wrapper.html#a7f85ba53a1be60d32c65b13bd7c35487',1,'ExeNodeWrapper']]], - ['getentrypoint_42',['getEntryPoint',['../class_p_e_file.html#a33bbc757bcbca899daa22ac72a173426',1,'PEFile::getEntryPoint()'],['../class_executable.html#a23863d16500af8a8e0fe52015d6f6fdd',1,'Executable::getEntryPoint()'],['../class_d_o_s_exe.html#abc119f9aed957076b4b8c389b3b967ee',1,'DOSExe::getEntryPoint()']]], + ['getentrypoint_42',['getentrypoint',['../class_p_e_file.html#a33bbc757bcbca899daa22ac72a173426',1,'PEFile::getEntryPoint()'],['../class_executable.html#a23863d16500af8a8e0fe52015d6f6fdd',1,'Executable::getEntryPoint()'],['../class_d_o_s_exe.html#abc119f9aed957076b4b8c389b3b967ee',1,'DOSExe::getEntryPoint()']]], ['getentryptr_43',['getEntryPtr',['../class_resource_entry_wrapper.html#a7b9e82ed92670df405c16b75dd868046',1,'ResourceEntryWrapper']]], ['getentrysection_44',['getEntrySection',['../class_p_e_file.html#abf86eb668cdc7e21f7aeaad5dd390334',1,'PEFile']]], ['getentrysize_45',['getEntrySize',['../class_delay_imp_dir_wrapper.html#a711d82e0717581501cb5e891518c7408',1,'DelayImpDirWrapper']]], - ['getexe_46',['getExe',['../class_exe_element_wrapper.html#ac51b5e7b01ac0fcd2f12f557c960bb26',1,'ExeElementWrapper::getExe()'],['../class_resource_leaf_wrapper.html#a2586189ea8f9cb8e67a1c8dbb2f6bb40',1,'ResourceLeafWrapper::getExe()']]], + ['getexe_46',['getexe',['../class_exe_element_wrapper.html#ac51b5e7b01ac0fcd2f12f557c960bb26',1,'ExeElementWrapper::getExe()'],['../class_resource_leaf_wrapper.html#a2586189ea8f9cb8e67a1c8dbb2f6bb40',1,'ResourceLeafWrapper::getExe()']]], ['getexports_47',['getExports',['../class_p_e_file.html#a4058eb502f69396d5d17185bc6fe7cf6',1,'PEFile']]], ['getexportsmap_48',['getExportsMap',['../class_p_e_file.html#a118b06da416a1526c02f4813a4bb71c8',1,'PEFile']]], - ['getfieldname_49',['getFieldName',['../class_ld_config_dir_wrapper.html#a96ec8eacb3d42c794d044565aa5517df',1,'LdConfigDirWrapper::getFieldName()'],['../class_exe_node_wrapper.html#a086e8cfa49daea540fc55956821375f1',1,'ExeNodeWrapper::getFieldName()'],['../class_ld_config_entry_wrapper.html#a57868556be64bf6156f5bc4e78fd27b6',1,'LdConfigEntryWrapper::getFieldName()'],['../class_opt_hdr_wrapper.html#aaaaef77efd8beb1c6dedbd73bb041ccc',1,'OptHdrWrapper::getFieldName()'],['../class_reloc_dir_wrapper.html#a8270a2d4ad0c52daae51fb5ade9a7c42',1,'RelocDirWrapper::getFieldName(size_t fieldId)'],['../class_reloc_dir_wrapper.html#a72455adc0b0903a3d4b4bc74bb428c1c',1,'RelocDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_reloc_block_wrapper.html#a015411f08570b8428ad5442eab5e3e43',1,'RelocBlockWrapper::getFieldName()'],['../class_reloc_entry_wrapper.html#ab9059dd1f277fd2d4c48779623d9c2ee',1,'RelocEntryWrapper::getFieldName()'],['../class_resource_dir_wrapper.html#a3d3cfc07e23d3351fc712edeeb977159',1,'ResourceDirWrapper::getFieldName()'],['../class_resource_entry_wrapper.html#a271d8b8edb7c51733850103100f71ecb',1,'ResourceEntryWrapper::getFieldName()'],['../class_resource_leaf_wrapper.html#a8c0f2a50272e2c43b9d4cd2b50969957',1,'ResourceLeafWrapper::getFieldName()'],['../class_rich_hdr_wrapper.html#abcbabd0c24c89a643132a78c101b6375',1,'RichHdrWrapper::getFieldName()'],['../class_resource_content_wrapper.html#a5ba99253e9fa927e011c391ff3ab82d7',1,'ResourceContentWrapper::getFieldName()'],['../class_res_string.html#a01c48f44ca4463e74ef5f67f5db31379',1,'ResString::getFieldName()'],['../class_resource_strings_wrapper.html#a7e74cf985a939a7159fba6fa2f887784',1,'ResourceStringsWrapper::getFieldName()'],['../class_resource_version_wrapper.html#ac8ee92ed8ac34741b9727083a8596658',1,'ResourceVersionWrapper::getFieldName()'],['../class_section_hdr_wrapper.html#a4b003ccfec084292e73fb267ffb3c08d',1,'SectionHdrWrapper::getFieldName()'],['../class_sect_hdrs_wrapper.html#a5e03cddf78dfe6599a75c4c36327b0ef',1,'SectHdrsWrapper::getFieldName()'],['../class_security_dir_wrapper.html#a13113120d58c77fbf45ee9e5d3853d26',1,'SecurityDirWrapper::getFieldName()'],['../class_tls_dir_wrapper.html#ae6588ff09c46719b97d468b555595eae',1,'TlsDirWrapper::getFieldName()'],['../class_tls_entry_wrapper.html#a23b195d08f3c7f71b0b82e0bdc479ac4',1,'TlsEntryWrapper::getFieldName()'],['../class_import_entry_wrapper.html#a3135167a00f8e3fc243f05a701e9b065',1,'ImportEntryWrapper::getFieldName()'],['../class_exe_element_wrapper.html#a68270d1efcc7f89c2a27f68fb4bccad3',1,'ExeElementWrapper::getFieldName()'],['../class_bound_imp_dir_wrapper.html#a345a657ceb0a33e405b40fb23245c305',1,'BoundImpDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_bound_imp_dir_wrapper.html#af59d1037e59a0ff6b1f04bd8e1d3b676',1,'BoundImpDirWrapper::getFieldName(size_t fieldId)'],['../class_bound_entry_wrapper.html#aa74e1a1a6df18d5600ca24ae3a5ecc52',1,'BoundEntryWrapper::getFieldName()'],['../class_clr_dir_wrapper.html#a270a7f98c177a4ab467f51c570f7e774',1,'ClrDirWrapper::getFieldName()'],['../class_data_dir_wrapper.html#a0a9cc450c8dce60142820892c63ced92',1,'DataDirWrapper::getFieldName()'],['../class_debug_dir_wrapper.html#a125063dac2798aa4f100d1d1802a255f',1,'DebugDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_debug_dir_wrapper.html#a117eef973386c056617fc1dfeed71ef2',1,'DebugDirWrapper::getFieldName(size_t fieldId)'],['../class_debug_dir_entry_wrapper.html#a40059d58bf8749cb0fdf42089c98ce99',1,'DebugDirEntryWrapper::getFieldName()'],['../class_debug_dir_c_v_entry_wrapper.html#a03a070954704f9dcc5bb745200c92dfc',1,'DebugDirCVEntryWrapper::getFieldName()'],['../class_delay_imp_entry_wrapper.html#a2a59df1fa18dcac641c18820d67ba4ab',1,'DelayImpEntryWrapper::getFieldName()'],['../class_dos_hdr_wrapper.html#ab6ec0377cd3f8ffefdd4a211ced3e2c4',1,'DosHdrWrapper::getFieldName()'],['../class_imported_func_wrapper.html#a9c4ef30e61d79ddb347db27d9e7d6968',1,'ImportedFuncWrapper::getFieldName()'],['../class_import_base_dir_wrapper.html#ae3353201a0212f3a9193ca2037905c94',1,'ImportBaseDirWrapper::getFieldName(size_t fieldId)'],['../class_import_base_dir_wrapper.html#a4a16245d389a85fd8452b526500e4216',1,'ImportBaseDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_file_hdr_wrapper.html#a5f6abbb890ecd0d22c633c10e1e5bc30',1,'FileHdrWrapper::getFieldName()'],['../class_export_entry_wrapper.html#a04682ee48ab3cf05f807b371dde4e85f',1,'ExportEntryWrapper::getFieldName()'],['../class_exception_entry_wrapper.html#aeb778b5462b2c60120e6b91a36c45f04',1,'ExceptionEntryWrapper::getFieldName()'],['../class_delay_imp_func_wrapper.html#a9330c125070aa2495091042307c8100d',1,'DelayImpFuncWrapper::getFieldName()'],['../class_exception_dir_wrapper.html#ad14830f6f55f2a82a77c207b87ae8f67',1,'ExceptionDirWrapper::getFieldName(size_t fieldId)'],['../class_exception_dir_wrapper.html#a0835ea57f6b5707560182507cc5344b6',1,'ExceptionDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_export_dir_wrapper.html#abea9799a36fcd5d0c2fb9589e47418c4',1,'ExportDirWrapper::getFieldName()']]], + ['getfieldname_49',['getfieldname',['../class_ld_config_dir_wrapper.html#a96ec8eacb3d42c794d044565aa5517df',1,'LdConfigDirWrapper::getFieldName()'],['../class_exe_node_wrapper.html#a086e8cfa49daea540fc55956821375f1',1,'ExeNodeWrapper::getFieldName()'],['../class_ld_config_entry_wrapper.html#a57868556be64bf6156f5bc4e78fd27b6',1,'LdConfigEntryWrapper::getFieldName()'],['../class_opt_hdr_wrapper.html#aaaaef77efd8beb1c6dedbd73bb041ccc',1,'OptHdrWrapper::getFieldName()'],['../class_reloc_dir_wrapper.html#a8270a2d4ad0c52daae51fb5ade9a7c42',1,'RelocDirWrapper::getFieldName(size_t fieldId)'],['../class_reloc_dir_wrapper.html#a72455adc0b0903a3d4b4bc74bb428c1c',1,'RelocDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_reloc_block_wrapper.html#a015411f08570b8428ad5442eab5e3e43',1,'RelocBlockWrapper::getFieldName()'],['../class_reloc_entry_wrapper.html#ab9059dd1f277fd2d4c48779623d9c2ee',1,'RelocEntryWrapper::getFieldName()'],['../class_resource_dir_wrapper.html#a3d3cfc07e23d3351fc712edeeb977159',1,'ResourceDirWrapper::getFieldName()'],['../class_resource_entry_wrapper.html#a271d8b8edb7c51733850103100f71ecb',1,'ResourceEntryWrapper::getFieldName()'],['../class_resource_leaf_wrapper.html#a8c0f2a50272e2c43b9d4cd2b50969957',1,'ResourceLeafWrapper::getFieldName()'],['../class_rich_hdr_wrapper.html#abcbabd0c24c89a643132a78c101b6375',1,'RichHdrWrapper::getFieldName()'],['../class_resource_content_wrapper.html#a5ba99253e9fa927e011c391ff3ab82d7',1,'ResourceContentWrapper::getFieldName()'],['../class_res_string.html#a01c48f44ca4463e74ef5f67f5db31379',1,'ResString::getFieldName()'],['../class_resource_strings_wrapper.html#a7e74cf985a939a7159fba6fa2f887784',1,'ResourceStringsWrapper::getFieldName()'],['../class_resource_version_wrapper.html#ac8ee92ed8ac34741b9727083a8596658',1,'ResourceVersionWrapper::getFieldName()'],['../class_section_hdr_wrapper.html#a4b003ccfec084292e73fb267ffb3c08d',1,'SectionHdrWrapper::getFieldName()'],['../class_sect_hdrs_wrapper.html#a5e03cddf78dfe6599a75c4c36327b0ef',1,'SectHdrsWrapper::getFieldName()'],['../class_security_dir_wrapper.html#a13113120d58c77fbf45ee9e5d3853d26',1,'SecurityDirWrapper::getFieldName()'],['../class_tls_dir_wrapper.html#ae6588ff09c46719b97d468b555595eae',1,'TlsDirWrapper::getFieldName()'],['../class_tls_entry_wrapper.html#a23b195d08f3c7f71b0b82e0bdc479ac4',1,'TlsEntryWrapper::getFieldName()'],['../class_import_entry_wrapper.html#a3135167a00f8e3fc243f05a701e9b065',1,'ImportEntryWrapper::getFieldName()'],['../class_exe_element_wrapper.html#a68270d1efcc7f89c2a27f68fb4bccad3',1,'ExeElementWrapper::getFieldName()'],['../class_bound_imp_dir_wrapper.html#a345a657ceb0a33e405b40fb23245c305',1,'BoundImpDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_bound_imp_dir_wrapper.html#af59d1037e59a0ff6b1f04bd8e1d3b676',1,'BoundImpDirWrapper::getFieldName(size_t fieldId)'],['../class_bound_entry_wrapper.html#aa74e1a1a6df18d5600ca24ae3a5ecc52',1,'BoundEntryWrapper::getFieldName()'],['../class_clr_dir_wrapper.html#a270a7f98c177a4ab467f51c570f7e774',1,'ClrDirWrapper::getFieldName()'],['../class_data_dir_wrapper.html#a0a9cc450c8dce60142820892c63ced92',1,'DataDirWrapper::getFieldName()'],['../class_debug_dir_wrapper.html#a125063dac2798aa4f100d1d1802a255f',1,'DebugDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_debug_dir_wrapper.html#a117eef973386c056617fc1dfeed71ef2',1,'DebugDirWrapper::getFieldName(size_t fieldId)'],['../class_debug_dir_entry_wrapper.html#a40059d58bf8749cb0fdf42089c98ce99',1,'DebugDirEntryWrapper::getFieldName()'],['../class_debug_dir_c_v_entry_wrapper.html#a03a070954704f9dcc5bb745200c92dfc',1,'DebugDirCVEntryWrapper::getFieldName()'],['../class_delay_imp_entry_wrapper.html#a2a59df1fa18dcac641c18820d67ba4ab',1,'DelayImpEntryWrapper::getFieldName()'],['../class_dos_hdr_wrapper.html#ab6ec0377cd3f8ffefdd4a211ced3e2c4',1,'DosHdrWrapper::getFieldName()'],['../class_imported_func_wrapper.html#a9c4ef30e61d79ddb347db27d9e7d6968',1,'ImportedFuncWrapper::getFieldName()'],['../class_import_base_dir_wrapper.html#ae3353201a0212f3a9193ca2037905c94',1,'ImportBaseDirWrapper::getFieldName(size_t fieldId)'],['../class_import_base_dir_wrapper.html#a4a16245d389a85fd8452b526500e4216',1,'ImportBaseDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_file_hdr_wrapper.html#a5f6abbb890ecd0d22c633c10e1e5bc30',1,'FileHdrWrapper::getFieldName()'],['../class_export_entry_wrapper.html#a04682ee48ab3cf05f807b371dde4e85f',1,'ExportEntryWrapper::getFieldName()'],['../class_exception_entry_wrapper.html#aeb778b5462b2c60120e6b91a36c45f04',1,'ExceptionEntryWrapper::getFieldName()'],['../class_delay_imp_func_wrapper.html#a9330c125070aa2495091042307c8100d',1,'DelayImpFuncWrapper::getFieldName()'],['../class_exception_dir_wrapper.html#ad14830f6f55f2a82a77c207b87ae8f67',1,'ExceptionDirWrapper::getFieldName(size_t fieldId)'],['../class_exception_dir_wrapper.html#a0835ea57f6b5707560182507cc5344b6',1,'ExceptionDirWrapper::getFieldName(size_t fieldId, size_t subField)'],['../class_export_dir_wrapper.html#abea9799a36fcd5d0c2fb9589e47418c4',1,'ExportDirWrapper::getFieldName()']]], ['getfieldoffset_50',['getFieldOffset',['../class_exe_element_wrapper.html#a4a1afe592b11191cab1d74432f759b41',1,'ExeElementWrapper']]], - ['getfieldptr_51',['getFieldPtr',['../class_opt_hdr_wrapper.html#ae3576ddd1f41d120bad8839862bd4ba3',1,'OptHdrWrapper::getFieldPtr()'],['../class_bound_imp_dir_wrapper.html#a218b228ce248ecb970d2ade0397c9cbe',1,'BoundImpDirWrapper::getFieldPtr()'],['../class_reloc_dir_wrapper.html#a67ea1b2d00a1896f2e0b4a443c4071da',1,'RelocDirWrapper::getFieldPtr()'],['../class_reloc_block_wrapper.html#a5e6cb9d45ae520dcdd69663e1ea42d85',1,'RelocBlockWrapper::getFieldPtr()'],['../class_reloc_entry_wrapper.html#a6deb5064824669d4a32f4501a97f3f7d',1,'RelocEntryWrapper::getFieldPtr()'],['../class_resource_dir_wrapper.html#a6db34bb75c27f545dee803a8fce8354d',1,'ResourceDirWrapper::getFieldPtr()'],['../class_resource_entry_wrapper.html#aed4b176f3bdbdda64a52175c1fba3990',1,'ResourceEntryWrapper::getFieldPtr()'],['../class_resource_leaf_wrapper.html#a366f32ea2f7d963eb1b6e71074e7b84a',1,'ResourceLeafWrapper::getFieldPtr()'],['../class_rich_hdr_wrapper.html#a16dbcab63d5d4b45a708b501ee07cade',1,'RichHdrWrapper::getFieldPtr()'],['../class_resource_content_wrapper.html#a3f5c1d1f45d33558f59c0290e164a97c',1,'ResourceContentWrapper::getFieldPtr()'],['../class_res_string.html#a18de4346a54bb33f136469a827eee7e2',1,'ResString::getFieldPtr()'],['../class_resource_strings_wrapper.html#a0f61c5187c3115df0ea5ec0c48881f16',1,'ResourceStringsWrapper::getFieldPtr()'],['../class_resource_version_wrapper.html#aa652ff8191ff1cbac970ecb0f2c52d95',1,'ResourceVersionWrapper::getFieldPtr()'],['../class_section_hdr_wrapper.html#a7bcc88fd0fe41fceff39d3d07c3f8160',1,'SectionHdrWrapper::getFieldPtr()'],['../class_sect_hdrs_wrapper.html#a9a7f54cc783df5879478d6f01fea03eb',1,'SectHdrsWrapper::getFieldPtr()'],['../class_security_dir_wrapper.html#aeadb0eed31cad5281c03c1dde19fab25',1,'SecurityDirWrapper::getFieldPtr()'],['../class_tls_dir_wrapper.html#adcae349a7aaed0bca33cba0cf92f8c8a',1,'TlsDirWrapper::getFieldPtr()'],['../class_tls_entry_wrapper.html#ada3e2f030c68847abf36ad96aa42e1a4',1,'TlsEntryWrapper::getFieldPtr()'],['../class_exe_element_wrapper.html#a43f0978ee5667e5dd34293f155d3d3cf',1,'ExeElementWrapper::getFieldPtr()'],['../class_ld_config_dir_wrapper.html#a0dadc0df74050aac9d6407f40c5f490c',1,'LdConfigDirWrapper::getFieldPtr()'],['../class_exe_element_wrapper.html#ae2b79b68df1bdf87f4643dbcd1ef8176',1,'ExeElementWrapper::getFieldPtr()'],['../class_bound_entry_wrapper.html#a1291fe3167db80596b591b930b0394eb',1,'BoundEntryWrapper::getFieldPtr()'],['../class_clr_dir_wrapper.html#ae45d1d25b85f531ac6409f722f86e5b0',1,'ClrDirWrapper::getFieldPtr()'],['../class_data_dir_wrapper.html#acb7d4ed083d908d7d7f224e5a47c1ea5',1,'DataDirWrapper::getFieldPtr()'],['../class_debug_dir_wrapper.html#aa3578924bd5183d0f546aad3f52e0c35',1,'DebugDirWrapper::getFieldPtr()'],['../class_debug_dir_entry_wrapper.html#ab00e37b44534d3d2a1eca6ee7e0425e8',1,'DebugDirEntryWrapper::getFieldPtr()'],['../class_debug_dir_c_v_entry_wrapper.html#aa86418887bc8b73f13ccdc88a95ed143',1,'DebugDirCVEntryWrapper::getFieldPtr()'],['../class_delay_imp_entry_wrapper.html#a13d4f9e687a61aa68741f039b2158d1e',1,'DelayImpEntryWrapper::getFieldPtr()'],['../class_delay_imp_func_wrapper.html#aa3070cc1b024432ee1d3b589662af725',1,'DelayImpFuncWrapper::getFieldPtr()'],['../class_exception_dir_wrapper.html#a69fd3a9ac196c25a478d051ddd34e4c3',1,'ExceptionDirWrapper::getFieldPtr()'],['../class_ld_config_entry_wrapper.html#a2743d84903e5edbcff1f98e4f7235614',1,'LdConfigEntryWrapper::getFieldPtr()'],['../class_imported_func_wrapper.html#a26d38df3d80ae19d4b93dfe2551690c9',1,'ImportedFuncWrapper::getFieldPtr()'],['../class_import_entry_wrapper.html#a986bfb5f98a9f19cd11c43e60c03891c',1,'ImportEntryWrapper::getFieldPtr()'],['../class_import_base_dir_wrapper.html#af5b653cbf9b566c25cc8a65d9b65f6cb',1,'ImportBaseDirWrapper::getFieldPtr()'],['../class_export_entry_wrapper.html#ad76ea01eb71d820df3360175eba8cbcd',1,'ExportEntryWrapper::getFieldPtr()'],['../class_dos_hdr_wrapper.html#aa7cf9049040b0c1bcb92e4c588d2f8e5',1,'DosHdrWrapper::getFieldPtr()'],['../class_exception_entry_wrapper.html#a454e9c26a5751953294ce26d16734809',1,'ExceptionEntryWrapper::getFieldPtr()'],['../class_export_dir_wrapper.html#a7217251c8776a9d94d8728dd0a4fc4be',1,'ExportDirWrapper::getFieldPtr()'],['../class_file_hdr_wrapper.html#a17f5a7c77d5849b23886ace80df777c1',1,'FileHdrWrapper::getFieldPtr()']]], + ['getfieldptr_51',['getfieldptr',['../class_opt_hdr_wrapper.html#ae3576ddd1f41d120bad8839862bd4ba3',1,'OptHdrWrapper::getFieldPtr()'],['../class_bound_imp_dir_wrapper.html#a218b228ce248ecb970d2ade0397c9cbe',1,'BoundImpDirWrapper::getFieldPtr()'],['../class_reloc_dir_wrapper.html#a67ea1b2d00a1896f2e0b4a443c4071da',1,'RelocDirWrapper::getFieldPtr()'],['../class_reloc_block_wrapper.html#a5e6cb9d45ae520dcdd69663e1ea42d85',1,'RelocBlockWrapper::getFieldPtr()'],['../class_reloc_entry_wrapper.html#a6deb5064824669d4a32f4501a97f3f7d',1,'RelocEntryWrapper::getFieldPtr()'],['../class_resource_dir_wrapper.html#a6db34bb75c27f545dee803a8fce8354d',1,'ResourceDirWrapper::getFieldPtr()'],['../class_resource_entry_wrapper.html#aed4b176f3bdbdda64a52175c1fba3990',1,'ResourceEntryWrapper::getFieldPtr()'],['../class_resource_leaf_wrapper.html#a366f32ea2f7d963eb1b6e71074e7b84a',1,'ResourceLeafWrapper::getFieldPtr()'],['../class_rich_hdr_wrapper.html#a16dbcab63d5d4b45a708b501ee07cade',1,'RichHdrWrapper::getFieldPtr()'],['../class_resource_content_wrapper.html#a3f5c1d1f45d33558f59c0290e164a97c',1,'ResourceContentWrapper::getFieldPtr()'],['../class_res_string.html#a18de4346a54bb33f136469a827eee7e2',1,'ResString::getFieldPtr()'],['../class_resource_strings_wrapper.html#a0f61c5187c3115df0ea5ec0c48881f16',1,'ResourceStringsWrapper::getFieldPtr()'],['../class_resource_version_wrapper.html#aa652ff8191ff1cbac970ecb0f2c52d95',1,'ResourceVersionWrapper::getFieldPtr()'],['../class_section_hdr_wrapper.html#a7bcc88fd0fe41fceff39d3d07c3f8160',1,'SectionHdrWrapper::getFieldPtr()'],['../class_sect_hdrs_wrapper.html#a9a7f54cc783df5879478d6f01fea03eb',1,'SectHdrsWrapper::getFieldPtr()'],['../class_security_dir_wrapper.html#aeadb0eed31cad5281c03c1dde19fab25',1,'SecurityDirWrapper::getFieldPtr()'],['../class_tls_dir_wrapper.html#adcae349a7aaed0bca33cba0cf92f8c8a',1,'TlsDirWrapper::getFieldPtr()'],['../class_tls_entry_wrapper.html#ada3e2f030c68847abf36ad96aa42e1a4',1,'TlsEntryWrapper::getFieldPtr()'],['../class_exe_element_wrapper.html#a43f0978ee5667e5dd34293f155d3d3cf',1,'ExeElementWrapper::getFieldPtr()'],['../class_ld_config_dir_wrapper.html#a0dadc0df74050aac9d6407f40c5f490c',1,'LdConfigDirWrapper::getFieldPtr()'],['../class_exe_element_wrapper.html#ae2b79b68df1bdf87f4643dbcd1ef8176',1,'ExeElementWrapper::getFieldPtr()'],['../class_bound_entry_wrapper.html#a1291fe3167db80596b591b930b0394eb',1,'BoundEntryWrapper::getFieldPtr()'],['../class_clr_dir_wrapper.html#ae45d1d25b85f531ac6409f722f86e5b0',1,'ClrDirWrapper::getFieldPtr()'],['../class_data_dir_wrapper.html#acb7d4ed083d908d7d7f224e5a47c1ea5',1,'DataDirWrapper::getFieldPtr()'],['../class_debug_dir_wrapper.html#aa3578924bd5183d0f546aad3f52e0c35',1,'DebugDirWrapper::getFieldPtr()'],['../class_debug_dir_entry_wrapper.html#ab00e37b44534d3d2a1eca6ee7e0425e8',1,'DebugDirEntryWrapper::getFieldPtr()'],['../class_debug_dir_c_v_entry_wrapper.html#aa86418887bc8b73f13ccdc88a95ed143',1,'DebugDirCVEntryWrapper::getFieldPtr()'],['../class_delay_imp_entry_wrapper.html#a13d4f9e687a61aa68741f039b2158d1e',1,'DelayImpEntryWrapper::getFieldPtr()'],['../class_delay_imp_func_wrapper.html#aa3070cc1b024432ee1d3b589662af725',1,'DelayImpFuncWrapper::getFieldPtr()'],['../class_exception_dir_wrapper.html#a69fd3a9ac196c25a478d051ddd34e4c3',1,'ExceptionDirWrapper::getFieldPtr()'],['../class_ld_config_entry_wrapper.html#a2743d84903e5edbcff1f98e4f7235614',1,'LdConfigEntryWrapper::getFieldPtr()'],['../class_imported_func_wrapper.html#a26d38df3d80ae19d4b93dfe2551690c9',1,'ImportedFuncWrapper::getFieldPtr()'],['../class_import_entry_wrapper.html#a986bfb5f98a9f19cd11c43e60c03891c',1,'ImportEntryWrapper::getFieldPtr()'],['../class_import_base_dir_wrapper.html#af5b653cbf9b566c25cc8a65d9b65f6cb',1,'ImportBaseDirWrapper::getFieldPtr()'],['../class_export_entry_wrapper.html#ad76ea01eb71d820df3360175eba8cbcd',1,'ExportEntryWrapper::getFieldPtr()'],['../class_dos_hdr_wrapper.html#aa7cf9049040b0c1bcb92e4c588d2f8e5',1,'DosHdrWrapper::getFieldPtr()'],['../class_exception_entry_wrapper.html#a454e9c26a5751953294ce26d16734809',1,'ExceptionEntryWrapper::getFieldPtr()'],['../class_export_dir_wrapper.html#a7217251c8776a9d94d8728dd0a4fc4be',1,'ExportDirWrapper::getFieldPtr()'],['../class_file_hdr_wrapper.html#a17f5a7c77d5849b23886ace80df777c1',1,'FileHdrWrapper::getFieldPtr()']]], ['getfieldrva_52',['getFieldRVA',['../class_imported_func_wrapper.html#aba75ebd1d66c3d34cb027856a56c3df5',1,'ImportedFuncWrapper']]], - ['getfieldscount_53',['getFieldsCount',['../class_reloc_dir_wrapper.html#af02859123e3a6355eff02d1f655252f4',1,'RelocDirWrapper::getFieldsCount()'],['../class_bound_entry_wrapper.html#a1406dc1581e25df68f7f0a2e427ecbd9',1,'BoundEntryWrapper::getFieldsCount()'],['../class_reloc_block_wrapper.html#a8ff9ba204f455041f9a08c462cbeda20',1,'RelocBlockWrapper::getFieldsCount()'],['../class_reloc_entry_wrapper.html#a3e42a62844326637cc40ce1ecdf1ce6d',1,'RelocEntryWrapper::getFieldsCount()'],['../class_resource_dir_wrapper.html#aa885db65ad5563108ef714236e0251c2',1,'ResourceDirWrapper::getFieldsCount()'],['../class_resource_entry_wrapper.html#a40ab8125b14d7af273420d55b936a064',1,'ResourceEntryWrapper::getFieldsCount()'],['../class_resource_leaf_wrapper.html#a3cd87eee3d3b5f5197aea00037bb3e40',1,'ResourceLeafWrapper::getFieldsCount()'],['../class_rich_hdr_wrapper.html#aa998d1fe116d37e5bc632cacd4f040e3',1,'RichHdrWrapper::getFieldsCount()'],['../class_resource_content_wrapper.html#a92215e56ef0c8ddb7e775f7b1cdb9a6c',1,'ResourceContentWrapper::getFieldsCount()'],['../class_res_string.html#af3e90f47c81ac74027f8e248cb7da3fb',1,'ResString::getFieldsCount()'],['../class_resource_strings_wrapper.html#a6cace9ce0ee94c82f6bfce8c781cf29e',1,'ResourceStringsWrapper::getFieldsCount()'],['../class_resource_version_wrapper.html#ae7ec32089f76652a429e007012bb2ac2',1,'ResourceVersionWrapper::getFieldsCount()'],['../class_section_hdr_wrapper.html#a0a41301be60cbf44c777ebadd3afdb82',1,'SectionHdrWrapper::getFieldsCount()'],['../class_sect_hdrs_wrapper.html#af94acac0a7e96f12fb04a29dc316dca1',1,'SectHdrsWrapper::getFieldsCount()'],['../class_security_dir_wrapper.html#a389502de5b26b1a8f7aa167b356be1bc',1,'SecurityDirWrapper::getFieldsCount()'],['../class_tls_dir_wrapper.html#a57359a0903cd3298ac73cd91d642c980',1,'TlsDirWrapper::getFieldsCount()'],['../class_tls_entry_wrapper.html#aee9da444480bcb532ff92607b4c182e9',1,'TlsEntryWrapper::getFieldsCount()'],['../class_exe_element_wrapper.html#a561b2d35521c1f6cb5f07a183989dc83',1,'ExeElementWrapper::getFieldsCount()'],['../class_ld_config_entry_wrapper.html#a97aca7b28375ea5cf57a9a991a1a1847',1,'LdConfigEntryWrapper::getFieldsCount()'],['../class_bound_imp_dir_wrapper.html#aa8d59571a2a2b0ed012530728a712a76',1,'BoundImpDirWrapper::getFieldsCount()'],['../class_clr_dir_wrapper.html#a055799916916b392b69a04ca11132fc8',1,'ClrDirWrapper::getFieldsCount()'],['../class_data_dir_wrapper.html#a6d0524c3899f967570e55bda55da8425',1,'DataDirWrapper::getFieldsCount()'],['../class_debug_dir_wrapper.html#a1b2a4db178ee65f190ce2692c15faac0',1,'DebugDirWrapper::getFieldsCount()'],['../class_debug_dir_entry_wrapper.html#ae6150191bdf22c1402e60a77e5722916',1,'DebugDirEntryWrapper::getFieldsCount()'],['../class_debug_dir_c_v_entry_wrapper.html#ab2eb0c25a08deb97636d5e86f63eb71e',1,'DebugDirCVEntryWrapper::getFieldsCount()'],['../class_delay_imp_entry_wrapper.html#a9ef30fe8da95229adc7d93bd3561b4ad',1,'DelayImpEntryWrapper::getFieldsCount()'],['../class_delay_imp_func_wrapper.html#a0b1f7c92facc4d93c094a73d00e899ef',1,'DelayImpFuncWrapper::getFieldsCount()'],['../class_dos_hdr_wrapper.html#ac36cd4351aeb8e6d6cac8b56e0412373',1,'DosHdrWrapper::getFieldsCount()'],['../class_opt_hdr_wrapper.html#a58f92fbf52bdd26f6df68265bd6c8d7c',1,'OptHdrWrapper::getFieldsCount()'],['../class_file_hdr_wrapper.html#a620f1a5dd4bf587007443b7da53d79bf',1,'FileHdrWrapper::getFieldsCount()'],['../class_imported_func_wrapper.html#a897ff569f1d008543e36e46dad456eb9',1,'ImportedFuncWrapper::getFieldsCount()'],['../class_export_entry_wrapper.html#af8119edec67b4103f108f115747b0fe1',1,'ExportEntryWrapper::getFieldsCount()'],['../class_export_dir_wrapper.html#a4e36e14933d9f7153eadf02721e1789c',1,'ExportDirWrapper::getFieldsCount()'],['../class_exception_dir_wrapper.html#a4732a99b84a6ed3f8ae291b8637099bf',1,'ExceptionDirWrapper::getFieldsCount()'],['../class_exception_entry_wrapper.html#a198838fc11ba460d4a457a17b7191636',1,'ExceptionEntryWrapper::getFieldsCount()'],['../class_import_base_dir_wrapper.html#af316d49191847491bfcfc53ff1f4a267',1,'ImportBaseDirWrapper::getFieldsCount()'],['../class_import_entry_wrapper.html#a5cef272ff1258a9b27239a7b76fd404f',1,'ImportEntryWrapper::getFieldsCount()'],['../class_ld_config_dir_wrapper.html#a0613b2322fdc9fd3b90640b0ef709ae3',1,'LdConfigDirWrapper::getFieldsCount()']]], - ['getfieldsize_54',['getFieldSize',['../class_resource_dir_wrapper.html#aaf0ae328a457b55928694c639e1de5a2',1,'ResourceDirWrapper::getFieldSize()'],['../class_ld_config_entry_wrapper.html#aa02b0218b26292c444e60cb0d29e316d',1,'LdConfigEntryWrapper::getFieldSize()'],['../class_export_entry_wrapper.html#a490b8e57bcc2b1480fdaad9294201276',1,'ExportEntryWrapper::getFieldSize()'],['../class_exe_element_wrapper.html#a10ef93fdda6cf93c5db02b696a81b7c7',1,'ExeElementWrapper::getFieldSize()'],['../class_rich_hdr_wrapper.html#aa612770ecb336ec058eca779acecc06e',1,'RichHdrWrapper::getFieldSize()'],['../class_data_dir_wrapper.html#a267b0a6edae9e9193f9d3d7c97a7bd83',1,'DataDirWrapper::getFieldSize()'],['../class_resource_strings_wrapper.html#a7e22d639e58e47accc88d3729ef79022',1,'ResourceStringsWrapper::getFieldSize()'],['../class_res_string.html#a1c40973dc2053461bee0d7668eddeb70',1,'ResString::getFieldSize()'],['../class_delay_imp_func_wrapper.html#a8523b0b40770d614fe67ee6175d538d2',1,'DelayImpFuncWrapper::getFieldSize()'],['../class_debug_dir_wrapper.html#a7b7dfe78dde9e71402d8e9dc3e869d30',1,'DebugDirWrapper::getFieldSize()'],['../class_sect_hdrs_wrapper.html#a18c6d18f87e949fd09778c62a7f13599',1,'SectHdrsWrapper::getFieldSize()'],['../class_import_base_dir_wrapper.html#a74e4d8ece8e36be29f4154d8bfee7020',1,'ImportBaseDirWrapper::getFieldSize()'],['../class_reloc_dir_wrapper.html#a845d8fb9dc4767ef377d6ea36bd656ae',1,'RelocDirWrapper::getFieldSize()'],['../class_imported_func_wrapper.html#ae0df8467bdd92b306f2a40bfbf5a640e',1,'ImportedFuncWrapper::getFieldSize()'],['../class_opt_hdr_wrapper.html#aa5861113556735cd207989608d08791f',1,'OptHdrWrapper::getFieldSize()'],['../class_bound_imp_dir_wrapper.html#afc447adcd813a97833ef54a0d5454149',1,'BoundImpDirWrapper::getFieldSize()']]], + ['getfieldscount_53',['getfieldscount',['../class_reloc_dir_wrapper.html#af02859123e3a6355eff02d1f655252f4',1,'RelocDirWrapper::getFieldsCount()'],['../class_bound_entry_wrapper.html#a1406dc1581e25df68f7f0a2e427ecbd9',1,'BoundEntryWrapper::getFieldsCount()'],['../class_reloc_block_wrapper.html#a8ff9ba204f455041f9a08c462cbeda20',1,'RelocBlockWrapper::getFieldsCount()'],['../class_reloc_entry_wrapper.html#a3e42a62844326637cc40ce1ecdf1ce6d',1,'RelocEntryWrapper::getFieldsCount()'],['../class_resource_dir_wrapper.html#aa885db65ad5563108ef714236e0251c2',1,'ResourceDirWrapper::getFieldsCount()'],['../class_resource_entry_wrapper.html#a40ab8125b14d7af273420d55b936a064',1,'ResourceEntryWrapper::getFieldsCount()'],['../class_resource_leaf_wrapper.html#a3cd87eee3d3b5f5197aea00037bb3e40',1,'ResourceLeafWrapper::getFieldsCount()'],['../class_rich_hdr_wrapper.html#aa998d1fe116d37e5bc632cacd4f040e3',1,'RichHdrWrapper::getFieldsCount()'],['../class_resource_content_wrapper.html#a92215e56ef0c8ddb7e775f7b1cdb9a6c',1,'ResourceContentWrapper::getFieldsCount()'],['../class_res_string.html#af3e90f47c81ac74027f8e248cb7da3fb',1,'ResString::getFieldsCount()'],['../class_resource_strings_wrapper.html#a6cace9ce0ee94c82f6bfce8c781cf29e',1,'ResourceStringsWrapper::getFieldsCount()'],['../class_resource_version_wrapper.html#ae7ec32089f76652a429e007012bb2ac2',1,'ResourceVersionWrapper::getFieldsCount()'],['../class_section_hdr_wrapper.html#a0a41301be60cbf44c777ebadd3afdb82',1,'SectionHdrWrapper::getFieldsCount()'],['../class_sect_hdrs_wrapper.html#af94acac0a7e96f12fb04a29dc316dca1',1,'SectHdrsWrapper::getFieldsCount()'],['../class_security_dir_wrapper.html#a389502de5b26b1a8f7aa167b356be1bc',1,'SecurityDirWrapper::getFieldsCount()'],['../class_tls_dir_wrapper.html#a57359a0903cd3298ac73cd91d642c980',1,'TlsDirWrapper::getFieldsCount()'],['../class_tls_entry_wrapper.html#aee9da444480bcb532ff92607b4c182e9',1,'TlsEntryWrapper::getFieldsCount()'],['../class_exe_element_wrapper.html#a561b2d35521c1f6cb5f07a183989dc83',1,'ExeElementWrapper::getFieldsCount()'],['../class_ld_config_entry_wrapper.html#a97aca7b28375ea5cf57a9a991a1a1847',1,'LdConfigEntryWrapper::getFieldsCount()'],['../class_bound_imp_dir_wrapper.html#aa8d59571a2a2b0ed012530728a712a76',1,'BoundImpDirWrapper::getFieldsCount()'],['../class_clr_dir_wrapper.html#a055799916916b392b69a04ca11132fc8',1,'ClrDirWrapper::getFieldsCount()'],['../class_data_dir_wrapper.html#a6d0524c3899f967570e55bda55da8425',1,'DataDirWrapper::getFieldsCount()'],['../class_debug_dir_wrapper.html#a1b2a4db178ee65f190ce2692c15faac0',1,'DebugDirWrapper::getFieldsCount()'],['../class_debug_dir_entry_wrapper.html#ae6150191bdf22c1402e60a77e5722916',1,'DebugDirEntryWrapper::getFieldsCount()'],['../class_debug_dir_c_v_entry_wrapper.html#ab2eb0c25a08deb97636d5e86f63eb71e',1,'DebugDirCVEntryWrapper::getFieldsCount()'],['../class_delay_imp_entry_wrapper.html#a9ef30fe8da95229adc7d93bd3561b4ad',1,'DelayImpEntryWrapper::getFieldsCount()'],['../class_delay_imp_func_wrapper.html#a0b1f7c92facc4d93c094a73d00e899ef',1,'DelayImpFuncWrapper::getFieldsCount()'],['../class_dos_hdr_wrapper.html#ac36cd4351aeb8e6d6cac8b56e0412373',1,'DosHdrWrapper::getFieldsCount()'],['../class_opt_hdr_wrapper.html#a58f92fbf52bdd26f6df68265bd6c8d7c',1,'OptHdrWrapper::getFieldsCount()'],['../class_file_hdr_wrapper.html#a620f1a5dd4bf587007443b7da53d79bf',1,'FileHdrWrapper::getFieldsCount()'],['../class_imported_func_wrapper.html#a897ff569f1d008543e36e46dad456eb9',1,'ImportedFuncWrapper::getFieldsCount()'],['../class_export_entry_wrapper.html#af8119edec67b4103f108f115747b0fe1',1,'ExportEntryWrapper::getFieldsCount()'],['../class_export_dir_wrapper.html#a4e36e14933d9f7153eadf02721e1789c',1,'ExportDirWrapper::getFieldsCount()'],['../class_exception_dir_wrapper.html#a4732a99b84a6ed3f8ae291b8637099bf',1,'ExceptionDirWrapper::getFieldsCount()'],['../class_exception_entry_wrapper.html#a198838fc11ba460d4a457a17b7191636',1,'ExceptionEntryWrapper::getFieldsCount()'],['../class_import_base_dir_wrapper.html#af316d49191847491bfcfc53ff1f4a267',1,'ImportBaseDirWrapper::getFieldsCount()'],['../class_import_entry_wrapper.html#a5cef272ff1258a9b27239a7b76fd404f',1,'ImportEntryWrapper::getFieldsCount()'],['../class_ld_config_dir_wrapper.html#a0613b2322fdc9fd3b90640b0ef709ae3',1,'LdConfigDirWrapper::getFieldsCount()']]], + ['getfieldsize_54',['getfieldsize',['../class_resource_dir_wrapper.html#aaf0ae328a457b55928694c639e1de5a2',1,'ResourceDirWrapper::getFieldSize()'],['../class_ld_config_entry_wrapper.html#aa02b0218b26292c444e60cb0d29e316d',1,'LdConfigEntryWrapper::getFieldSize()'],['../class_export_entry_wrapper.html#a490b8e57bcc2b1480fdaad9294201276',1,'ExportEntryWrapper::getFieldSize()'],['../class_exe_element_wrapper.html#a10ef93fdda6cf93c5db02b696a81b7c7',1,'ExeElementWrapper::getFieldSize()'],['../class_rich_hdr_wrapper.html#aa612770ecb336ec058eca779acecc06e',1,'RichHdrWrapper::getFieldSize()'],['../class_data_dir_wrapper.html#a267b0a6edae9e9193f9d3d7c97a7bd83',1,'DataDirWrapper::getFieldSize()'],['../class_resource_strings_wrapper.html#a7e22d639e58e47accc88d3729ef79022',1,'ResourceStringsWrapper::getFieldSize()'],['../class_res_string.html#a1c40973dc2053461bee0d7668eddeb70',1,'ResString::getFieldSize()'],['../class_delay_imp_func_wrapper.html#a8523b0b40770d614fe67ee6175d538d2',1,'DelayImpFuncWrapper::getFieldSize()'],['../class_debug_dir_wrapper.html#a7b7dfe78dde9e71402d8e9dc3e869d30',1,'DebugDirWrapper::getFieldSize()'],['../class_sect_hdrs_wrapper.html#a18c6d18f87e949fd09778c62a7f13599',1,'SectHdrsWrapper::getFieldSize()'],['../class_import_base_dir_wrapper.html#a74e4d8ece8e36be29f4154d8bfee7020',1,'ImportBaseDirWrapper::getFieldSize()'],['../class_reloc_dir_wrapper.html#a845d8fb9dc4767ef377d6ea36bd656ae',1,'RelocDirWrapper::getFieldSize()'],['../class_imported_func_wrapper.html#ae0df8467bdd92b306f2a40bfbf5a640e',1,'ImportedFuncWrapper::getFieldSize()'],['../class_opt_hdr_wrapper.html#aa5861113556735cd207989608d08791f',1,'OptHdrWrapper::getFieldSize()'],['../class_bound_imp_dir_wrapper.html#afc447adcd813a97833ef54a0d5454149',1,'BoundImpDirWrapper::getFieldSize()']]], ['getfilealignment_55',['getFileAlignment',['../class_p_e_file.html#acadd0ea6b773a5a70370edc54c08cfc6',1,'PEFile']]], ['getfilebuffer_56',['getFileBuffer',['../class_executable.html#aec9a753da149b3524e8990974cd89bc1',1,'Executable']]], ['getfileheader_57',['getFileHeader',['../class_p_e_core.html#a999a7384f312ddd6c5d81be37d6adfe4',1,'PECore']]], - ['getfilename_58',['getFileName',['../class_executable.html#a789b3a0ea142fd5da4bd8c9c3e8c2d69',1,'Executable::getFileName()'],['../class_abstract_file_buffer.html#a9fd380bce0841d36b8f10b10ca95cca4',1,'AbstractFileBuffer::getFileName()']]], - ['getfilesize_59',['getFileSize',['../class_executable.html#a2d3a19201904056de3d6539ea34efa08',1,'Executable::getFileSize()'],['../class_file_buffer.html#ae4818607757fb43295f9e6173916de1a',1,'FileBuffer::getFileSize()']]], + ['getfilename_58',['getfilename',['../class_executable.html#a789b3a0ea142fd5da4bd8c9c3e8c2d69',1,'Executable::getFileName()'],['../class_abstract_file_buffer.html#a9fd380bce0841d36b8f10b10ca95cca4',1,'AbstractFileBuffer::getFileName()']]], + ['getfilesize_59',['getfilesize',['../class_executable.html#a2d3a19201904056de3d6539ea34efa08',1,'Executable::getFileSize()'],['../class_file_buffer.html#ae4818607757fb43295f9e6173916de1a',1,'FileBuffer::getFileSize()']]], ['getfirstimpbynameptr_60',['getFirstImpByNamePtr',['../class_delay_imp_entry_wrapper.html#ab16e2e700ae85ed8f249549255af18e7',1,'DelayImpEntryWrapper']]], ['getflagsset_61',['getFlagsSet',['../class_clr_dir_wrapper.html#a036c2a8e9060ccbd6399822004fe4165',1,'ClrDirWrapper']]], ['getforwarder_62',['getForwarder',['../class_export_entry_wrapper.html#aead6b0e7687f450e3efd16f3c9cf399a',1,'ExportEntryWrapper']]], @@ -67,14 +67,14 @@ var searchData= ['getfuncname_64',['getFuncName',['../class_export_entry_wrapper.html#a4edc9ea456dc84e171f6b4059cd1b26d',1,'ExportEntryWrapper']]], ['getfuncnamerva_65',['getFuncNameRva',['../class_export_entry_wrapper.html#ad075b35efea5d2395579eb5e9a889c66',1,'ExportEntryWrapper']]], ['getfuncrva_66',['getFuncRva',['../class_export_entry_wrapper.html#ae41b68a2815a57d6d0fa4de6fe5fcef6',1,'ExportEntryWrapper']]], - ['getfunctionname_67',['getFunctionName',['../class_delay_imp_func_wrapper.html#a2671ee0a9df826576e3746f625de7ace',1,'DelayImpFuncWrapper::getFunctionName()'],['../class_import_base_func_wrapper.html#aae83f36e9dde96fc3373b73a238c05a3',1,'ImportBaseFuncWrapper::getFunctionName()'],['../class_imported_func_wrapper.html#ab5f1f5bbb47762df7c8db1782dee8483',1,'ImportedFuncWrapper::getFunctionName()']]], + ['getfunctionname_67',['getfunctionname',['../class_delay_imp_func_wrapper.html#a2671ee0a9df826576e3746f625de7ace',1,'DelayImpFuncWrapper::getFunctionName()'],['../class_import_base_func_wrapper.html#aae83f36e9dde96fc3373b73a238c05a3',1,'ImportBaseFuncWrapper::getFunctionName()'],['../class_imported_func_wrapper.html#ab5f1f5bbb47762df7c8db1782dee8483',1,'ImportedFuncWrapper::getFunctionName()']]], ['getguardflagsset_68',['getGuardFlagsSet',['../class_ld_config_dir_wrapper.html#a7d432fabdaacf321c1f90756fe2eef17',1,'LdConfigDirWrapper']]], ['getguidstring_69',['getGuidString',['../class_debug_dir_c_v_entry_wrapper.html#aaef8fab5ae52a3ad44a8dd8463c12128',1,'DebugDirCVEntryWrapper']]], - ['gethdrbitmode_70',['getHdrBitMode',['../class_opt_hdr_wrapper.html#a41ebcb5b5723fb2b0c1b76388e4c7396',1,'OptHdrWrapper::getHdrBitMode()'],['../class_p_e_core.html#ae19b9fc1ba78c32982baeda811479de1',1,'PECore::getHdrBitMode()'],['../class_p_e_file.html#af2560116036624efbb020a312d8017b2',1,'PEFile::getHdrBitMode()']]], + ['gethdrbitmode_70',['gethdrbitmode',['../class_opt_hdr_wrapper.html#a41ebcb5b5723fb2b0c1b76388e4c7396',1,'OptHdrWrapper::getHdrBitMode()'],['../class_p_e_core.html#ae19b9fc1ba78c32982baeda811479de1',1,'PECore::getHdrBitMode()'],['../class_p_e_file.html#af2560116036624efbb020a312d8017b2',1,'PEFile::getHdrBitMode()']]], ['gethint_71',['getHint',['../class_delay_imp_func_wrapper.html#aa968185cdc031dd53fce5f96e763cc26',1,'DelayImpFuncWrapper']]], ['getid_72',['getID',['../class_resource_entry_wrapper.html#a1fc06565c20b926968ea4320afd6d577',1,'ResourceEntryWrapper']]], - ['getimagebase_73',['getImageBase',['../class_executable.html#a513ca66070ae1b44cf81981346165d82',1,'Executable::getImageBase()'],['../class_d_o_s_exe.html#a7e13e1243f359587db7fb48364147a7e',1,'DOSExe::getImageBase()'],['../class_p_e_core.html#a7de22e67191aa4cc85a13d4647e1d926',1,'PECore::getImageBase()'],['../class_p_e_file.html#a631999ef77e6cf9492993e5d5af1e5ab',1,'PEFile::getImageBase()']]], - ['getimagesize_74',['getImageSize',['../class_executable.html#a8792e07e9290a5eade2ba15ee4491326',1,'Executable::getImageSize()'],['../class_p_e_core.html#a968d53a13a783b32a6b3adbbdbd00e96',1,'PECore::getImageSize()']]], + ['getimagebase_73',['getimagebase',['../class_executable.html#a513ca66070ae1b44cf81981346165d82',1,'Executable::getImageBase()'],['../class_d_o_s_exe.html#a7e13e1243f359587db7fb48364147a7e',1,'DOSExe::getImageBase()'],['../class_p_e_core.html#a7de22e67191aa4cc85a13d4647e1d926',1,'PECore::getImageBase()'],['../class_p_e_file.html#a631999ef77e6cf9492993e5d5af1e5ab',1,'PEFile::getImageBase()']]], + ['getimagesize_74',['getimagesize',['../class_executable.html#a8792e07e9290a5eade2ba15ee4491326',1,'Executable::getImageSize()'],['../class_p_e_core.html#a968d53a13a783b32a6b3adbbdbd00e96',1,'PECore::getImageSize()']]], ['getimportbynameptr_75',['getImportByNamePtr',['../class_imported_func_wrapper.html#ac4fcaed7600a3d7e840362448813a7ab',1,'ImportedFuncWrapper']]], ['getimports_76',['getImports',['../class_p_e_file.html#abb75af53fdb96d7af64bd9612609055d',1,'PEFile']]], ['getinfo_77',['getInfo',['../class_custom_exception.html#a1c103f558cbc55ae13b230b6ccefef62',1,'CustomException']]], @@ -83,57 +83,57 @@ var searchData= ['getlastmapped_80',['getLastMapped',['../class_p_e_file.html#a466aa50196450782c5eea2dc6c734f43',1,'PEFile']]], ['getlastsection_81',['getLastSection',['../class_p_e_file.html#a72cfa6fb099cf7e82f6f33220740b4df',1,'PEFile']]], ['getlibname_82',['getLibName',['../class_import_base_func_wrapper.html#abd90449e2d5e2f026af89cdb5e42aa6c',1,'ImportBaseFuncWrapper']]], - ['getlibraryname_83',['getLibraryName',['../class_import_base_entry_wrapper.html#ad5ee91f17a35bc9691a7d1cf96d7c75e',1,'ImportBaseEntryWrapper::getLibraryName()'],['../class_export_dir_wrapper.html#a057800ab3e7cf1eb33ef5907b43d6339',1,'ExportDirWrapper::getLibraryName()'],['../class_import_entry_wrapper.html#a2ce480e25eb5fd9670ce9d73b8c36fdd',1,'ImportEntryWrapper::getLibraryName()'],['../class_bound_entry_wrapper.html#a14d05f8b7807a962559a89f4dc3103e3',1,'BoundEntryWrapper::getLibraryName()'],['../class_delay_imp_entry_wrapper.html#a59ca36c4ce27892ea6e8a6debf3d6343',1,'DelayImpEntryWrapper::getLibraryName()']]], - ['getmappablesize_84',['getMappableSize',['../class_file_view.html#a43cf76fbb17e4e13367f6e87fefe5cd6',1,'FileView::getMappableSize(QFile &fIn)'],['../class_file_view.html#aca3fe90c560d2512a3c47c507cc0192d',1,'FileView::getMappableSize()']]], + ['getlibraryname_83',['getlibraryname',['../class_import_base_entry_wrapper.html#ad5ee91f17a35bc9691a7d1cf96d7c75e',1,'ImportBaseEntryWrapper::getLibraryName()'],['../class_export_dir_wrapper.html#a057800ab3e7cf1eb33ef5907b43d6339',1,'ExportDirWrapper::getLibraryName()'],['../class_import_entry_wrapper.html#a2ce480e25eb5fd9670ce9d73b8c36fdd',1,'ImportEntryWrapper::getLibraryName()'],['../class_bound_entry_wrapper.html#a14d05f8b7807a962559a89f4dc3103e3',1,'BoundEntryWrapper::getLibraryName()'],['../class_delay_imp_entry_wrapper.html#a59ca36c4ce27892ea6e8a6debf3d6343',1,'DelayImpEntryWrapper::getLibraryName()']]], + ['getmappablesize_84',['getmappablesize',['../class_file_view.html#a43cf76fbb17e4e13367f6e87fefe5cd6',1,'FileView::getMappableSize(QFile &fIn)'],['../class_file_view.html#aca3fe90c560d2512a3c47c507cc0192d',1,'FileView::getMappableSize()']]], ['getmappedrawsize_85',['getMappedRawSize',['../class_section_hdr_wrapper.html#aa6a0da0aebfa501b172c61dfbc3d7b60',1,'SectionHdrWrapper']]], - ['getmappedsize_86',['getMappedSize',['../class_executable.html#a8715ce5ec6dfcf19916b1bcab0ed6c5a',1,'Executable::getMappedSize()'],['../class_d_o_s_exe.html#ac8d2786dec34009b2796092759bbf55a',1,'DOSExe::getMappedSize()'],['../class_p_e_file.html#a1056ad3e332b1f896e211c5f864ce8e1',1,'PEFile::getMappedSize()']]], + ['getmappedsize_86',['getmappedsize',['../class_executable.html#a8715ce5ec6dfcf19916b1bcab0ed6c5a',1,'Executable::getMappedSize()'],['../class_d_o_s_exe.html#ac8d2786dec34009b2796092759bbf55a',1,'DOSExe::getMappedSize()'],['../class_p_e_file.html#a1056ad3e332b1f896e211c5f864ce8e1',1,'PEFile::getMappedSize()']]], ['getmappedvirtualsize_87',['getMappedVirtualSize',['../class_section_hdr_wrapper.html#a2e83729349828bdf810293d3359af79d',1,'SectionHdrWrapper']]], ['getmaxsizefromoffset_88',['getMaxSizeFromOffset',['../class_abstract_byte_buffer.html#a04f5bb327ac0789b872d0771b11adc6b',1,'AbstractByteBuffer']]], ['getmaxsizefromptr_89',['getMaxSizeFromPtr',['../class_abstract_byte_buffer.html#a4cbbe66b2777fa7c450f612ec3a20ae6',1,'AbstractByteBuffer']]], ['getminsecrva_90',['getMinSecRVA',['../class_p_e_file.html#a40e71735810259a8d28108ce4adbc3e6',1,'PEFile']]], - ['getname_91',['getName',['../class_exe_element_wrapper.html#af2f26b8da4cf2339944f1a4b8473454b',1,'ExeElementWrapper::getName()'],['../class_bound_imp_dir_wrapper.html#ad52025b7edf8a973f5227e34cb791c73',1,'BoundImpDirWrapper::getName()'],['../class_bound_entry_wrapper.html#aa892390a3ce98b7496362fd7e923e974',1,'BoundEntryWrapper::getName()'],['../class_clr_dir_wrapper.html#a2163898c506c9764f735b9edbef29503',1,'ClrDirWrapper::getName()'],['../class_data_dir_wrapper.html#a6e1ec157ddcb8d95dd9c12d770a0a258',1,'DataDirWrapper::getName()'],['../class_debug_dir_wrapper.html#a3eeb8d7ae50b730d97b6811021194efa',1,'DebugDirWrapper::getName()'],['../class_debug_dir_entry_wrapper.html#a15baeed14a93e32684fb234b6eaac0fd',1,'DebugDirEntryWrapper::getName()'],['../class_debug_dir_c_v_entry_wrapper.html#a06aee1f114f2ed6770bd8112cf837c28',1,'DebugDirCVEntryWrapper::getName()'],['../class_delay_imp_dir_wrapper.html#a713aa69505d58db4597dcea66a489c42',1,'DelayImpDirWrapper::getName()'],['../class_delay_imp_entry_wrapper.html#ae74d7479281a025c5bb1092f007e91f9',1,'DelayImpEntryWrapper::getName()'],['../class_dos_hdr_wrapper.html#aa4f34d8e6c028a511795a55b9793159d',1,'DosHdrWrapper::getName()'],['../class_exception_dir_wrapper.html#a2fec844847e6de758559effaf68bc6e2',1,'ExceptionDirWrapper::getName()'],['../class_exception_entry_wrapper.html#a362b78feca058d44eaed898a6bae0ba7',1,'ExceptionEntryWrapper::getName()'],['../class_export_dir_wrapper.html#a9fa8577d854edb6aa2b7f82a9be60674',1,'ExportDirWrapper::getName()'],['../class_export_entry_wrapper.html#aee3b68953721502e4a13caf7685085a1',1,'ExportEntryWrapper::getName()'],['../class_file_hdr_wrapper.html#aa861617c69e6a23d32c5941883f3aff2',1,'FileHdrWrapper::getName()'],['../class_import_base_func_wrapper.html#a357e6c0400c04809c286c70de8edf5fa',1,'ImportBaseFuncWrapper::getName()'],['../class_import_dir_wrapper.html#a330d007f6b2901aaa02c0cc8dbd24362',1,'ImportDirWrapper::getName()'],['../class_import_entry_wrapper.html#a132724524fcda326d1945ca222874ec4',1,'ImportEntryWrapper::getName()'],['../class_ld_config_dir_wrapper.html#abaf24a20347142756a03889940b821c1',1,'LdConfigDirWrapper::getName()'],['../class_ld_config_entry_wrapper.html#a06a145b0d40046a889c185c19d71a330',1,'LdConfigEntryWrapper::getName()'],['../class_opt_hdr_wrapper.html#ac56d3e37a993e1e52520d035ca5600de',1,'OptHdrWrapper::getName()'],['../class_reloc_dir_wrapper.html#a3ba80f03708c962d7acb13d9a4399499',1,'RelocDirWrapper::getName()'],['../class_reloc_block_wrapper.html#a951e1f77dcff2a975f14c07b605dd0ef',1,'RelocBlockWrapper::getName()'],['../class_reloc_entry_wrapper.html#aada49dd0ed1c19a5258af6b4b8b6542d',1,'RelocEntryWrapper::getName()'],['../class_resource_dir_wrapper.html#ace06204deed79d41e9e0429e4a931e01',1,'ResourceDirWrapper::getName()'],['../class_resource_entry_wrapper.html#ac203b0bbeda8346e0e545828f3155cb1',1,'ResourceEntryWrapper::getName()'],['../class_resource_leaf_wrapper.html#aceaac960c721bf4404502206de0bcb35',1,'ResourceLeafWrapper::getName()'],['../class_rich_hdr_wrapper.html#a8f7e3ea602e14e4472f7a7c533f01459',1,'RichHdrWrapper::getName()'],['../class_resource_content_wrapper.html#a68511f91f4cb1437e0f77bd761f5b5ca',1,'ResourceContentWrapper::getName()'],['../class_res_string.html#a4b992535d9307f1134b9fb9d4af1364c',1,'ResString::getName()'],['../class_resource_version_wrapper.html#ace0a490f832e9dfeb58d34bc690f3914',1,'ResourceVersionWrapper::getName()'],['../class_section_hdr_wrapper.html#a2f952875d80e07fd3c82c54ac475f9f8',1,'SectionHdrWrapper::getName()'],['../class_sect_hdrs_wrapper.html#ade290ef1b090640d6d4a4d85d6068b35',1,'SectHdrsWrapper::getName()'],['../class_security_dir_wrapper.html#aa564e984767bd42bd86eef18f797d7e0',1,'SecurityDirWrapper::getName()'],['../class_tls_dir_wrapper.html#a06bb4192e7775b65a5e6b27e6addbc9b',1,'TlsDirWrapper::getName()'],['../class_tls_entry_wrapper.html#a59aba127abb955d45e97f148c7348a9d',1,'TlsEntryWrapper::getName()']]], + ['getname_91',['getname',['../class_exe_element_wrapper.html#af2f26b8da4cf2339944f1a4b8473454b',1,'ExeElementWrapper::getName()'],['../class_bound_imp_dir_wrapper.html#ad52025b7edf8a973f5227e34cb791c73',1,'BoundImpDirWrapper::getName()'],['../class_bound_entry_wrapper.html#aa892390a3ce98b7496362fd7e923e974',1,'BoundEntryWrapper::getName()'],['../class_clr_dir_wrapper.html#a2163898c506c9764f735b9edbef29503',1,'ClrDirWrapper::getName()'],['../class_data_dir_wrapper.html#a6e1ec157ddcb8d95dd9c12d770a0a258',1,'DataDirWrapper::getName()'],['../class_debug_dir_wrapper.html#a3eeb8d7ae50b730d97b6811021194efa',1,'DebugDirWrapper::getName()'],['../class_debug_dir_entry_wrapper.html#a15baeed14a93e32684fb234b6eaac0fd',1,'DebugDirEntryWrapper::getName()'],['../class_debug_dir_c_v_entry_wrapper.html#a06aee1f114f2ed6770bd8112cf837c28',1,'DebugDirCVEntryWrapper::getName()'],['../class_delay_imp_dir_wrapper.html#a713aa69505d58db4597dcea66a489c42',1,'DelayImpDirWrapper::getName()'],['../class_delay_imp_entry_wrapper.html#ae74d7479281a025c5bb1092f007e91f9',1,'DelayImpEntryWrapper::getName()'],['../class_dos_hdr_wrapper.html#aa4f34d8e6c028a511795a55b9793159d',1,'DosHdrWrapper::getName()'],['../class_exception_dir_wrapper.html#a2fec844847e6de758559effaf68bc6e2',1,'ExceptionDirWrapper::getName()'],['../class_exception_entry_wrapper.html#a362b78feca058d44eaed898a6bae0ba7',1,'ExceptionEntryWrapper::getName()'],['../class_export_dir_wrapper.html#a9fa8577d854edb6aa2b7f82a9be60674',1,'ExportDirWrapper::getName()'],['../class_export_entry_wrapper.html#aee3b68953721502e4a13caf7685085a1',1,'ExportEntryWrapper::getName()'],['../class_file_hdr_wrapper.html#aa861617c69e6a23d32c5941883f3aff2',1,'FileHdrWrapper::getName()'],['../class_import_base_func_wrapper.html#a357e6c0400c04809c286c70de8edf5fa',1,'ImportBaseFuncWrapper::getName()'],['../class_import_dir_wrapper.html#a330d007f6b2901aaa02c0cc8dbd24362',1,'ImportDirWrapper::getName()'],['../class_import_entry_wrapper.html#a132724524fcda326d1945ca222874ec4',1,'ImportEntryWrapper::getName()'],['../class_ld_config_dir_wrapper.html#abaf24a20347142756a03889940b821c1',1,'LdConfigDirWrapper::getName()'],['../class_ld_config_entry_wrapper.html#a06a145b0d40046a889c185c19d71a330',1,'LdConfigEntryWrapper::getName()'],['../class_opt_hdr_wrapper.html#ac56d3e37a993e1e52520d035ca5600de',1,'OptHdrWrapper::getName()'],['../class_reloc_dir_wrapper.html#a3ba80f03708c962d7acb13d9a4399499',1,'RelocDirWrapper::getName()'],['../class_reloc_block_wrapper.html#a951e1f77dcff2a975f14c07b605dd0ef',1,'RelocBlockWrapper::getName()'],['../class_reloc_entry_wrapper.html#aada49dd0ed1c19a5258af6b4b8b6542d',1,'RelocEntryWrapper::getName()'],['../class_resource_dir_wrapper.html#ace06204deed79d41e9e0429e4a931e01',1,'ResourceDirWrapper::getName()'],['../class_resource_entry_wrapper.html#ac203b0bbeda8346e0e545828f3155cb1',1,'ResourceEntryWrapper::getName()'],['../class_resource_leaf_wrapper.html#aceaac960c721bf4404502206de0bcb35',1,'ResourceLeafWrapper::getName()'],['../class_rich_hdr_wrapper.html#a8f7e3ea602e14e4472f7a7c533f01459',1,'RichHdrWrapper::getName()'],['../class_resource_content_wrapper.html#a68511f91f4cb1437e0f77bd761f5b5ca',1,'ResourceContentWrapper::getName()'],['../class_res_string.html#a4b992535d9307f1134b9fb9d4af1364c',1,'ResString::getName()'],['../class_resource_version_wrapper.html#ace0a490f832e9dfeb58d34bc690f3914',1,'ResourceVersionWrapper::getName()'],['../class_section_hdr_wrapper.html#a2f952875d80e07fd3c82c54ac475f9f8',1,'SectionHdrWrapper::getName()'],['../class_sect_hdrs_wrapper.html#ade290ef1b090640d6d4a4d85d6068b35',1,'SectHdrsWrapper::getName()'],['../class_security_dir_wrapper.html#aa564e984767bd42bd86eef18f797d7e0',1,'SecurityDirWrapper::getName()'],['../class_tls_dir_wrapper.html#a06bb4192e7775b65a5e6b27e6addbc9b',1,'TlsDirWrapper::getName()'],['../class_tls_entry_wrapper.html#a59aba127abb955d45e97f148c7348a9d',1,'TlsEntryWrapper::getName()']]], ['getnameoffset_92',['getNameOffset',['../class_resource_entry_wrapper.html#a8468a92960b9659750ecce08db9e38a3',1,'ResourceEntryWrapper']]], ['getnamestr_93',['getNameStr',['../class_resource_entry_wrapper.html#ad900ca7b457c5a2daf9d6fea936e18e4',1,'ResourceEntryWrapper']]], ['getnb10_94',['getNB10',['../class_debug_dir_entry_wrapper.html#aafad4ef92e4d1e95abc4dd6bd8cbbb10',1,'DebugDirEntryWrapper']]], - ['getnextentryoffset_95',['getNextEntryOffset',['../class_exe_node_wrapper.html#a9c33a8a3dc433b166b86fae38d19297c',1,'ExeNodeWrapper::getNextEntryOffset()'],['../class_import_entry_wrapper.html#ad18124fd3d07afe983e64f03128fe158',1,'ImportEntryWrapper::getNextEntryOffset()']]], - ['getnumvalue_96',['getNumValue',['../class_abstract_byte_buffer.html#a9476fc334d491f3882852b0048a76b77',1,'AbstractByteBuffer::getNumValue()'],['../class_exe_element_wrapper.html#af742979e13e19e532cc42ab72b2a0f80',1,'ExeElementWrapper::getNumValue(size_t fieldId, size_t subField, bool *isOk)'],['../class_exe_element_wrapper.html#aaee384744aad1430d147285207858863',1,'ExeElementWrapper::getNumValue(size_t fieldId, bool *isOk)']]], - ['getoffset_97',['getOffset',['../class_abstract_byte_buffer.html#adb10018e327d14ac29d842aee3ab5465',1,'AbstractByteBuffer::getOffset()'],['../class_exe_element_wrapper.html#a98ca205ec6f2d2deacd32327409a3539',1,'ExeElementWrapper::getOffset()'],['../class_exe_element_wrapper.html#af6fdb98a1dff9810143d6677b99ff4dd',1,'ExeElementWrapper::getOffset(void *ptr, bool allowExceptions=false)']]], - ['getordinal_98',['getOrdinal',['../class_imported_func_wrapper.html#a020e5ba636f893c0e7321cfba0eaa28a',1,'ImportedFuncWrapper::getOrdinal()'],['../class_delay_imp_func_wrapper.html#a8653063030b2fc79c04fcce9b6ae158b',1,'DelayImpFuncWrapper::getOrdinal()'],['../class_export_entry_wrapper.html#a558525a232d44deaf5f9e1f68e8c18f4',1,'ExportEntryWrapper::getOrdinal()'],['../class_import_base_func_wrapper.html#a695260b969ca9ead18a3e2330792adad',1,'ImportBaseFuncWrapper::getOrdinal()']]], - ['getparentnode_99',['getParentNode',['../class_exe_node_wrapper.html#afb0d9f2d943f92479dc0019390af1267',1,'ExeNodeWrapper::getParentNode()'],['../class_p_e_node_wrapper.html#a9895adb75c8a282060182f7b698bb454',1,'PENodeWrapper::getParentNode()']]], - ['getpe_100',['getPE',['../class_p_e_element_wrapper.html#a4257b4eb2b17dd9327a507915455734e',1,'PEElementWrapper::getPE()'],['../class_p_e_node_wrapper.html#a9b3555d3943fbebea15a7728fcb11940',1,'PENodeWrapper::getPE()']]], - ['getptr_101',['getPtr',['../class_exe_element_wrapper.html#a227c20e3780b42bc18822e992bf4d116',1,'ExeElementWrapper::getPtr()'],['../class_bound_imp_dir_wrapper.html#a65e312217177270bafac2e129f23a630',1,'BoundImpDirWrapper::getPtr()'],['../class_bound_entry_wrapper.html#af8db0d9c611a42d3c7199329aebd5e86',1,'BoundEntryWrapper::getPtr()'],['../class_clr_dir_wrapper.html#ab986f9aee9dba5c9df46c884c5aefe52',1,'ClrDirWrapper::getPtr()'],['../class_data_dir_wrapper.html#a7f9f1631dc5b8bcc729b81b88579deb0',1,'DataDirWrapper::getPtr()'],['../class_debug_dir_wrapper.html#a33ba43d13e79286f634c26b8e8ddd368',1,'DebugDirWrapper::getPtr()'],['../class_debug_dir_entry_wrapper.html#a690e686ab98a6abecd2f2dab93a3d2ba',1,'DebugDirEntryWrapper::getPtr()'],['../class_debug_dir_c_v_entry_wrapper.html#a6c4004d00107f67243c6ca3684896e10',1,'DebugDirCVEntryWrapper::getPtr()'],['../class_delay_imp_dir_wrapper.html#adbcd845740f2cc234fbd08bae646cbc7',1,'DelayImpDirWrapper::getPtr()'],['../class_delay_imp_entry_wrapper.html#a5cb33569a5f44b551d507ea95ac09362',1,'DelayImpEntryWrapper::getPtr()'],['../class_delay_imp_func_wrapper.html#aaaf9cfcb23b977daeaa89a7beae4d754',1,'DelayImpFuncWrapper::getPtr()'],['../class_dos_hdr_wrapper.html#aef711b7fca38e8a825293cd5c050a426',1,'DosHdrWrapper::getPtr()'],['../class_exception_dir_wrapper.html#a5e60015a98ab487a148d830c59214138',1,'ExceptionDirWrapper::getPtr()'],['../class_exception_entry_wrapper.html#a1ecd385f9c3e17306844d5a32be36461',1,'ExceptionEntryWrapper::getPtr()'],['../class_export_dir_wrapper.html#a5197b30c47adc876afd744c0c70a9194',1,'ExportDirWrapper::getPtr()'],['../class_export_entry_wrapper.html#a874455099e3e1eda96d9fe4c2ae45ef9',1,'ExportEntryWrapper::getPtr()'],['../class_file_hdr_wrapper.html#a419d36c47f3b52cb32523cb23adc6bea',1,'FileHdrWrapper::getPtr()'],['../class_import_dir_wrapper.html#a227f2de941acbc47703f0e216e1a01c1',1,'ImportDirWrapper::getPtr()'],['../class_import_entry_wrapper.html#a62c962b8758ac8db68510abe5471a562',1,'ImportEntryWrapper::getPtr()'],['../class_imported_func_wrapper.html#a71f344dd0d7ea17343b367c3900f9436',1,'ImportedFuncWrapper::getPtr()'],['../class_ld_config_dir_wrapper.html#a816726cce7621d16d9f523312937e887',1,'LdConfigDirWrapper::getPtr()'],['../class_ld_config_entry_wrapper.html#ae2cbfa769022913487663e3e26eff63d',1,'LdConfigEntryWrapper::getPtr()'],['../class_opt_hdr_wrapper.html#aac3a30285ab7098e9f7943ce729a9b29',1,'OptHdrWrapper::getPtr()'],['../class_reloc_dir_wrapper.html#a960575612520fea5824d77db4e63933e',1,'RelocDirWrapper::getPtr()'],['../class_reloc_block_wrapper.html#a7cf5e516f7dda68e22626a9334e9c640',1,'RelocBlockWrapper::getPtr()'],['../class_reloc_entry_wrapper.html#a5ece67054510e60deff27a425daafa1a',1,'RelocEntryWrapper::getPtr()'],['../class_resource_dir_wrapper.html#aadb74fc45784fe5b1c97982d35b02030',1,'ResourceDirWrapper::getPtr()'],['../class_resource_entry_wrapper.html#ae59ad46f5d76aad395b297e6ff41d26a',1,'ResourceEntryWrapper::getPtr()'],['../class_resource_leaf_wrapper.html#a4232ec5617f0d7f30212edeaf4bda11f',1,'ResourceLeafWrapper::getPtr()'],['../class_rich_hdr_wrapper.html#a160ffca118cb6f961bcf92d5ba957142',1,'RichHdrWrapper::getPtr()'],['../class_resource_content_wrapper.html#a1116597104df986ee72358a2e776603a',1,'ResourceContentWrapper::getPtr()'],['../class_res_string.html#a4624f6372ce92984d92b11735dd5a9dc',1,'ResString::getPtr()'],['../class_resource_version_wrapper.html#a867bf3096440ab652d8db4c451b4cd44',1,'ResourceVersionWrapper::getPtr()'],['../class_section_hdr_wrapper.html#aa2a809639093ab771f885dbf0a1f3b3b',1,'SectionHdrWrapper::getPtr()'],['../class_sect_hdrs_wrapper.html#a85d01e58641fa6d7249379e131f1bba9',1,'SectHdrsWrapper::getPtr()'],['../class_security_dir_wrapper.html#a14baf24550ce4000076c6864baa8cd6b',1,'SecurityDirWrapper::getPtr()'],['../class_tls_dir_wrapper.html#a8d736a2c745811951dd7dcc41fc0ff3d',1,'TlsDirWrapper::getPtr()'],['../class_tls_entry_wrapper.html#a7d71e1b9dca112bd059909f2ece5286f',1,'TlsEntryWrapper::getPtr()']]], + ['getnextentryoffset_95',['getnextentryoffset',['../class_exe_node_wrapper.html#a9c33a8a3dc433b166b86fae38d19297c',1,'ExeNodeWrapper::getNextEntryOffset()'],['../class_import_entry_wrapper.html#ad18124fd3d07afe983e64f03128fe158',1,'ImportEntryWrapper::getNextEntryOffset()']]], + ['getnumvalue_96',['getnumvalue',['../class_abstract_byte_buffer.html#a9476fc334d491f3882852b0048a76b77',1,'AbstractByteBuffer::getNumValue()'],['../class_exe_element_wrapper.html#af742979e13e19e532cc42ab72b2a0f80',1,'ExeElementWrapper::getNumValue(size_t fieldId, size_t subField, bool *isOk)'],['../class_exe_element_wrapper.html#aaee384744aad1430d147285207858863',1,'ExeElementWrapper::getNumValue(size_t fieldId, bool *isOk)']]], + ['getoffset_97',['getoffset',['../class_abstract_byte_buffer.html#adb10018e327d14ac29d842aee3ab5465',1,'AbstractByteBuffer::getOffset()'],['../class_exe_element_wrapper.html#a98ca205ec6f2d2deacd32327409a3539',1,'ExeElementWrapper::getOffset()'],['../class_exe_element_wrapper.html#af6fdb98a1dff9810143d6677b99ff4dd',1,'ExeElementWrapper::getOffset(void *ptr, bool allowExceptions=false)']]], + ['getordinal_98',['getordinal',['../class_imported_func_wrapper.html#a020e5ba636f893c0e7321cfba0eaa28a',1,'ImportedFuncWrapper::getOrdinal()'],['../class_delay_imp_func_wrapper.html#a8653063030b2fc79c04fcce9b6ae158b',1,'DelayImpFuncWrapper::getOrdinal()'],['../class_export_entry_wrapper.html#a558525a232d44deaf5f9e1f68e8c18f4',1,'ExportEntryWrapper::getOrdinal()'],['../class_import_base_func_wrapper.html#a695260b969ca9ead18a3e2330792adad',1,'ImportBaseFuncWrapper::getOrdinal()']]], + ['getparentnode_99',['getparentnode',['../class_exe_node_wrapper.html#afb0d9f2d943f92479dc0019390af1267',1,'ExeNodeWrapper::getParentNode()'],['../class_p_e_node_wrapper.html#a9895adb75c8a282060182f7b698bb454',1,'PENodeWrapper::getParentNode()']]], + ['getpe_100',['getpe',['../class_p_e_element_wrapper.html#a4257b4eb2b17dd9327a507915455734e',1,'PEElementWrapper::getPE()'],['../class_p_e_node_wrapper.html#a9b3555d3943fbebea15a7728fcb11940',1,'PENodeWrapper::getPE()']]], + ['getptr_101',['getptr',['../class_exe_element_wrapper.html#a227c20e3780b42bc18822e992bf4d116',1,'ExeElementWrapper::getPtr()'],['../class_bound_imp_dir_wrapper.html#a65e312217177270bafac2e129f23a630',1,'BoundImpDirWrapper::getPtr()'],['../class_bound_entry_wrapper.html#af8db0d9c611a42d3c7199329aebd5e86',1,'BoundEntryWrapper::getPtr()'],['../class_clr_dir_wrapper.html#ab986f9aee9dba5c9df46c884c5aefe52',1,'ClrDirWrapper::getPtr()'],['../class_data_dir_wrapper.html#a7f9f1631dc5b8bcc729b81b88579deb0',1,'DataDirWrapper::getPtr()'],['../class_debug_dir_wrapper.html#a33ba43d13e79286f634c26b8e8ddd368',1,'DebugDirWrapper::getPtr()'],['../class_debug_dir_entry_wrapper.html#a690e686ab98a6abecd2f2dab93a3d2ba',1,'DebugDirEntryWrapper::getPtr()'],['../class_debug_dir_c_v_entry_wrapper.html#a6c4004d00107f67243c6ca3684896e10',1,'DebugDirCVEntryWrapper::getPtr()'],['../class_delay_imp_dir_wrapper.html#adbcd845740f2cc234fbd08bae646cbc7',1,'DelayImpDirWrapper::getPtr()'],['../class_delay_imp_entry_wrapper.html#a5cb33569a5f44b551d507ea95ac09362',1,'DelayImpEntryWrapper::getPtr()'],['../class_delay_imp_func_wrapper.html#aaaf9cfcb23b977daeaa89a7beae4d754',1,'DelayImpFuncWrapper::getPtr()'],['../class_dos_hdr_wrapper.html#aef711b7fca38e8a825293cd5c050a426',1,'DosHdrWrapper::getPtr()'],['../class_exception_dir_wrapper.html#a5e60015a98ab487a148d830c59214138',1,'ExceptionDirWrapper::getPtr()'],['../class_exception_entry_wrapper.html#a1ecd385f9c3e17306844d5a32be36461',1,'ExceptionEntryWrapper::getPtr()'],['../class_export_dir_wrapper.html#a5197b30c47adc876afd744c0c70a9194',1,'ExportDirWrapper::getPtr()'],['../class_export_entry_wrapper.html#a874455099e3e1eda96d9fe4c2ae45ef9',1,'ExportEntryWrapper::getPtr()'],['../class_file_hdr_wrapper.html#a419d36c47f3b52cb32523cb23adc6bea',1,'FileHdrWrapper::getPtr()'],['../class_import_dir_wrapper.html#a227f2de941acbc47703f0e216e1a01c1',1,'ImportDirWrapper::getPtr()'],['../class_import_entry_wrapper.html#a62c962b8758ac8db68510abe5471a562',1,'ImportEntryWrapper::getPtr()'],['../class_imported_func_wrapper.html#a71f344dd0d7ea17343b367c3900f9436',1,'ImportedFuncWrapper::getPtr()'],['../class_ld_config_dir_wrapper.html#a816726cce7621d16d9f523312937e887',1,'LdConfigDirWrapper::getPtr()'],['../class_ld_config_entry_wrapper.html#ae2cbfa769022913487663e3e26eff63d',1,'LdConfigEntryWrapper::getPtr()'],['../class_opt_hdr_wrapper.html#aac3a30285ab7098e9f7943ce729a9b29',1,'OptHdrWrapper::getPtr()'],['../class_reloc_dir_wrapper.html#a960575612520fea5824d77db4e63933e',1,'RelocDirWrapper::getPtr()'],['../class_reloc_block_wrapper.html#a7cf5e516f7dda68e22626a9334e9c640',1,'RelocBlockWrapper::getPtr()'],['../class_reloc_entry_wrapper.html#a5ece67054510e60deff27a425daafa1a',1,'RelocEntryWrapper::getPtr()'],['../class_resource_dir_wrapper.html#aadb74fc45784fe5b1c97982d35b02030',1,'ResourceDirWrapper::getPtr()'],['../class_resource_entry_wrapper.html#ae59ad46f5d76aad395b297e6ff41d26a',1,'ResourceEntryWrapper::getPtr()'],['../class_resource_leaf_wrapper.html#a4232ec5617f0d7f30212edeaf4bda11f',1,'ResourceLeafWrapper::getPtr()'],['../class_rich_hdr_wrapper.html#a160ffca118cb6f961bcf92d5ba957142',1,'RichHdrWrapper::getPtr()'],['../class_resource_content_wrapper.html#a1116597104df986ee72358a2e776603a',1,'ResourceContentWrapper::getPtr()'],['../class_res_string.html#a4624f6372ce92984d92b11735dd5a9dc',1,'ResString::getPtr()'],['../class_resource_version_wrapper.html#a867bf3096440ab652d8db4c451b4cd44',1,'ResourceVersionWrapper::getPtr()'],['../class_section_hdr_wrapper.html#aa2a809639093ab771f885dbf0a1f3b3b',1,'SectionHdrWrapper::getPtr()'],['../class_sect_hdrs_wrapper.html#a85d01e58641fa6d7249379e131f1bba9',1,'SectHdrsWrapper::getPtr()'],['../class_security_dir_wrapper.html#a14baf24550ce4000076c6864baa8cd6b',1,'SecurityDirWrapper::getPtr()'],['../class_tls_dir_wrapper.html#a8d736a2c745811951dd7dcc41fc0ff3d',1,'TlsDirWrapper::getPtr()'],['../class_tls_entry_wrapper.html#a7d71e1b9dca112bd059909f2ece5286f',1,'TlsEntryWrapper::getPtr()']]], ['getqstring_102',['getQString',['../class_res_string.html#a47a3d4c86e4414a0b9d130742483e880',1,'ResString']]], ['getqstringat_103',['getQStringAt',['../class_resource_strings_wrapper.html#a80975257edafbaafe7bb4fe6222f9328',1,'ResourceStringsWrapper']]], ['getqvariant_104',['getQVariant',['../class_wrapped_value.html#a1cc412d80d223da04d316ce2479d65c3',1,'WrappedValue']]], ['getrawptr_105',['getRawPtr',['../class_section_hdr_wrapper.html#a0a93f3f5033df8cd74d4a2c40a1a7242',1,'SectionHdrWrapper']]], - ['getrawsize_106',['getRawSize',['../class_executable.html#a862ee23abe249ba557c740f2d2c246c5',1,'Executable::getRawSize()'],['../class_p_e_core.html#ab940b6be8bd99e69314e88dd646fa1fc',1,'PECore::getRawSize()']]], + ['getrawsize_106',['getrawsize',['../class_executable.html#a862ee23abe249ba557c740f2d2c246c5',1,'Executable::getRawSize()'],['../class_p_e_core.html#ab940b6be8bd99e69314e88dd646fa1fc',1,'PECore::getRawSize()']]], ['getrdsi_107',['getRDSI',['../class_debug_dir_entry_wrapper.html#a01fdf595230f756446126b69b3731cf7',1,'DebugDirEntryWrapper']]], - ['getreadablesize_108',['getReadableSize',['../class_abstract_file_buffer.html#a092c21c5227ed38657db948df12a2bb3',1,'AbstractFileBuffer::getReadableSize(QFile &fIn)'],['../class_abstract_file_buffer.html#aa543f39d681c82fd49e3384370a90891',1,'AbstractFileBuffer::getReadableSize(const QString &path)']]], + ['getreadablesize_108',['getreadablesize',['../class_abstract_file_buffer.html#a092c21c5227ed38657db948df12a2bb3',1,'AbstractFileBuffer::getReadableSize(QFile &fIn)'],['../class_abstract_file_buffer.html#aa543f39d681c82fd49e3384370a90891',1,'AbstractFileBuffer::getReadableSize(const QString &path)']]], ['getrequestedsize_109',['getRequestedSize',['../class_buffer_view.html#a50e432bab07009ab4dab86be4ad802c2',1,'BufferView']]], ['getrescontentptr_110',['getResContentPtr',['../class_resource_content_wrapper.html#a8ac99cadf3741f1befe2e002a3107591',1,'ResourceContentWrapper']]], ['getrescontentsize_111',['getResContentSize',['../class_resource_content_wrapper.html#ae7340c05c2299bc068bc6adbf2d4ac58',1,'ResourceContentWrapper']]], ['getresourcesalbum_112',['getResourcesAlbum',['../class_p_e_file.html#a88f7edff5ac1a855cbd484d53dc36514',1,'PEFile']]], - ['getresourcesoftype_113',['getResourcesOfType',['../class_p_e_file.html#af21f402b68bd0d93e707dae1639c93b2',1,'PEFile::getResourcesOfType()'],['../class_resources_album.html#a9ae278c9a0803730a231bdf3c50ef0c7',1,'ResourcesAlbum::getResourcesOfType(pe::resource_type typeId)']]], + ['getresourcesoftype_113',['getresourcesoftype',['../class_p_e_file.html#af21f402b68bd0d93e707dae1639c93b2',1,'PEFile::getResourcesOfType()'],['../class_resources_album.html#a9ae278c9a0803730a231bdf3c50ef0c7',1,'ResourcesAlbum::getResourcesOfType(pe::resource_type typeId)']]], ['getresourcetypes_114',['getResourceTypes',['../class_resources_album.html#add2d891afc0c5f5edd5813275177baa9',1,'ResourcesAlbum']]], ['getresstringat_115',['getResStringAt',['../class_resource_strings_wrapper.html#a4fdbb9fa59d466cff128c351a469cb2a',1,'ResourceStringsWrapper']]], ['getresstringscount_116',['getResStringsCount',['../class_resource_strings_wrapper.html#a8f65e58ff8acc285ac80a89e2ab7aa27',1,'ResourceStringsWrapper']]], ['getrichheaderbgn_117',['getRichHeaderBgn',['../class_p_e_file.html#a5efa2fcf1a0e940084ccf8f3365ebc57',1,'PEFile']]], ['getrichheadersign_118',['getRichHeaderSign',['../class_p_e_file.html#adb187c47cea5a6cfa260528b7cf577ce',1,'PEFile']]], ['getseccontent_119',['getSecContent',['../class_p_e_file.html#ad95f4268d68eaa76dfb959cbbff288a1',1,'PEFile']]], - ['getsechdr_120',['getSecHdr',['../class_p_e_file.html#a2012133a6cc8c59e45fc13c6f64cd17b',1,'PEFile::getSecHdr()'],['../class_sect_hdrs_wrapper.html#a7e66af846c528e016eded091cdd11440',1,'SectHdrsWrapper::getSecHdr()']]], + ['getsechdr_120',['getsechdr',['../class_p_e_file.html#a2012133a6cc8c59e45fc13c6f64cd17b',1,'PEFile::getSecHdr()'],['../class_sect_hdrs_wrapper.html#a7e66af846c528e016eded091cdd11440',1,'SectHdrsWrapper::getSecHdr()']]], ['getsechdraccessrightsdesc_121',['getSecHdrAccessRightsDesc',['../class_section_hdr_wrapper.html#aa121df9771be2192eb93e7ad8608d5e1',1,'SectionHdrWrapper']]], - ['getsechdratoffset_122',['getSecHdrAtOffset',['../class_p_e_file.html#af64de3331e1daeced2bfdb63ccc078d2',1,'PEFile::getSecHdrAtOffset()'],['../class_sect_hdrs_wrapper.html#a67602090ef783553cfaee18f2eac6bdb',1,'SectHdrsWrapper::getSecHdrAtOffset()']]], - ['getsecindex_123',['getSecIndex',['../class_p_e_file.html#a0171126c532ff02a9334adccf7679aff',1,'PEFile::getSecIndex()'],['../class_sect_hdrs_wrapper.html#aac8e2b65a8afeeb5f8d5eca5be7c53e3',1,'SectHdrsWrapper::getSecIndex()']]], + ['getsechdratoffset_122',['getsechdratoffset',['../class_p_e_file.html#af64de3331e1daeced2bfdb63ccc078d2',1,'PEFile::getSecHdrAtOffset()'],['../class_sect_hdrs_wrapper.html#a67602090ef783553cfaee18f2eac6bdb',1,'SectHdrsWrapper::getSecHdrAtOffset()']]], + ['getsecindex_123',['getsecindex',['../class_p_e_file.html#a0171126c532ff02a9334adccf7679aff',1,'PEFile::getSecIndex()'],['../class_sect_hdrs_wrapper.html#aac8e2b65a8afeeb5f8d5eca5be7c53e3',1,'SectHdrsWrapper::getSecIndex()']]], ['getsectionalignment_124',['getSectionAlignment',['../class_p_e_file.html#a16b7b02f79011e788be2ec3ac247d295',1,'PEFile']]], ['getsectionscount_125',['getSectionsCount',['../class_p_e_file.html#a56dab242cb070abf1c001b500319d12e',1,'PEFile']]], ['getshortname_126',['getShortName',['../class_import_base_func_wrapper.html#aba342064b7e19eb82b7145a9e9a150ab',1,'ImportBaseFuncWrapper']]], ['getsignature_127',['getSignature',['../class_debug_dir_c_v_entry_wrapper.html#a19c25cbb168fea89a98c210f084a01db',1,'DebugDirCVEntryWrapper']]], - ['getsize_128',['getSize',['../class_exe_element_wrapper.html#a087ecf5a983c1ef1e8de95b16c487616',1,'ExeElementWrapper::getSize()'],['../class_bound_imp_dir_wrapper.html#ab7c6601b276e6b7722a7afef2b84ef9f',1,'BoundImpDirWrapper::getSize()'],['../class_bound_entry_wrapper.html#a8ba933bb8560f2a39113a2a0c78d6846',1,'BoundEntryWrapper::getSize()'],['../class_clr_dir_wrapper.html#a9047526e6b605e819d295ae19beeb23e',1,'ClrDirWrapper::getSize()'],['../class_data_dir_wrapper.html#abcc6d86660e1c32921c9799969a5c998',1,'DataDirWrapper::getSize()'],['../class_debug_dir_wrapper.html#aa569b5e9cb43f99cba1753516776b82e',1,'DebugDirWrapper::getSize()'],['../class_debug_dir_entry_wrapper.html#a7cf23611fe5700f83016e5f29a40367b',1,'DebugDirEntryWrapper::getSize()'],['../class_debug_dir_c_v_entry_wrapper.html#ac677a56d653468d728ff06f27770f7ad',1,'DebugDirCVEntryWrapper::getSize()'],['../class_delay_imp_dir_wrapper.html#aa430d309e6f9fc7c6eba0727305e1b6a',1,'DelayImpDirWrapper::getSize()'],['../class_delay_imp_entry_wrapper.html#a9b2dd20f330a44d5e22c9ef3beed5bd3',1,'DelayImpEntryWrapper::getSize()'],['../class_delay_imp_func_wrapper.html#ae37fd51b9bb3448882dda77f3919182f',1,'DelayImpFuncWrapper::getSize()'],['../class_dos_hdr_wrapper.html#ab8037f5e806b95b0d099dd64979b8bce',1,'DosHdrWrapper::getSize()'],['../class_exception_dir_wrapper.html#a63ffd78fb80906e819be8911c0af1454',1,'ExceptionDirWrapper::getSize()'],['../class_exception_entry_wrapper.html#af1c5b4de8a2edef746e369f509187b8a',1,'ExceptionEntryWrapper::getSize()'],['../class_export_dir_wrapper.html#abfede16e5d2f1a2d7ebd19bd241e039b',1,'ExportDirWrapper::getSize()'],['../class_export_entry_wrapper.html#aa451e74aa9ea5ea059df9738b3f133c7',1,'ExportEntryWrapper::getSize()'],['../class_file_hdr_wrapper.html#a412e69b2c560d19af64395c5180b3892',1,'FileHdrWrapper::getSize()'],['../class_import_dir_wrapper.html#a355bb222a641427541431508bb5f33de',1,'ImportDirWrapper::getSize()'],['../class_import_entry_wrapper.html#aefc8316cdb0c32b4becdee6ca6a9d841',1,'ImportEntryWrapper::getSize()'],['../class_imported_func_wrapper.html#a7c3f3b80a547a003d8ce67d5fb96e263',1,'ImportedFuncWrapper::getSize()'],['../class_ld_config_dir_wrapper.html#a1bbe5e6db01da6cbb3a66f562a40a261',1,'LdConfigDirWrapper::getSize()'],['../class_ld_config_entry_wrapper.html#a8edff8f9ddc847f0f3c20baa1779759f',1,'LdConfigEntryWrapper::getSize()'],['../class_opt_hdr_wrapper.html#ac142ee0efd040b9b61179b503ff86a1c',1,'OptHdrWrapper::getSize()'],['../class_reloc_dir_wrapper.html#a79e4c2e5995dd6d77545b97fbc1d6ab2',1,'RelocDirWrapper::getSize()'],['../class_reloc_block_wrapper.html#a9f2dec79e5395fe1713f0d4ac42f8565',1,'RelocBlockWrapper::getSize()'],['../class_reloc_entry_wrapper.html#a76aebcab81dccfc6e3e77b598cd3c933',1,'RelocEntryWrapper::getSize()'],['../class_resource_dir_wrapper.html#a1bfb92c6802ac45f59f78158d1374088',1,'ResourceDirWrapper::getSize()'],['../class_resource_entry_wrapper.html#afeb5f36e9520af160fef22ede806e0a4',1,'ResourceEntryWrapper::getSize()'],['../class_resource_leaf_wrapper.html#aa01b840c9649ffe293b187456316431c',1,'ResourceLeafWrapper::getSize()'],['../class_rich_hdr_wrapper.html#a7795602908abdba362679d43d5d0bbbf',1,'RichHdrWrapper::getSize()'],['../class_resource_content_wrapper.html#ac57c5ad1d68b7d4548609850e46b8c4e',1,'ResourceContentWrapper::getSize()'],['../class_res_string.html#a2356c1571d10ec2fba8862b08ee90e6c',1,'ResString::getSize()'],['../class_resource_version_wrapper.html#aa5079a4da58b6d6782879813d0f7bd77',1,'ResourceVersionWrapper::getSize()'],['../class_section_hdr_wrapper.html#af075f6840ed42bcd0810931916d85dd6',1,'SectionHdrWrapper::getSize()'],['../class_sect_hdrs_wrapper.html#a4d6b44795635eae887a570304b838e11',1,'SectHdrsWrapper::getSize()'],['../class_security_dir_wrapper.html#a7ec99d72034e8cf202412b202ad3ddbf',1,'SecurityDirWrapper::getSize()'],['../class_tls_dir_wrapper.html#a54ce071432a00cec76b73b0fc8ed2f9a',1,'TlsDirWrapper::getSize()'],['../class_tls_entry_wrapper.html#a5d51106dc963b4f22a1905b8cac28c70',1,'TlsEntryWrapper::getSize()']]], + ['getsize_128',['getsize',['../class_exe_element_wrapper.html#a087ecf5a983c1ef1e8de95b16c487616',1,'ExeElementWrapper::getSize()'],['../class_bound_imp_dir_wrapper.html#ab7c6601b276e6b7722a7afef2b84ef9f',1,'BoundImpDirWrapper::getSize()'],['../class_bound_entry_wrapper.html#a8ba933bb8560f2a39113a2a0c78d6846',1,'BoundEntryWrapper::getSize()'],['../class_clr_dir_wrapper.html#a9047526e6b605e819d295ae19beeb23e',1,'ClrDirWrapper::getSize()'],['../class_data_dir_wrapper.html#abcc6d86660e1c32921c9799969a5c998',1,'DataDirWrapper::getSize()'],['../class_debug_dir_wrapper.html#aa569b5e9cb43f99cba1753516776b82e',1,'DebugDirWrapper::getSize()'],['../class_debug_dir_entry_wrapper.html#a7cf23611fe5700f83016e5f29a40367b',1,'DebugDirEntryWrapper::getSize()'],['../class_debug_dir_c_v_entry_wrapper.html#ac677a56d653468d728ff06f27770f7ad',1,'DebugDirCVEntryWrapper::getSize()'],['../class_delay_imp_dir_wrapper.html#aa430d309e6f9fc7c6eba0727305e1b6a',1,'DelayImpDirWrapper::getSize()'],['../class_delay_imp_entry_wrapper.html#a9b2dd20f330a44d5e22c9ef3beed5bd3',1,'DelayImpEntryWrapper::getSize()'],['../class_delay_imp_func_wrapper.html#ae37fd51b9bb3448882dda77f3919182f',1,'DelayImpFuncWrapper::getSize()'],['../class_dos_hdr_wrapper.html#ab8037f5e806b95b0d099dd64979b8bce',1,'DosHdrWrapper::getSize()'],['../class_exception_dir_wrapper.html#a63ffd78fb80906e819be8911c0af1454',1,'ExceptionDirWrapper::getSize()'],['../class_exception_entry_wrapper.html#af1c5b4de8a2edef746e369f509187b8a',1,'ExceptionEntryWrapper::getSize()'],['../class_export_dir_wrapper.html#abfede16e5d2f1a2d7ebd19bd241e039b',1,'ExportDirWrapper::getSize()'],['../class_export_entry_wrapper.html#aa451e74aa9ea5ea059df9738b3f133c7',1,'ExportEntryWrapper::getSize()'],['../class_file_hdr_wrapper.html#a412e69b2c560d19af64395c5180b3892',1,'FileHdrWrapper::getSize()'],['../class_import_dir_wrapper.html#a355bb222a641427541431508bb5f33de',1,'ImportDirWrapper::getSize()'],['../class_import_entry_wrapper.html#aefc8316cdb0c32b4becdee6ca6a9d841',1,'ImportEntryWrapper::getSize()'],['../class_imported_func_wrapper.html#a7c3f3b80a547a003d8ce67d5fb96e263',1,'ImportedFuncWrapper::getSize()'],['../class_ld_config_dir_wrapper.html#a1bbe5e6db01da6cbb3a66f562a40a261',1,'LdConfigDirWrapper::getSize()'],['../class_ld_config_entry_wrapper.html#a8edff8f9ddc847f0f3c20baa1779759f',1,'LdConfigEntryWrapper::getSize()'],['../class_opt_hdr_wrapper.html#ac142ee0efd040b9b61179b503ff86a1c',1,'OptHdrWrapper::getSize()'],['../class_reloc_dir_wrapper.html#a79e4c2e5995dd6d77545b97fbc1d6ab2',1,'RelocDirWrapper::getSize()'],['../class_reloc_block_wrapper.html#a9f2dec79e5395fe1713f0d4ac42f8565',1,'RelocBlockWrapper::getSize()'],['../class_reloc_entry_wrapper.html#a76aebcab81dccfc6e3e77b598cd3c933',1,'RelocEntryWrapper::getSize()'],['../class_resource_dir_wrapper.html#a1bfb92c6802ac45f59f78158d1374088',1,'ResourceDirWrapper::getSize()'],['../class_resource_entry_wrapper.html#afeb5f36e9520af160fef22ede806e0a4',1,'ResourceEntryWrapper::getSize()'],['../class_resource_leaf_wrapper.html#aa01b840c9649ffe293b187456316431c',1,'ResourceLeafWrapper::getSize()'],['../class_rich_hdr_wrapper.html#a7795602908abdba362679d43d5d0bbbf',1,'RichHdrWrapper::getSize()'],['../class_resource_content_wrapper.html#ac57c5ad1d68b7d4548609850e46b8c4e',1,'ResourceContentWrapper::getSize()'],['../class_res_string.html#a2356c1571d10ec2fba8862b08ee90e6c',1,'ResString::getSize()'],['../class_resource_version_wrapper.html#aa5079a4da58b6d6782879813d0f7bd77',1,'ResourceVersionWrapper::getSize()'],['../class_section_hdr_wrapper.html#af075f6840ed42bcd0810931916d85dd6',1,'SectionHdrWrapper::getSize()'],['../class_sect_hdrs_wrapper.html#a4d6b44795635eae887a570304b838e11',1,'SectHdrsWrapper::getSize()'],['../class_security_dir_wrapper.html#a7ec99d72034e8cf202412b202ad3ddbf',1,'SecurityDirWrapper::getSize()'],['../class_tls_dir_wrapper.html#a54ce071432a00cec76b73b0fc8ed2f9a',1,'TlsDirWrapper::getSize()'],['../class_tls_entry_wrapper.html#a5d51106dc963b4f22a1905b8cac28c70',1,'TlsEntryWrapper::getSize()']]], ['getstringvalue_129',['getStringValue',['../class_abstract_byte_buffer.html#a265e3794703e57d0208feb007c6f79ec',1,'AbstractByteBuffer']]], ['getstrlen_130',['getStrLen',['../class_res_string.html#a90a16317582e7b4581598bf2723c028e',1,'ResString']]], ['getsubfieldname_131',['getSubfieldName',['../class_exe_node_wrapper.html#a3d01a79fd85ba49847452b30e818c03e',1,'ExeNodeWrapper']]], ['getsubfieldptr_132',['getSubfieldPtr',['../class_exe_node_wrapper.html#a1d7490ea5cf0f177357727df53c9a08a',1,'ExeNodeWrapper']]], - ['getsubfieldscount_133',['getSubFieldsCount',['../class_import_base_entry_wrapper.html#a48961f8c1663c5801d0ccc8512570204',1,'ImportBaseEntryWrapper::getSubFieldsCount()'],['../class_imported_func_wrapper.html#ac994c7f9b5b1c2b41407185a3a2b658a',1,'ImportedFuncWrapper::getSubFieldsCount()'],['../class_ld_config_dir_wrapper.html#ab673ac25987a0b86bb2b2db65138a43d',1,'LdConfigDirWrapper::getSubFieldsCount()'],['../class_reloc_entry_wrapper.html#a084278764ad73a02055d96f82fdff421',1,'RelocEntryWrapper::getSubFieldsCount()'],['../class_resource_dir_wrapper.html#a5ddf09f7a5de00c9163ccd3773c0c7fd',1,'ResourceDirWrapper::getSubFieldsCount()'],['../class_resource_entry_wrapper.html#ae88a0aa349c34ecaaf619d935ffb4e52',1,'ResourceEntryWrapper::getSubFieldsCount()'],['../class_resource_content_wrapper.html#ac1352678307202294711ab666e8a2919',1,'ResourceContentWrapper::getSubFieldsCount()'],['../class_res_string.html#aae288ca9e7186e1cb0b710fcee22e043',1,'ResString::getSubFieldsCount()'],['../class_resource_version_wrapper.html#a7ac78608b5a4f5d804f091165e3e1aa3',1,'ResourceVersionWrapper::getSubFieldsCount()'],['../class_section_hdr_wrapper.html#a8962a201409806d70dda661ab2fd3b60',1,'SectionHdrWrapper::getSubFieldsCount()'],['../class_security_dir_wrapper.html#ae7a22de1126d6be649ff67c63535780c',1,'SecurityDirWrapper::getSubFieldsCount()'],['../class_tls_dir_wrapper.html#a9bd7a858bdb2f9afb0a21e6bfde78ef6',1,'TlsDirWrapper::getSubFieldsCount()'],['../class_tls_entry_wrapper.html#aefb6d97a24334345b45d5e338652b903',1,'TlsEntryWrapper::getSubFieldsCount()'],['../class_exe_element_wrapper.html#a67ce2e7ed7ae73a57c6a711ff767d40a',1,'ExeElementWrapper::getSubFieldsCount()'],['../class_exe_node_wrapper.html#ab83dd78bccf0c4693a7483c3484b2e39',1,'ExeNodeWrapper::getSubFieldsCount()'],['../class_bound_entry_wrapper.html#a519584ce713d00807885db5b0b934e4c',1,'BoundEntryWrapper::getSubFieldsCount()'],['../class_clr_dir_wrapper.html#a56c3b314c3ae7d61a5c8a867618f71e4',1,'ClrDirWrapper::getSubFieldsCount()'],['../class_data_dir_wrapper.html#a85d681072a24dddb347985177f2abf6f',1,'DataDirWrapper::getSubFieldsCount()'],['../class_debug_dir_entry_wrapper.html#a59a493ba7e6c5b174e725244885705e4',1,'DebugDirEntryWrapper::getSubFieldsCount()'],['../class_debug_dir_c_v_entry_wrapper.html#af2b50cbbe1aa69fe5bb761f2ced35ac4',1,'DebugDirCVEntryWrapper::getSubFieldsCount()'],['../class_delay_imp_func_wrapper.html#a98df01573081653b6a8cd01907279a73',1,'DelayImpFuncWrapper::getSubFieldsCount()'],['../class_exception_entry_wrapper.html#aa59cce7ebb50277f06d1634482218e99',1,'ExceptionEntryWrapper::getSubFieldsCount()'],['../class_export_dir_wrapper.html#a0803f247b0dcc9c46714efe3441b27bf',1,'ExportDirWrapper::getSubFieldsCount()'],['../class_export_entry_wrapper.html#a32ee9d479af0d4c6a021159176034f05',1,'ExportEntryWrapper::getSubFieldsCount()']]], + ['getsubfieldscount_133',['getsubfieldscount',['../class_import_base_entry_wrapper.html#a48961f8c1663c5801d0ccc8512570204',1,'ImportBaseEntryWrapper::getSubFieldsCount()'],['../class_imported_func_wrapper.html#ac994c7f9b5b1c2b41407185a3a2b658a',1,'ImportedFuncWrapper::getSubFieldsCount()'],['../class_ld_config_dir_wrapper.html#ab673ac25987a0b86bb2b2db65138a43d',1,'LdConfigDirWrapper::getSubFieldsCount()'],['../class_reloc_entry_wrapper.html#a084278764ad73a02055d96f82fdff421',1,'RelocEntryWrapper::getSubFieldsCount()'],['../class_resource_dir_wrapper.html#a5ddf09f7a5de00c9163ccd3773c0c7fd',1,'ResourceDirWrapper::getSubFieldsCount()'],['../class_resource_entry_wrapper.html#ae88a0aa349c34ecaaf619d935ffb4e52',1,'ResourceEntryWrapper::getSubFieldsCount()'],['../class_resource_content_wrapper.html#ac1352678307202294711ab666e8a2919',1,'ResourceContentWrapper::getSubFieldsCount()'],['../class_res_string.html#aae288ca9e7186e1cb0b710fcee22e043',1,'ResString::getSubFieldsCount()'],['../class_resource_version_wrapper.html#a7ac78608b5a4f5d804f091165e3e1aa3',1,'ResourceVersionWrapper::getSubFieldsCount()'],['../class_section_hdr_wrapper.html#a8962a201409806d70dda661ab2fd3b60',1,'SectionHdrWrapper::getSubFieldsCount()'],['../class_security_dir_wrapper.html#ae7a22de1126d6be649ff67c63535780c',1,'SecurityDirWrapper::getSubFieldsCount()'],['../class_tls_dir_wrapper.html#a9bd7a858bdb2f9afb0a21e6bfde78ef6',1,'TlsDirWrapper::getSubFieldsCount()'],['../class_tls_entry_wrapper.html#aefb6d97a24334345b45d5e338652b903',1,'TlsEntryWrapper::getSubFieldsCount()'],['../class_exe_element_wrapper.html#a67ce2e7ed7ae73a57c6a711ff767d40a',1,'ExeElementWrapper::getSubFieldsCount()'],['../class_exe_node_wrapper.html#ab83dd78bccf0c4693a7483c3484b2e39',1,'ExeNodeWrapper::getSubFieldsCount()'],['../class_bound_entry_wrapper.html#a519584ce713d00807885db5b0b934e4c',1,'BoundEntryWrapper::getSubFieldsCount()'],['../class_clr_dir_wrapper.html#a56c3b314c3ae7d61a5c8a867618f71e4',1,'ClrDirWrapper::getSubFieldsCount()'],['../class_data_dir_wrapper.html#a85d681072a24dddb347985177f2abf6f',1,'DataDirWrapper::getSubFieldsCount()'],['../class_debug_dir_entry_wrapper.html#a59a493ba7e6c5b174e725244885705e4',1,'DebugDirEntryWrapper::getSubFieldsCount()'],['../class_debug_dir_c_v_entry_wrapper.html#af2b50cbbe1aa69fe5bb761f2ced35ac4',1,'DebugDirCVEntryWrapper::getSubFieldsCount()'],['../class_delay_imp_func_wrapper.html#a98df01573081653b6a8cd01907279a73',1,'DelayImpFuncWrapper::getSubFieldsCount()'],['../class_exception_entry_wrapper.html#aa59cce7ebb50277f06d1634482218e99',1,'ExceptionEntryWrapper::getSubFieldsCount()'],['../class_export_dir_wrapper.html#a0803f247b0dcc9c46714efe3441b27bf',1,'ExportDirWrapper::getSubFieldsCount()'],['../class_export_entry_wrapper.html#a32ee9d479af0d4c6a021159176034f05',1,'ExportEntryWrapper::getSubFieldsCount()']]], ['getsubfieldsize_134',['getSubfieldSize',['../class_exe_node_wrapper.html#ac0f199fc5f2afabb187da4594e0af82b',1,'ExeNodeWrapper']]], ['getsubfieldwrapper_135',['getSubfieldWrapper',['../class_ld_config_dir_wrapper.html#a3beb61b14d4965976e2f1cc8c9f34a07',1,'LdConfigDirWrapper']]], ['getsubfieldwrappercount_136',['getSubfieldWrapperCount',['../class_ld_config_dir_wrapper.html#a4393351d5abd3e7136949f87ab9f07f5',1,'LdConfigDirWrapper']]], @@ -141,7 +141,7 @@ var searchData= ['getthunkvalsize_138',['getThunkValSize',['../class_import_base_func_wrapper.html#a5f55a47f8dee3a8983a24e1f476d6302',1,'ImportBaseFuncWrapper']]], ['getthunkvalue_139',['getThunkValue',['../class_imported_func_wrapper.html#ac38284626478d2f787593f24344fad45',1,'ImportedFuncWrapper']]], ['gettopentryid_140',['getTopEntryID',['../class_resource_entry_wrapper.html#a422a14126a13f31e58f71f65bad2dac8',1,'ResourceEntryWrapper']]], - ['gettype_141',['getType',['../class_reloc_entry_wrapper.html#ad13ae2b18d9ddd405608dad30fe4916c',1,'RelocEntryWrapper::getType()'],['../class_resource_content_wrapper.html#a84266b95950b0e8005e47ec55e703c71',1,'ResourceContentWrapper::getType()']]], + ['gettype_141',['gettype',['../class_reloc_entry_wrapper.html#ad13ae2b18d9ddd405608dad30fe4916c',1,'RelocEntryWrapper::getType()'],['../class_resource_content_wrapper.html#a84266b95950b0e8005e47ec55e703c71',1,'ResourceContentWrapper::getType()']]], ['gettypename_142',['getTypeName',['../class_exe_factory.html#a85810c3ac94b88d0649e3553d7eba93a',1,'ExeFactory']]], ['getuncnamestr_143',['getuncNameStr',['../class_export_entry_wrapper.html#ad6aadabc85c4eb0c0dd1f8d6a524fba7',1,'ExportEntryWrapper']]], ['getvalueptr_144',['getValuePtr',['../class_imported_func_wrapper.html#ab7014f620a332a27fe02a9bdaed196fc',1,'ImportedFuncWrapper']]], @@ -149,7 +149,7 @@ var searchData= ['getversiontext_146',['getVersionText',['../class_resource_version_wrapper.html#a7ebf304f4ac40fd0f05820e1950e026f',1,'ResourceVersionWrapper']]], ['getvirtualptr_147',['getVirtualPtr',['../class_section_hdr_wrapper.html#a8e7aae121e17c418de75fa6b540991e9',1,'SectionHdrWrapper']]], ['getwasciistringvalue_148',['getWAsciiStringValue',['../class_abstract_byte_buffer.html#aced00c06952e4829ce0549a0af3739ea',1,'AbstractByteBuffer']]], - ['getwrappedvalue_149',['getWrappedValue',['../class_exe_element_wrapper.html#a5f05db52fcfdf132740fa6f0923055cd',1,'ExeElementWrapper::getWrappedValue(size_t fieldId, size_t subField)'],['../class_exe_element_wrapper.html#a2d0869ffae03306918f46253eb43ecc6',1,'ExeElementWrapper::getWrappedValue(size_t fieldId)']]], + ['getwrappedvalue_149',['getwrappedvalue',['../class_exe_element_wrapper.html#a5f05db52fcfdf132740fa6f0923055cd',1,'ExeElementWrapper::getWrappedValue(size_t fieldId, size_t subField)'],['../class_exe_element_wrapper.html#a2d0869ffae03306918f46253eb43ecc6',1,'ExeElementWrapper::getWrappedValue(size_t fieldId)']]], ['getwrapper_150',['getWrapper',['../class_exe_wrappers_container.html#adb485acf2f9b4ad9b32d73f15ef9bec3',1,'ExeWrappersContainer']]], ['getwrapperat_151',['getWrapperAt',['../class_resources_container.html#a5977bb096781d3c2131750c94fea6ffd',1,'ResourcesContainer']]], ['getwrappername_152',['getWrapperName',['../class_exe_wrappers_container.html#a40ba34d51398f65635a8f2aae7188745',1,'ExeWrappersContainer']]], diff --git a/search/functions_8.js b/search/functions_8.js index 66df99e2..1c380542 100644 --- a/search/functions_8.js +++ b/search/functions_8.js @@ -2,13 +2,13 @@ var searchData= [ ['hasdirectory_0',['hasDirectory',['../class_p_e_file.html#a2e006cce7d9641a27bb3446b64477c71',1,'PEFile']]], ['hasnonprintable_1',['hasNonPrintable',['../namespacepe__util.html#a103f13d1382d5fa542fa6fb8a073f28a',1,'pe_util']]], - ['hassubfieldwrapper_2',['hasSubfieldWrapper',['../class_exe_element_wrapper.html#a2c144aaa86fd60c6aa91b90c86c77c30',1,'ExeElementWrapper::hasSubfieldWrapper()'],['../class_ld_config_dir_wrapper.html#a5cc8b97920fedec21c16549c8ca0f0e2',1,'LdConfigDirWrapper::hasSubfieldWrapper(size_t parentType)']]], + ['hassubfieldwrapper_2',['hassubfieldwrapper',['../class_exe_element_wrapper.html#a2c144aaa86fd60c6aa91b90c86c77c30',1,'ExeElementWrapper::hasSubfieldWrapper()'],['../class_ld_config_dir_wrapper.html#a5cc8b97920fedec21c16549c8ca0f0e2',1,'LdConfigDirWrapper::hasSubfieldWrapper(size_t parentType)']]], ['hassupressioninfo_3',['hasSupressionInfo',['../class_ld_config_dir_wrapper.html#a33b9fc837bb850ae695612fdbbe4a5d2',1,'LdConfigDirWrapper']]], ['hasthunk_4',['hasThunk',['../class_import_base_dir_wrapper.html#a4a782d3492affeb5ab95a9c470bf18f0',1,'ImportBaseDirWrapper']]], ['hastopentry_5',['hasTopEntry',['../class_resources_album.html#ac46ef44dc24379237449de6f1ca708f5',1,'ResourcesAlbum']]], ['hastype_6',['hasType',['../class_resources_album.html#afa48907b5b2399ce63e6cebe56549a0b',1,'ResourcesAlbum']]], ['hdrsectionsnum_7',['hdrSectionsNum',['../class_p_e_file.html#ab31182be0835a59d2ab8965edb5e6167',1,'PEFile']]], - ['hdrssize_8',['hdrsSize',['../class_p_e_core.html#a67867e96974c5141d1fb894c62626fa2',1,'PECore::hdrsSize()'],['../class_p_e_file.html#ab199f3416b1c1a8e97f53df22b3f7fd1',1,'PEFile::hdrsSize()']]], + ['hdrssize_8',['hdrssize',['../class_p_e_core.html#a67867e96974c5141d1fb894c62626fa2',1,'PECore::hdrsSize()'],['../class_p_e_file.html#ab199f3416b1c1a8e97f53df22b3f7fd1',1,'PEFile::hdrsSize()']]], ['hexdump_9',['hexdump',['../namespacepe__util.html#a89542115abc280faa162fbd815672f48',1,'pe_util']]], ['hexformatter_10',['HexFormatter',['../class_hex_formatter.html#a4aeecf116732986ecd9ba2bd0de0ba0e',1,'HexFormatter']]] ]; diff --git a/search/functions_9.js b/search/functions_9.js index f4b89df2..387848bd 100644 --- a/search/functions_9.js +++ b/search/functions_9.js @@ -17,23 +17,23 @@ var searchData= ['is32_14',['is32',['../class_delay_imp_dir_wrapper.html#a41e1da75ded9fe5869c526a289266b0d',1,'DelayImpDirWrapper']]], ['is64_15',['is64',['../class_delay_imp_dir_wrapper.html#afbf7c046cdc591573b7f8d7f308ec966',1,'DelayImpDirWrapper']]], ['isareaempty_16',['isAreaEmpty',['../class_abstract_byte_buffer.html#ad6e51045cafb47ed7d4467b55ad74d4f',1,'AbstractByteBuffer']]], - ['isbit32_17',['isBit32',['../class_executable.html#adcf60bc50efc0f27dd245baf5fab3b1b',1,'Executable::isBit32(Executable *exe)'],['../class_executable.html#a2dacd9266dfa0a64948e494b412a5810',1,'Executable::isBit32()'],['../class_exe_element_wrapper.html#a10375011f680e46f236a878916838fd6',1,'ExeElementWrapper::isBit32()']]], - ['isbit64_18',['isBit64',['../class_executable.html#a4c85f844b8f48e9070a72f7fcb300a70',1,'Executable::isBit64(Executable *exe)'],['../class_executable.html#a42b330a49cdaca307ec4b0022db2fe30',1,'Executable::isBit64()'],['../class_exe_element_wrapper.html#a85682570009a6c69fb22f035763a3c56',1,'ExeElementWrapper::isBit64()']]], + ['isbit32_17',['isbit32',['../class_executable.html#adcf60bc50efc0f27dd245baf5fab3b1b',1,'Executable::isBit32(Executable *exe)'],['../class_executable.html#a2dacd9266dfa0a64948e494b412a5810',1,'Executable::isBit32()'],['../class_exe_element_wrapper.html#a10375011f680e46f236a878916838fd6',1,'ExeElementWrapper::isBit32()']]], + ['isbit64_18',['isbit64',['../class_executable.html#a4c85f844b8f48e9070a72f7fcb300a70',1,'Executable::isBit64(Executable *exe)'],['../class_executable.html#a42b330a49cdaca307ec4b0022db2fe30',1,'Executable::isBit64()'],['../class_exe_element_wrapper.html#a85682570009a6c69fb22f035763a3c56',1,'ExeElementWrapper::isBit64()']]], ['isbound_19',['isBound',['../class_import_entry_wrapper.html#a021b26ef410620ed558536575794e5e3',1,'ImportEntryWrapper']]], ['isbyname_20',['isByName',['../class_resource_entry_wrapper.html#ab64fbc478f6e70835f3eba2dd59a4a7f',1,'ResourceEntryWrapper']]], - ['isbyordinal_21',['isByOrdinal',['../class_imported_func_wrapper.html#a9188244dbc4ad0c1834bac394cf0d66d',1,'ImportedFuncWrapper::isByOrdinal()'],['../class_export_entry_wrapper.html#a994d8a16bcbd84a6991c1febe4e29c41',1,'ExportEntryWrapper::isByOrdinal()'],['../class_delay_imp_func_wrapper.html#a3b4e8d96c151873ca97513c0165348b6',1,'DelayImpFuncWrapper::isByOrdinal()'],['../class_import_base_func_wrapper.html#ace0d20b46771cb1c8f978ebaf7a5106e',1,'ImportBaseFuncWrapper::isByOrdinal()']]], + ['isbyordinal_21',['isbyordinal',['../class_imported_func_wrapper.html#a9188244dbc4ad0c1834bac394cf0d66d',1,'ImportedFuncWrapper::isByOrdinal()'],['../class_export_entry_wrapper.html#a994d8a16bcbd84a6991c1febe4e29c41',1,'ExportEntryWrapper::isByOrdinal()'],['../class_delay_imp_func_wrapper.html#a3b4e8d96c151873ca97513c0165348b6',1,'DelayImpFuncWrapper::isByOrdinal()'],['../class_import_base_func_wrapper.html#ace0d20b46771cb1c8f978ebaf7a5106e',1,'ImportBaseFuncWrapper::isByOrdinal()']]], ['isdir_22',['isDir',['../class_resource_entry_wrapper.html#a9624f3dc917bdc36fc2e10c45b139ce2',1,'ResourceEntryWrapper']]], ['ishexchar_23',['isHexChar',['../namespacepe__util.html#ad7a076665793ae6a73d7fb9243d4501e',1,'pe_util']]], - ['ismyentrytype_24',['isMyEntryType',['../class_exe_node_wrapper.html#a18ce067c9b583670403ed0abc2cbad2d',1,'ExeNodeWrapper::isMyEntryType()'],['../class_sect_hdrs_wrapper.html#a72bf5fb11581fdfc4c2653d2be7c3633',1,'SectHdrsWrapper::isMyEntryType()']]], + ['ismyentrytype_24',['ismyentrytype',['../class_exe_node_wrapper.html#a18ce067c9b583670403ed0abc2cbad2d',1,'ExeNodeWrapper::isMyEntryType()'],['../class_sect_hdrs_wrapper.html#a72bf5fb11581fdfc4c2653d2be7c3633',1,'SectHdrsWrapper::isMyEntryType()']]], ['isnamevalid_25',['isNameValid',['../namespaceimports__util.html#a3a68efb57dab497843ba53f23161f9a3',1,'imports_util']]], ['isprintable_26',['isPrintable',['../namespacepe__util.html#aad5182df7cffa8c7cbcadcf71ff60a19',1,'pe_util']]], ['isrepro_27',['isRepro',['../class_debug_dir_wrapper.html#a6a8ae76c391c092a19a4ad29d2f150f4',1,'DebugDirWrapper']]], ['isreprobuild_28',['isReproBuild',['../class_p_e_file.html#af5acfb39da44ddc17215468fcd9de38b',1,'PEFile']]], - ['isresized_29',['isResized',['../class_abstract_byte_buffer.html#a20e43caa5780d199dd1d7d919f9d590e',1,'AbstractByteBuffer::isResized()'],['../class_byte_buffer.html#a2a9463758d08480ddf96d7d551f39a8f',1,'ByteBuffer::isResized()'],['../class_executable.html#afc83c5cdac5c8a28c59949944c790c5d',1,'Executable::isResized()'],['../class_file_buffer.html#a0525da6f0ae5fc868ad5b398034ec4df',1,'FileBuffer::isResized()']]], + ['isresized_29',['isresized',['../class_abstract_byte_buffer.html#a20e43caa5780d199dd1d7d919f9d590e',1,'AbstractByteBuffer::isResized()'],['../class_byte_buffer.html#a2a9463758d08480ddf96d7d551f39a8f',1,'ByteBuffer::isResized()'],['../class_executable.html#afc83c5cdac5c8a28c59949944c790c5d',1,'Executable::isResized()'],['../class_file_buffer.html#a0525da6f0ae5fc868ad5b398034ec4df',1,'FileBuffer::isResized()']]], ['isspaceclear_30',['isSpaceClear',['../namespacepe__util.html#a8d27344da7a33a4c5b7c43c329179367',1,'pe_util']]], ['isstrlonger_31',['isStrLonger',['../namespacepe__util.html#a3206ffc8778304d1d269decfbe3ab0b6',1,'pe_util']]], - ['istruncated_32',['isTruncated',['../class_file_buffer.html#ae1b0afb493c07daf35cdf4e7da5cbc45',1,'FileBuffer::isTruncated()'],['../class_file_view.html#a0cbe4cf4efb205092c64c993ce4dc3cb',1,'FileView::isTruncated()'],['../class_executable.html#a076fe5621405c05bc0835866a32a2b0d',1,'Executable::isTruncated()'],['../class_abstract_byte_buffer.html#a113d0f29022df23ed74ff1c171df8c82',1,'AbstractByteBuffer::isTruncated()']]], - ['isvalid_33',['isValid',['../class_exe_node_wrapper.html#aa90cce24f1bec49d87dc18b329dce62e',1,'ExeNodeWrapper::isValid()'],['../class_import_base_entry_wrapper.html#ac43611e5b2a326c78da167b0e4784de8',1,'ImportBaseEntryWrapper::isValid()'],['../class_wrapped_value.html#a35afd8eacb5727e0921d7448333c6cca',1,'WrappedValue::isValid()'],['../class_abstract_byte_buffer.html#ac24d107f7f7dafeeb671e9aceeba818d',1,'AbstractByteBuffer::isValid()']]], + ['istruncated_32',['istruncated',['../class_file_buffer.html#ae1b0afb493c07daf35cdf4e7da5cbc45',1,'FileBuffer::isTruncated()'],['../class_file_view.html#a0cbe4cf4efb205092c64c993ce4dc3cb',1,'FileView::isTruncated()'],['../class_executable.html#a076fe5621405c05bc0835866a32a2b0d',1,'Executable::isTruncated()'],['../class_abstract_byte_buffer.html#a113d0f29022df23ed74ff1c171df8c82',1,'AbstractByteBuffer::isTruncated()']]], + ['isvalid_33',['isvalid',['../class_exe_node_wrapper.html#aa90cce24f1bec49d87dc18b329dce62e',1,'ExeNodeWrapper::isValid()'],['../class_import_base_entry_wrapper.html#ac43611e5b2a326c78da167b0e4784de8',1,'ImportBaseEntryWrapper::isValid()'],['../class_wrapped_value.html#a35afd8eacb5727e0921d7448333c6cca',1,'WrappedValue::isValid()'],['../class_abstract_byte_buffer.html#ac24d107f7f7dafeeb671e9aceeba818d',1,'AbstractByteBuffer::isValid()']]], ['isvalidaddr_34',['isValidAddr',['../class_executable.html#a383eb91b928dc417d9a631704737a192',1,'Executable']]], ['isvalidva_35',['isValidVA',['../class_executable.html#a7c38d78f5e14efeaaa205b9ee593dd4a',1,'Executable']]] ]; diff --git a/search/functions_a.js b/search/functions_a.js index 16c8ee60..99771bc2 100644 --- a/search/functions_a.js +++ b/search/functions_a.js @@ -3,5 +3,5 @@ var searchData= ['ldconfigdirwrapper_0',['LdConfigDirWrapper',['../class_ld_config_dir_wrapper.html#ae5eb16e4b4007b592f8be58fa86b2f7f',1,'LdConfigDirWrapper']]], ['ldconfigentrywrapper_1',['LdConfigEntryWrapper',['../class_ld_config_entry_wrapper.html#af702751103c7d40c035daeec6e4fba92',1,'LdConfigEntryWrapper']]], ['leafentryptr_2',['leafEntryPtr',['../class_resource_leaf_wrapper.html#a00acc594812f9d0e856a7e7a781b6e96',1,'ResourceLeafWrapper']]], - ['loadnextentry_3',['loadNextEntry',['../class_exe_node_wrapper.html#a8a0305cc15aefe812f69485bbe82508d',1,'ExeNodeWrapper::loadNextEntry()'],['../class_bound_imp_dir_wrapper.html#a13b9a7bba1549733fdc60d51abcea5ea',1,'BoundImpDirWrapper::loadNextEntry()'],['../class_debug_dir_wrapper.html#a71d7b9d4bd5aafbc77a6939b293f14c3',1,'DebugDirWrapper::loadNextEntry()'],['../class_delay_imp_dir_wrapper.html#a9a65bd88e9cba04eec4d53c626e1f967',1,'DelayImpDirWrapper::loadNextEntry()'],['../class_delay_imp_entry_wrapper.html#abd79b0c4556c89d51d65d60d947629ee',1,'DelayImpEntryWrapper::loadNextEntry()'],['../class_import_dir_wrapper.html#a4299a35ac29e73bc70c4788a7e7d1099',1,'ImportDirWrapper::loadNextEntry()'],['../class_import_entry_wrapper.html#a5a8b765e428aaf85d898604b50dba99f',1,'ImportEntryWrapper::loadNextEntry()'],['../class_sect_hdrs_wrapper.html#a5d346cfbb674f06a00fceb5fceedadc5',1,'SectHdrsWrapper::loadNextEntry()']]] + ['loadnextentry_3',['loadnextentry',['../class_exe_node_wrapper.html#a8a0305cc15aefe812f69485bbe82508d',1,'ExeNodeWrapper::loadNextEntry()'],['../class_bound_imp_dir_wrapper.html#a13b9a7bba1549733fdc60d51abcea5ea',1,'BoundImpDirWrapper::loadNextEntry()'],['../class_debug_dir_wrapper.html#a71d7b9d4bd5aafbc77a6939b293f14c3',1,'DebugDirWrapper::loadNextEntry()'],['../class_delay_imp_dir_wrapper.html#a9a65bd88e9cba04eec4d53c626e1f967',1,'DelayImpDirWrapper::loadNextEntry()'],['../class_delay_imp_entry_wrapper.html#abd79b0c4556c89d51d65d60d947629ee',1,'DelayImpEntryWrapper::loadNextEntry()'],['../class_import_dir_wrapper.html#a4299a35ac29e73bc70c4788a7e7d1099',1,'ImportDirWrapper::loadNextEntry()'],['../class_import_entry_wrapper.html#a5a8b765e428aaf85d898604b50dba99f',1,'ImportEntryWrapper::loadNextEntry()'],['../class_sect_hdrs_wrapper.html#a5d346cfbb674f06a00fceb5fceedadc5',1,'SectHdrsWrapper::loadNextEntry()']]] ]; diff --git a/search/functions_c.js b/search/functions_c.js index 443cce9b..0e3938d2 100644 --- a/search/functions_c.js +++ b/search/functions_c.js @@ -1,6 +1,6 @@ var searchData= [ - ['nowhitecount_0',['noWhiteCount',['../namespacepe__util.html#a5d0faa3e638d06b8762b1e646c5ee8bb',1,'pe_util::noWhiteCount(char *buf, size_t bufSize)'],['../namespacepe__util.html#ac9d2020d6eb85db1c13823e993139440',1,'pe_util::noWhiteCount(std::string)']]], + ['nowhitecount_0',['nowhitecount',['../namespacepe__util.html#a5d0faa3e638d06b8762b1e646c5ee8bb',1,'pe_util::noWhiteCount(char *buf, size_t bufSize)'],['../namespacepe__util.html#ac9d2020d6eb85db1c13823e993139440',1,'pe_util::noWhiteCount(std::string)']]], ['nt32_1',['nt32',['../class_opt_hdr_wrapper.html#a8da3077340617977fe5940cb732281d1',1,'OptHdrWrapper']]], ['nt64_2',['nt64',['../class_opt_hdr_wrapper.html#a2b341217f5473600609cfafff148d721',1,'OptHdrWrapper']]] ]; diff --git a/search/functions_e.js b/search/functions_e.js index 18abaa6b..c21e7cae 100644 --- a/search/functions_e.js +++ b/search/functions_e.js @@ -7,12 +7,12 @@ var searchData= ['peelementwrapper_4',['PEElementWrapper',['../class_p_e_element_wrapper.html#a27653bb6e16743105c6a3211b11274e0',1,'PEElementWrapper']]], ['pefile_5',['PEFile',['../class_p_e_file.html#ac56e1d69640d7133583e3599021a6662',1,'PEFile']]], ['pefilebuilder_6',['PEFileBuilder',['../class_p_e_file_builder.html#a45fd170cbdd43ed35697b42946130eb4',1,'PEFileBuilder']]], - ['pefilehdroffset_7',['peFileHdrOffset',['../class_p_e_core.html#a809ce6d61e968f409e6d630514b224bb',1,'PECore::peFileHdrOffset()'],['../class_p_e_file.html#a1bce6b846bd7e24d5aae0b15af67f58a',1,'PEFile::peFileHdrOffset()']]], - ['penodewrapper_8',['PENodeWrapper',['../class_p_e_node_wrapper.html#a236303f92c7a56aa3cfaeaae958f9b6b',1,'PENodeWrapper::PENodeWrapper(PEFile *pe, PENodeWrapper *parent, size_t entryNumber)'],['../class_p_e_node_wrapper.html#a313df66e81dfce411fa83d0ebc08c935',1,'PENodeWrapper::PENodeWrapper(PEFile *pe, PENodeWrapper *parent=NULL)']]], + ['pefilehdroffset_7',['pefilehdroffset',['../class_p_e_core.html#a809ce6d61e968f409e6d630514b224bb',1,'PECore::peFileHdrOffset()'],['../class_p_e_file.html#a1bce6b846bd7e24d5aae0b15af67f58a',1,'PEFile::peFileHdrOffset()']]], + ['penodewrapper_8',['penodewrapper',['../class_p_e_node_wrapper.html#a236303f92c7a56aa3cfaeaae958f9b6b',1,'PENodeWrapper::PENodeWrapper(PEFile *pe, PENodeWrapper *parent, size_t entryNumber)'],['../class_p_e_node_wrapper.html#a313df66e81dfce411fa83d0ebc08c935',1,'PENodeWrapper::PENodeWrapper(PEFile *pe, PENodeWrapper *parent=NULL)']]], ['penthdroffset_9',['peNtHdrOffset',['../class_p_e_file.html#aca1ded6302c26c4d25cd1f2dcedf737b',1,'PEFile']]], - ['pentheaderssize_10',['peNtHeadersSize',['../class_p_e_core.html#aa9c0035f661485e8c24fc548a0a233c1',1,'PECore::peNtHeadersSize()'],['../class_p_e_file.html#a2591ddf9ec68450e67c875625b190821',1,'PEFile::peNtHeadersSize()']]], - ['peopthdroffset_11',['peOptHdrOffset',['../class_p_e_core.html#a6bf58c2b373385ac5ce05aa676dc43b7',1,'PECore::peOptHdrOffset()'],['../class_p_e_file.html#a8923acc72bb12a868e0da26ddf8abbf9',1,'PEFile::peOptHdrOffset()']]], - ['pesignatureoffset_12',['peSignatureOffset',['../class_d_o_s_exe.html#a76084023f6d740e836149a0f7c04b5fe',1,'DOSExe::peSignatureOffset()'],['../class_p_e_core.html#aa2ff4665d8b56b2a5e1e1e00bc446b18',1,'PECore::peSignatureOffset()']]], + ['pentheaderssize_10',['pentheaderssize',['../class_p_e_core.html#aa9c0035f661485e8c24fc548a0a233c1',1,'PECore::peNtHeadersSize()'],['../class_p_e_file.html#a2591ddf9ec68450e67c875625b190821',1,'PEFile::peNtHeadersSize()']]], + ['peopthdroffset_11',['peopthdroffset',['../class_p_e_core.html#a6bf58c2b373385ac5ce05aa676dc43b7',1,'PECore::peOptHdrOffset()'],['../class_p_e_file.html#a8923acc72bb12a868e0da26ddf8abbf9',1,'PEFile::peOptHdrOffset()']]], + ['pesignatureoffset_12',['pesignatureoffset',['../class_d_o_s_exe.html#a76084023f6d740e836149a0f7c04b5fe',1,'DOSExe::peSignatureOffset()'],['../class_p_e_core.html#aa2ff4665d8b56b2a5e1e1e00bc446b18',1,'PECore::peSignatureOffset()']]], ['printsectionsmapping_13',['printSectionsMapping',['../class_sect_hdrs_wrapper.html#a3130c9344561fe2397036d51293cd315',1,'SectHdrsWrapper']]], ['putleaf_14',['putLeaf',['../class_resources_album.html#a789e361f0983b8e2f98c0915f2675454',1,'ResourcesAlbum']]], ['putwrapper_15',['putWrapper',['../class_resources_container.html#a45e72255893bab149e3ae0355ac4886e',1,'ResourcesContainer']]] diff --git a/search/functions_f.js b/search/functions_f.js index 41e429fb..c00d9e88 100644 --- a/search/functions_f.js +++ b/search/functions_f.js @@ -1,8 +1,8 @@ var searchData= [ - ['rawtorva_0',['rawToRva',['../class_d_o_s_exe.html#ac4417e47e4af170c9d9a8c72fbd32937',1,'DOSExe::rawToRva()'],['../class_executable.html#a8ea6a55050fe8242f94e830cac77c483',1,'Executable::rawToRva()'],['../class_p_e_file.html#aaf80a2d2b2d7e9b87e0edf79dcf19f42',1,'PEFile::rawToRva()']]], + ['rawtorva_0',['rawtorva',['../class_d_o_s_exe.html#ac4417e47e4af170c9d9a8c72fbd32937',1,'DOSExe::rawToRva()'],['../class_executable.html#a8ea6a55050fe8242f94e830cac77c483',1,'Executable::rawToRva()'],['../class_p_e_file.html#aaf80a2d2b2d7e9b87e0edf79dcf19f42',1,'PEFile::rawToRva()']]], ['read_1',['read',['../class_abstract_file_buffer.html#acfe88940b215a54b9e514a0fb8146781',1,'AbstractFileBuffer::read(QString &file, bufsize_t minBufSize, const bool allowTruncate)'],['../class_abstract_file_buffer.html#aa7315240b434b114bb5b935746f27b69',1,'AbstractFileBuffer::read(QFile &fIn, bufsize_t minBufSize, const bool allowTruncate)']]], - ['reloadmapping_2',['reloadMapping',['../class_exe_node_wrapper.html#a659e73a1d597a93ae7dd31cf7e98f23a',1,'ExeNodeWrapper::reloadMapping()'],['../class_import_base_dir_wrapper.html#a736fac50c585752a8c8b6cb85ef9c9d3',1,'ImportBaseDirWrapper::reloadMapping()'],['../class_sect_hdrs_wrapper.html#a7cf7f2fd77bab1e52b044c5f77e439ad',1,'SectHdrsWrapper::reloadMapping()']]], + ['reloadmapping_2',['reloadmapping',['../class_exe_node_wrapper.html#a659e73a1d597a93ae7dd31cf7e98f23a',1,'ExeNodeWrapper::reloadMapping()'],['../class_import_base_dir_wrapper.html#a736fac50c585752a8c8b6cb85ef9c9d3',1,'ImportBaseDirWrapper::reloadMapping()'],['../class_sect_hdrs_wrapper.html#a7cf7f2fd77bab1e52b044c5f77e439ad',1,'SectHdrsWrapper::reloadMapping()']]], ['reloadname_3',['reloadName',['../class_section_hdr_wrapper.html#a3a97c0c870be0be28a7425142338a55e',1,'SectionHdrWrapper']]], ['reloc_4',['reloc',['../class_reloc_dir_wrapper.html#a9c0949d9331d8bc2376736732491fbfc',1,'RelocDirWrapper']]], ['relocblockwrapper_5',['RelocBlockWrapper',['../class_reloc_block_wrapper.html#a6dfd0ada972f9de522390a454c14d121',1,'RelocBlockWrapper']]], @@ -21,12 +21,12 @@ var searchData= ['resourcestringswrapper_18',['ResourceStringsWrapper',['../class_resource_strings_wrapper.html#a25b72c8ff9142caaa3ee283358924962',1,'ResourceStringsWrapper']]], ['resourceversionwrapper_19',['ResourceVersionWrapper',['../class_resource_version_wrapper.html#a74b01a4d91d77408fdd3224ef8298b7e',1,'ResourceVersionWrapper']]], ['resstring_20',['ResString',['../class_res_string.html#afd4f14a99df2437551aee24c0e23cf98',1,'ResString']]], - ['richhdr_5fprodidtovsversion_21',['RichHdr_ProdIdToVSversion',['../_rich_hdr_wrapper_8h.html#a913fc8d543723ac58e3879467e443e3b',1,'RichHdr_ProdIdToVSversion(WORD prodId): RichHdrWrapper.cpp'],['../_rich_hdr_wrapper_8cpp.html#af2c1239be431508bb71268fd12d19b5e',1,'RichHdr_ProdIdToVSversion(WORD i): RichHdrWrapper.cpp']]], - ['richhdr_5ftranslateprodid_22',['RichHdr_translateProdId',['../_rich_hdr_wrapper_8cpp.html#a744aac9fc84622b590219bd10edc085f',1,'RichHdr_translateProdId(WORD prodId): RichHdrWrapper.cpp'],['../_rich_hdr_wrapper_8h.html#a744aac9fc84622b590219bd10edc085f',1,'RichHdr_translateProdId(WORD prodId): RichHdrWrapper.cpp']]], + ['richhdr_5fprodidtovsversion_21',['richhdr_prodidtovsversion',['../_rich_hdr_wrapper_8h.html#a913fc8d543723ac58e3879467e443e3b',1,'RichHdr_ProdIdToVSversion(WORD prodId): RichHdrWrapper.cpp'],['../_rich_hdr_wrapper_8cpp.html#af2c1239be431508bb71268fd12d19b5e',1,'RichHdr_ProdIdToVSversion(WORD i): RichHdrWrapper.cpp']]], + ['richhdr_5ftranslateprodid_22',['richhdr_translateprodid',['../_rich_hdr_wrapper_8cpp.html#a744aac9fc84622b590219bd10edc085f',1,'RichHdr_translateProdId(WORD prodId): RichHdrWrapper.cpp'],['../_rich_hdr_wrapper_8h.html#a744aac9fc84622b590219bd10edc085f',1,'RichHdr_translateProdId(WORD prodId): RichHdrWrapper.cpp']]], ['richhdrwrapper_23',['RichHdrWrapper',['../class_rich_hdr_wrapper.html#a442f58b906a6d2e82cb919a7ee3d69f3',1,'RichHdrWrapper']]], ['rol32_24',['rol32',['../_rich_hdr_wrapper_8cpp.html#ad6bf3afe22dd3e86eabaef1958a236cd',1,'RichHdrWrapper.cpp']]], ['roundup_25',['roundup',['../namespacepe__util.html#a9dc8feee375f5c7288ea1221c3965dfb',1,'pe_util']]], ['rounduptounit_26',['roundupToUnit',['../namespacebuf__util.html#aad423cee9c4deed0062c92fe29744a0f',1,'buf_util']]], - ['rvatoraw_27',['rvaToRaw',['../class_p_e_file.html#a7fa60daf15123f14d1f7b199d19d1368',1,'PEFile::rvaToRaw()'],['../class_d_o_s_exe.html#a2b381dee76f31a58fb41c9b5e5293938',1,'DOSExe::rvaToRaw()'],['../class_executable.html#a9d1979e57f2c6d4146e8ddf1892c6e99',1,'Executable::rvaToRaw(offset_t rva)=0']]], + ['rvatoraw_27',['rvatoraw',['../class_p_e_file.html#a7fa60daf15123f14d1f7b199d19d1368',1,'PEFile::rvaToRaw()'],['../class_d_o_s_exe.html#a2b381dee76f31a58fb41c9b5e5293938',1,'DOSExe::rvaToRaw()'],['../class_executable.html#a9d1979e57f2c6d4146e8ddf1892c6e99',1,'Executable::rvaToRaw(offset_t rva)=0']]], ['rvatova_28',['rvaToVa',['../class_executable.html#ae3a32e3cea7c9c5a9aa2e938fc1091b9',1,'Executable']]] ]; diff --git a/search/related_3.js b/search/related_3.js index 2f9b680c..8f11d349 100644 --- a/search/related_3.js +++ b/search/related_3.js @@ -1,7 +1,7 @@ var searchData= [ - ['importbasedirwrapper_0',['ImportBaseDirWrapper',['../class_import_base_entry_wrapper.html#ac45174df1125d5b76924419a73948a40',1,'ImportBaseEntryWrapper::ImportBaseDirWrapper'],['../class_import_base_func_wrapper.html#ac45174df1125d5b76924419a73948a40',1,'ImportBaseFuncWrapper::ImportBaseDirWrapper']]], + ['importbasedirwrapper_0',['importbasedirwrapper',['../class_import_base_entry_wrapper.html#ac45174df1125d5b76924419a73948a40',1,'ImportBaseEntryWrapper::ImportBaseDirWrapper'],['../class_import_base_func_wrapper.html#ac45174df1125d5b76924419a73948a40',1,'ImportBaseFuncWrapper::ImportBaseDirWrapper']]], ['importbaseentrywrapper_1',['ImportBaseEntryWrapper',['../class_import_base_dir_wrapper.html#a219127b2ddd6a3e1f012de67359ecab4',1,'ImportBaseDirWrapper']]], - ['importdirwrapper_2',['ImportDirWrapper',['../class_import_entry_wrapper.html#ab63472dc9a23f18db573a468fc2a3c98',1,'ImportEntryWrapper::ImportDirWrapper'],['../class_imported_func_wrapper.html#ab63472dc9a23f18db573a468fc2a3c98',1,'ImportedFuncWrapper::ImportDirWrapper']]], + ['importdirwrapper_2',['importdirwrapper',['../class_import_entry_wrapper.html#ab63472dc9a23f18db573a468fc2a3c98',1,'ImportEntryWrapper::ImportDirWrapper'],['../class_imported_func_wrapper.html#ab63472dc9a23f18db573a468fc2a3c98',1,'ImportedFuncWrapper::ImportDirWrapper']]], ['importentrywrapper_3',['ImportEntryWrapper',['../class_import_dir_wrapper.html#ae268837a6991d56e05e71e308eb06b9e',1,'ImportDirWrapper']]] ]; diff --git a/search/related_5.js b/search/related_5.js index dd814ec6..70ea107c 100644 --- a/search/related_5.js +++ b/search/related_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['pefile_0',['PEFile',['../class_data_dir_entry_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'DataDirEntryWrapper::PEFile'],['../class_p_e_core.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PECore::PEFile'],['../class_p_e_element_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PEElementWrapper::PEFile'],['../class_p_e_node_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PENodeWrapper::PEFile'],['../class_section_hdr_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'SectionHdrWrapper::PEFile']]] + ['pefile_0',['pefile',['../class_data_dir_entry_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'DataDirEntryWrapper::PEFile'],['../class_p_e_core.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PECore::PEFile'],['../class_p_e_element_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PEElementWrapper::PEFile'],['../class_p_e_node_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'PENodeWrapper::PEFile'],['../class_section_hdr_wrapper.html#a28b20b86c5782d2fe7e08249d0c503fd',1,'SectionHdrWrapper::PEFile']]] ]; diff --git a/search/related_6.js b/search/related_6.js index d3a439fe..31058549 100644 --- a/search/related_6.js +++ b/search/related_6.js @@ -1,6 +1,6 @@ var searchData= [ ['relocblockwrapper_0',['RelocBlockWrapper',['../class_reloc_dir_wrapper.html#a34f3d7dd0d1515c570621828bd1d7b7a',1,'RelocDirWrapper']]], - ['resourcecontentfactory_1',['ResourceContentFactory',['../class_resource_content_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceContentWrapper::ResourceContentFactory'],['../class_reource_manifest_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ReourceManifestWrapper::ResourceContentFactory'],['../class_reource_h_t_m_l_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ReourceHTMLWrapper::ResourceContentFactory'],['../class_resource_strings_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceStringsWrapper::ResourceContentFactory'],['../class_resource_version_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceVersionWrapper::ResourceContentFactory']]], + ['resourcecontentfactory_1',['resourcecontentfactory',['../class_resource_content_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceContentWrapper::ResourceContentFactory'],['../class_reource_manifest_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ReourceManifestWrapper::ResourceContentFactory'],['../class_reource_h_t_m_l_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ReourceHTMLWrapper::ResourceContentFactory'],['../class_resource_strings_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceStringsWrapper::ResourceContentFactory'],['../class_resource_version_wrapper.html#aa1a95116ebcd118ce48261f2dcbab118',1,'ResourceVersionWrapper::ResourceContentFactory']]], ['resourcesalbum_2',['ResourcesAlbum',['../class_resource_strings_wrapper.html#ae2e16b38aa4a3547e0192445022318e2',1,'ResourceStringsWrapper']]] ]; diff --git a/search/search.js b/search/search.js index 9b7a52a1..6fd40c67 100644 --- a/search/search.js +++ b/search/search.js @@ -195,6 +195,7 @@ function SearchBox(name, resultsPath, extension) } else if (e.keyCode==27) // Escape out of the search field { + e.stopPropagation(); this.DOMSearchField().blur(); this.DOMPopupSearchResultsWindow().style.display = 'none'; this.DOMSearchClose().style.display = 'none'; @@ -289,6 +290,7 @@ function SearchBox(name, resultsPath, extension) } else if (e.keyCode==13 || e.keyCode==27) { + e.stopPropagation(); this.OnSelectItem(this.searchIndex); this.CloseSelectionWindow(); this.DOMSearchField().focus(); @@ -670,6 +672,7 @@ function SearchResults(name) } else if (this.lastKey==27) // Escape { + e.stopPropagation(); searchBox.CloseResultsWindow(); document.getElementById("MSearchField").focus(); } @@ -713,6 +716,7 @@ function SearchResults(name) } else if (this.lastKey==27) // Escape { + e.stopPropagation(); searchBox.CloseResultsWindow(); document.getElementById("MSearchField").focus(); } @@ -806,6 +810,7 @@ function createResults(resultsPath) function init_search() { var results = document.getElementById("MSearchSelectWindow"); + results.tabIndex=0; for (var key in indexSectionLabels) { var link = document.createElement('a'); @@ -816,5 +821,20 @@ function init_search() results.appendChild(link); } searchBox.OnSelectItem(0); + + var input = document.getElementById("MSearchSelect"); + var searchSelectWindow = document.getElementById("MSearchSelectWindow"); + input.tabIndex=0; + input.addEventListener("keydown", function(event) { + if (event.keyCode==13 || event.keyCode==40) { + event.preventDefault(); + if (searchSelectWindow.style.display == 'block') { + searchBox.CloseSelectionWindow(); + } else { + searchBox.OnSearchSelectShow(); + searchBox.DOMSearchSelectWindow().focus(); + } + } + }); } /* @license-end */ diff --git a/search/variables_3.js b/search/variables_3.js index 56aa7956..f2da529b 100644 --- a/search/variables_3.js +++ b/search/variables_3.js @@ -6,5 +6,5 @@ var searchData= ['dllcharact_3',['dllCharact',['../class_opt_hdr_wrapper.html#a795d3e4e9421b9d4ab7c75340ee9f1c3',1,'OptHdrWrapper']]], ['dllname_4',['dllName',['../class_common_ordinals_map.html#a4d458c1a370ac29f77db49f39f42210c',1,'CommonOrdinalsMap']]], ['dos_5',['dos',['../class_p_e_core.html#af99e6949cf43d775874f7e24d74fb7aa',1,'PECore']]], - ['doshdrwrapper_6',['dosHdrWrapper',['../class_d_o_s_exe.html#abb5c388a6cf02053c820a646a93f5d06',1,'DOSExe::dosHdrWrapper'],['../class_p_e_file.html#ae8a71a084f7d689552259d012ea95820',1,'PEFile::dosHdrWrapper']]] + ['doshdrwrapper_6',['doshdrwrapper',['../class_d_o_s_exe.html#abb5c388a6cf02053c820a646a93f5d06',1,'DOSExe::dosHdrWrapper'],['../class_p_e_file.html#ae8a71a084f7d689552259d012ea95820',1,'PEFile::dosHdrWrapper']]] ]; diff --git a/search/variables_5.js b/search/variables_5.js index 3dcd2454..f1725282 100644 --- a/search/variables_5.js +++ b/search/variables_5.js @@ -1,6 +1,6 @@ var searchData= [ - ['fhdr_0',['fHdr',['../class_p_e_core.html#aa7909e838ed55e1e29e12e89475aaf20',1,'PECore::fHdr'],['../class_p_e_file.html#a4683d0a27301e3b5fc412750be86c015',1,'PEFile::fHdr']]], + ['fhdr_0',['fhdr',['../class_p_e_core.html#aa7909e838ed55e1e29e12e89475aaf20',1,'PECore::fHdr'],['../class_p_e_file.html#a4683d0a27301e3b5fc412750be86c015',1,'PEFile::fHdr']]], ['file_5fmaxsize_1',['FILE_MAXSIZE',['../_file_buffer_8h.html#ade633a52361f4d36fb0c82ac2acfbe67',1,'FileBuffer.h']]], ['filename_2',['fileName',['../class_abstract_file_buffer.html#ad5ce86edf932f9bb92b91a1b03b8aa9a',1,'AbstractFileBuffer']]], ['filesize_3',['fileSize',['../class_abstract_file_buffer.html#adc73322cb20b97be9ffb987c6b290e40',1,'AbstractFileBuffer']]], diff --git a/search/variables_6.js b/search/variables_6.js index 29f43e4b..ce68ac3f 100644 --- a/search/variables_6.js +++ b/search/variables_6.js @@ -2,7 +2,7 @@ var searchData= [ ['idtoleaftype_0',['idToLeafType',['../class_resources_album.html#ae8f4a5abc6c22d0ce3677860444cf38d',1,'ResourcesAlbum']]], ['impdir_1',['impDir',['../class_import_base_entry_wrapper.html#a320f9410912954ad911d42603a05ed2b',1,'ImportBaseEntryWrapper']]], - ['importscount_2',['importsCount',['../class_bound_imp_dir_wrapper.html#a5c4c7d7cf872187d05e365c6aa44b756',1,'BoundImpDirWrapper::importsCount'],['../class_import_base_dir_wrapper.html#a5c3f77f425a0eaa22f31b836bf9c868c',1,'ImportBaseDirWrapper::importsCount']]], + ['importscount_2',['importscount',['../class_bound_imp_dir_wrapper.html#a5c4c7d7cf872187d05e365c6aa44b756',1,'BoundImpDirWrapper::importsCount'],['../class_import_base_dir_wrapper.html#a5c3f77f425a0eaa22f31b836bf9c868c',1,'ImportBaseDirWrapper::importsCount']]], ['invalid_5faddr_3',['INVALID_ADDR',['../_abstract_byte_buffer_8h.html#ab99058386f4a8bc4e8cd07fad8198178',1,'AbstractByteBuffer.h']]], ['invalid_5fentrynum_4',['INVALID_ENTRYNUM',['../_exe_node_wrapper_8h.html#a149d2e3961126d408917b942f3cca465',1,'ExeNodeWrapper.h']]], ['ishex_5',['isHex',['../class_formatter.html#ab9c774af452b980b4e4775a33b950fbe',1,'Formatter']]], diff --git a/search/variables_8.js b/search/variables_8.js index 7adc5751..f0a38afb 100644 --- a/search/variables_8.js +++ b/search/variables_8.js @@ -7,7 +7,7 @@ var searchData= ['m_5finfo_4',['m_info',['../class_custom_exception.html#ad647e059969453d490d9225996fe691f',1,'CustomException']]], ['m_5foffset_5',['m_Offset',['../class_wrapped_value.html#a9eef8d6c51ceb83bbcc6e56c11bf7b55',1,'WrappedValue']]], ['m_5fowner_6',['m_Owner',['../class_wrapped_value.html#a5e8faf9a28fd4a43beb2192392b873d5',1,'WrappedValue']]], - ['m_5fpe_7',['m_PE',['../class_p_e_element_wrapper.html#a6b7a41c35e9fa8d9f10b286fd3c4cb0a',1,'PEElementWrapper::m_PE'],['../class_p_e_node_wrapper.html#ab6fa549a7490efc0a84ab0c39fe0ef95',1,'PENodeWrapper::m_PE']]], + ['m_5fpe_7',['m_pe',['../class_p_e_element_wrapper.html#a6b7a41c35e9fa8d9f10b286fd3c4cb0a',1,'PEElementWrapper::m_PE'],['../class_p_e_node_wrapper.html#ab6fa549a7490efc0a84ab0c39fe0ef95',1,'PENodeWrapper::m_PE']]], ['m_5fsize_8',['m_Size',['../class_wrapped_value.html#ac2fc04ffc939e9fba89ab9535d4dce08',1,'WrappedValue']]], ['m_5fstrinfo_9',['m_strInfo',['../class_custom_exception.html#afcb66d9e30f5187bf091caf681a3a63e',1,'CustomException']]], ['m_5ftype_10',['m_Type',['../class_wrapped_value.html#af143ebb295f2dee15fd42cbda1caf3ab',1,'WrappedValue']]],