From ffeb5f6ff681b370211267acd12f6b7cafbdaca8 Mon Sep 17 00:00:00 2001 From: hasherezade Date: Sun, 7 Jul 2024 20:50:39 +0000 Subject: [PATCH] deploy: a29b22f8bd54dbac03ccbba28d2d6023fb9dea54 --- _delay_imp_dir_wrapper_8h_source.html | 4 +- _export_dir_wrapper_8cpp_source.html | 613 +++++++++--------- _export_dir_wrapper_8h_source.html | 36 +- _import_base_dir_wrapper_8cpp_source.html | 438 +++++++------ _import_base_dir_wrapper_8h_source.html | 24 +- _import_dir_wrapper_8cpp_source.html | 608 +++++++++-------- _import_dir_wrapper_8h_source.html | 42 +- _p_e_file_8cpp_source.html | 4 +- _sect_hdrs_wrapper_8cpp_source.html | 129 ++-- _sect_hdrs_wrapper_8h_source.html | 2 +- class_export_dir_wrapper.html | 16 +- class_export_entry_wrapper.html | 20 +- class_import_base_dir_wrapper.html | 12 +- class_import_base_entry_wrapper.html | 4 +- class_import_base_func_wrapper.html | 8 +- class_import_dir_wrapper.html | 8 +- class_import_entry_wrapper.html | 18 +- class_imported_func_wrapper.html | 135 ++-- ...6d38df3d80ae19d4b93dfe2551690c9_cgraph.map | 123 ++-- ...6d38df3d80ae19d4b93dfe2551690c9_cgraph.md5 | 2 +- ...6d38df3d80ae19d4b93dfe2551690c9_cgraph.png | Bin 171161 -> 158642 bytes class_sect_hdrs_wrapper.html | 2 +- 22 files changed, 1118 insertions(+), 1130 deletions(-) diff --git a/_delay_imp_dir_wrapper_8h_source.html b/_delay_imp_dir_wrapper_8h_source.html index ea72f44b..16ad4fa3 100644 --- a/_delay_imp_dir_wrapper_8h_source.html +++ b/_delay_imp_dir_wrapper_8h_source.html @@ -284,9 +284,9 @@ $(function(){ initResizable(false); });
@ BITS_64
Definition Executable.h:32
virtual exe_bits getBitMode()
Definition Executable.h:49
-
virtual bool wrap()
+
virtual bool wrap()
-
bool wrap()
+
bool wrap()
Definition PEFile.h:45
diff --git a/_export_dir_wrapper_8cpp_source.html b/_export_dir_wrapper_8cpp_source.html index 34c7391e..4a88e5cc 100644 --- a/_export_dir_wrapper_8cpp_source.html +++ b/_export_dir_wrapper_8cpp_source.html @@ -155,314 +155,313 @@ $(function(){ initResizable(false); });
56 nameOrdRVA += sizeof(WORD);
57 //nameRVA += sizeof(DWORD);
58 }
-
59 //printf("parsed num: %d\n", this->ordToNameRVA.size());
-
60 return i;
-
61}
+
59 return i;
+
60}
-
62
-
- -
64{
-
65 clear();
-
66 size_t mapNum = mapNames();
-
67
-
68 IMAGE_EXPORT_DIRECTORY* exp = exportDir();
-
69 if (exp == NULL) return 0;
-
70
-
71 size_t maxFunc = exp->NumberOfFunctions;
-
72
-
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;
-
78 break;
-
79 }
-
80 this->entries.push_back(entry);
-
81 }
-
82 return true;
-
83}
+
61
+
+ +
63{
+
64 clear();
+
65 mapNames();
+
66
+
67 IMAGE_EXPORT_DIRECTORY* exp = exportDir();
+
68 if (exp == NULL) return 0;
+
69
+
70 size_t maxFunc = exp->NumberOfFunctions;
+
71
+
72 for (size_t i = 0; i < maxFunc; i++) {
+
73 //TODO: build entries...
+
74 ExportEntryWrapper *entry = new ExportEntryWrapper(m_Exe, this, i);
+
75 if (entry->getPtr() == NULL) {
+
76 delete entry;
+
77 break;
+
78 }
+
79 this->entries.push_back(entry);
+
80 }
+
81 return true;
+
82}
-
84
-
- -
86{
-
87 if (getPtr() == NULL) return 0;
-
88 return sizeof(IMAGE_EXPORT_DIRECTORY);
-
89}
+
83
+
+ +
85{
+
86 if (getPtr() == NULL) return 0;
+
87 return sizeof(IMAGE_EXPORT_DIRECTORY);
+
88}
-
90
-
- -
92{
-
93 QString infoName = "Export";
-
94 QString libName = this->getLibraryName();
-
95 if (libName.length() >= 0) {
-
96 infoName += ": "+ libName;
-
97 }
-
98 return infoName;
-
99}
+
89
+
+ +
91{
+
92 QString infoName = "Export";
+
93 QString libName = this->getLibraryName();
+
94 if (libName.length() >= 0) {
+
95 infoName += ": "+ libName;
+
96 }
+
97 return infoName;
+
98}
-
100
-
-
101void* ExportDirWrapper::getFieldPtr(size_t fId, size_t subField)
-
102{
-
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;
-
118 }
-
119 return this->getPtr();
-
120}
+
99
+
+
100void* ExportDirWrapper::getFieldPtr(size_t fId, size_t subField)
+
101{
+
102 IMAGE_EXPORT_DIRECTORY* d = exportDir();
+
103 if (d == NULL) return NULL;
+
104
+
105 switch (fId) {
+
106 case CHARACTERISTIC: return &d->Characteristics;
+
107 case TIMESTAMP: return &d->TimeDateStamp;
+
108 case MAJOR_VER: return &d->MajorVersion;
+
109 case MINOR_VER: return &d->MinorVersion;
+
110 case NAME_RVA: return &d->Name;
+
111 case BASE: return &d->Base;
+
112 case FUNCTIONS_NUM: return &d->NumberOfFunctions;
+
113 case NAMES_NUM: return &d->NumberOfNames;
+
114 case FUNCTIONS_RVA: return &d->AddressOfFunctions;
+
115 case FUNC_NAMES_RVA: return &d->AddressOfNames;
+
116 case NAMES_ORDINALS_RVA: return &d->AddressOfNameOrdinals;
+
117 }
+
118 return this->getPtr();
+
119}
-
121
-
-
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()) {
-
129 return "ReproChecksum";
-
130 }
-
131 return "TimeDateStamp";
-
132 }
-
133 case MAJOR_VER: return "MajorVersion";
-
134 case MINOR_VER: return "MinorVersion";
-
135 case NAME_RVA: return "Name";
-
136 case BASE: return "Base";
-
137 case FUNCTIONS_NUM: return "NumberOfFunctions";
-
138 case NAMES_NUM: return "NumberOfNames";
-
139 case FUNCTIONS_RVA: return "AddressOfFunctions";
-
140 case FUNC_NAMES_RVA: return "AddressOfNames";
-
141 case NAMES_ORDINALS_RVA: return "AddressOfNameOrdinals";
-
142 }
-
143 return getName();
-
144}
+
120
+
+
121QString ExportDirWrapper::getFieldName(size_t fieldId)
+
122{
+
123 switch (fieldId) {
+
124 case CHARACTERISTIC: return "Characteristics";
+
125 case TIMESTAMP: {
+
126 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
+
127 if (myPe && myPe->isReproBuild()) {
+
128 return "ReproChecksum";
+
129 }
+
130 return "TimeDateStamp";
+
131 }
+
132 case MAJOR_VER: return "MajorVersion";
+
133 case MINOR_VER: return "MinorVersion";
+
134 case NAME_RVA: return "Name";
+
135 case BASE: return "Base";
+
136 case FUNCTIONS_NUM: return "NumberOfFunctions";
+
137 case NAMES_NUM: return "NumberOfNames";
+
138 case FUNCTIONS_RVA: return "AddressOfFunctions";
+
139 case FUNC_NAMES_RVA: return "AddressOfNames";
+
140 case NAMES_ORDINALS_RVA: return "AddressOfNameOrdinals";
+
141 }
+
142 return getName();
+
143}
-
145
-
- -
147{
-
148 switch (fieldId) {
-
149 case NAME_RVA:
-
150 case FUNCTIONS_RVA:
-
151 case FUNC_NAMES_RVA:
- -
153 return Executable::RVA;
-
154 }
- -
156}
+
144
+
+ +
146{
+
147 switch (fieldId) {
+
148 case NAME_RVA:
+
149 case FUNCTIONS_RVA:
+
150 case FUNC_NAMES_RVA:
+ +
152 return Executable::RVA;
+
153 }
+ +
155}
-
157
-
- -
159{
-
160 bool isOk = false;
-
161 offset_t offset = this->getNumValue(NAME_RVA, &isOk);
-
162 if (!isOk) return NULL;
-
163
- -
165 if (aT == Executable::NOT_ADDR) return NULL;
-
166
-
167 char *ptr = (char*) m_Exe->getContentAt(offset, aT, 1);
-
168 if (!ptr) return NULL;
-
169
-
170 return ptr;
-
171}
+
156
+
+ +
158{
+
159 bool isOk = false;
+
160 offset_t offset = this->getNumValue(NAME_RVA, &isOk);
+
161 if (!isOk) return NULL;
+
162
+ +
164 if (aT == Executable::NOT_ADDR) return NULL;
+
165
+
166 char *ptr = (char*) m_Exe->getContentAt(offset, aT, 1);
+
167 if (!ptr) return NULL;
+
168
+
169 return ptr;
+
170}
-
172
-
- -
174{
-
175 char *name = this->_getLibraryName();
-
176 if (!name) return name;
-
177
-
178 if (pe_util::isStrLonger(name, 100)) {
-
179 return INVALID_NAME;
-
180 }
-
181 return QString(name);
-
182}
+
171
+
+ +
173{
+
174 char *name = this->_getLibraryName();
+
175 if (!name) return name;
+
176
+
177 if (pe_util::isStrLonger(name, 100)) {
+
178 return INVALID_NAME;
+
179 }
+
180 return QString(name);
+
181}
-
183
-
184//----------------------------------------------------------------------------------------------------
-
-
185void* ExportEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
-
186{
-
187 switch (fieldId) {
-
188 case FUNCTION_RVA: return getFuncRvaPtr();
-
189 case NAME_RVA: return getFuncNameRvaPtr();
-
190 }
-
191 return getPtr();
-
192}
+
182
+
183//----------------------------------------------------------------------------------------------------
+
+
184void* ExportEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
185{
+
186 switch (fieldId) {
+
187 case FUNCTION_RVA: return getFuncRvaPtr();
+
188 case NAME_RVA: return getFuncNameRvaPtr();
+
189 }
+
190 return getPtr();
+
191}
-
193
-
194DWORD* ExportEntryWrapper::getFuncRvaPtr()
-
195{
-
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));
-
202
-
203 DWORD *ptr = (DWORD*) m_Exe->getContentAt(funcRva, Executable::RVA, sizeof(DWORD));
-
204 return ptr;
-
205}
-
206
-
- -
208{
-
209 if (this->parentDir == NULL || parentDir->exportDir() == NULL) {
-
210 return 0;
-
211 }
-
212 return sizeof(DWORD);
-
213}
+
192
+
193DWORD* ExportEntryWrapper::getFuncRvaPtr()
+
194{
+
195 if (this->parentDir == NULL) return NULL;
+
196 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
197 if (exp == NULL) return NULL;
+
198
+
199 uint64_t funcRva = exp->AddressOfFunctions;
+
200 funcRva += (this->entryNum * sizeof(DWORD));
+
201
+
202 DWORD *ptr = (DWORD*) m_Exe->getContentAt(funcRva, Executable::RVA, sizeof(DWORD));
+
203 return ptr;
+
204}
+
205
+
+ +
207{
+
208 if (this->parentDir == NULL || parentDir->exportDir() == NULL) {
+
209 return 0;
+
210 }
+
211 return sizeof(DWORD);
+
212}
-
214
-
- -
216{
-
217 if (getFuncName() == NULL) return true;
-
218 return false;
-
219}
+
213
+
+ +
215{
+
216 if (getFuncName() == NULL) return true;
+
217 return false;
+
218}
-
220
-
- -
222{
-
223 if (isByOrdinal()) {
-
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);
-
232}
+
219
+
+ +
221{
+
222 if (isByOrdinal()) {
+
223 uint32_t val = getOrdinal();
+
224 QString ordStr;
+
225 QTextStream(&ordStr) << "<ord: " << QString::number(val, 16) << ">";
+
226 return ordStr;
+
227 }
+
228 char* name = getFuncName();
+
229 if (name == NULL) return "";
+
230 return QString(name);
+
231}
-
233
-
-
234QString ExportEntryWrapper::getFieldName(size_t fieldId)
-
235{
-
236 switch (fieldId) {
-
237 case FUNCTION_RVA: return "FuncRva";
-
238 case NAME_RVA: return "FuncNameRva";
-
239 }
-
240 return "";
-
241}
+
232
+
+
233QString ExportEntryWrapper::getFieldName(size_t fieldId)
+
234{
+
235 switch (fieldId) {
+
236 case FUNCTION_RVA: return "FuncRva";
+
237 case NAME_RVA: return "FuncNameRva";
+
238 }
+
239 return "";
+
240}
-
242
-
- -
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;
-
249}
+
241
+
+ +
243{
+
244 DWORD *ptr = this->getFuncRvaPtr();
+
245 if (ptr == NULL) return INVALID_ADDR;
+
246 offset_t addr = static_cast<offset_t>(*ptr);
+
247 return addr;
+
248}
-
250
-
- -
252{
-
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;
-
259}
+
249
+
+ +
251{
+
252 if (this->parentDir == NULL) return 0;
+
253 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
254 if (exp == NULL) return 0;
+
255
+
256 uint32_t ordinal = static_cast<uint32_t>(this->entryNum) + exp->Base;
+
257 return ordinal;
+
258}
-
260
-
261uint32_t ExportEntryWrapper::getFuncNameId()
-
262{
-
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()) {
-
268 return INVALID_ID;
-
269 }
-
270 return found->second;
-
271}
-
272
-
273void* ExportEntryWrapper::getFuncNameRvaPtr()
-
274{
-
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;
-
280
-
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;
-
286}
-
287
-
- -
289{
-
290 DWORD* valuePtr = (DWORD*) getFuncNameRvaPtr();
-
291 if (valuePtr == NULL) return INVALID_ADDR;
-
292 DWORD value = (*valuePtr);
-
293 return static_cast<offset_t>(value);
-
294}
+
259
+
260uint32_t ExportEntryWrapper::getFuncNameId()
+
261{
+
262 if (this->parentDir == NULL) return INVALID_ID;
+
263
+
264 WORD ord = static_cast<WORD>(this->entryNum);
+
265 std::map<WORD, DWORD>::iterator found = parentDir->ordToNameId.find(ord);
+
266 if (found == parentDir->ordToNameId.end()) {
+
267 return INVALID_ID;
+
268 }
+
269 return found->second;
+
270}
+
271
+
272void* ExportEntryWrapper::getFuncNameRvaPtr()
+
273{
+
274 uint32_t nameId = getFuncNameId();
+
275 if (nameId == INVALID_ID) return NULL;
+
276
+
277 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
278 if (exp == NULL) return NULL;
+
279
+
280 if (nameId >= exp->NumberOfNames) return NULL;
+
281
+
282 uint64_t nameAddrRVA = exp->AddressOfNames + (nameId * sizeof(DWORD));
+
283 DWORD* valuePtr = (DWORD*) this->m_Exe->getContentAt(nameAddrRVA, Executable::RVA, sizeof(DWORD));
+
284 return valuePtr;
+
285}
+
286
+
+ +
288{
+
289 DWORD* valuePtr = (DWORD*) getFuncNameRvaPtr();
+
290 if (valuePtr == NULL) return INVALID_ADDR;
+
291 DWORD value = (*valuePtr);
+
292 return static_cast<offset_t>(value);
+
293}
-
295
-
- -
297{
-
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;
-
303 //TODO.... verify
-
304 return name;
-
305}
+
294
+
+ +
296{
+
297 uint64_t funcRva = getFuncNameRva();
+
298 if (funcRva == INVALID_ADDR) return NULL;
+
299
+
300 char* name = (char*) this->m_Exe->getContentAt(funcRva, Executable::RVA, 1);
+
301 if (name == NULL) return NULL;
+
302 //TODO.... verify
+
303 return name;
+
304}
-
306
-
- -
308{
-
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;
-
315
-
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;
-
321
-
322 size_t maxLen = m_Exe->getRawSize() - offset;
-
323 size_t forwarderNameLen = pe_util::forwarderNameLen(strPtr, maxLen);
-
324 if (forwarderNameLen > 0) {
-
325 return strPtr;
-
326 }
-
327 return NULL;
-
328}
+
305
+
+ +
307{
+
308 if (this->parentDir == NULL) return NULL;
+
309 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
310 if (exp == NULL) return NULL;
+
311
+
312 DWORD* funcRvaPtr = (DWORD*) this->getFuncRvaPtr();
+
313 if (funcRvaPtr == NULL) return NULL;
+
314
+
315 char* strPtr = (char*) m_Exe->getContentAt( (*funcRvaPtr), Executable::RVA, 1);
+
316 if (strPtr == NULL) return NULL;
+
317
+
318 uint64_t offset = m_Exe->getOffset((BYTE*) strPtr);
+
319 if (offset == INVALID_ADDR) return NULL;
+
320
+
321 size_t maxLen = m_Exe->getRawSize() - offset;
+
322 size_t forwarderNameLen = pe_util::forwarderNameLen(strPtr, maxLen);
+
323 if (forwarderNameLen > 0) {
+
324 return strPtr;
+
325 }
+
326 return NULL;
+
327}
-
329
+
328
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -482,7 +481,7 @@ $(function(){ initResizable(false); });
BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
Definition Executable.h:57
virtual offset_t getRawSize() const
Definition Executable.h:54
-
virtual QString getLibraryName()
+
virtual QString getLibraryName()
@@ -497,30 +496,30 @@ $(function(){ initResizable(false); });
virtual void * getPtr()
std::map< WORD, DWORD > ordToNameId
-
virtual void * getFieldPtr(size_t fieldId, size_t subField)
+
virtual void * getFieldPtr(size_t fieldId, size_t subField)
IMAGE_EXPORT_DIRECTORY * exportDir()
- -
virtual QString getName()
-
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
+ +
virtual QString getName()
+
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
-
virtual QString getFieldName(size_t fieldId)
-
virtual bufsize_t getSize()
+
virtual QString getFieldName(size_t fieldId)
+
virtual bufsize_t getSize()
friend class ExportEntryWrapper
- +
-
virtual QString getFieldName(size_t fieldId)
-
char * getFuncName()
-
uint32_t getOrdinal()
+
virtual QString getFieldName(size_t fieldId)
+
char * getFuncName()
+
uint32_t getOrdinal()
virtual void * getPtr()
-
bool isByOrdinal()
-
virtual bufsize_t getSize()
-
offset_t getFuncNameRva()
-
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
-
offset_t getFuncRva()
+
bool isByOrdinal()
+
virtual bufsize_t getSize()
+
offset_t getFuncNameRva()
+
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
+
offset_t getFuncRva()
@ FUNCTION_RVA
@ NAME_RVA
-
char * getForwarder()
-
virtual QString getName()
+
char * getForwarder()
+
virtual QString getName()
bool isReproBuild()
Definition PEFile.h:333
size_t forwarderNameLen(const char *ptr, size_t max_len)
Definition Util.cpp:113
diff --git a/_export_dir_wrapper_8h_source.html b/_export_dir_wrapper_8h_source.html index f2076bb3..5183c603 100644 --- a/_export_dir_wrapper_8h_source.html +++ b/_export_dir_wrapper_8h_source.html @@ -215,7 +215,7 @@ $(function(){ initResizable(false); }); -
virtual QString getLibraryName()
+
virtual QString getLibraryName()
virtual size_t getSubFieldsCount()
@@ -236,38 +236,38 @@ $(function(){ initResizable(false); });
ExportDirWrapper(PEFile *pe)
std::map< WORD, DWORD > ordToNameId
-
virtual void * getFieldPtr(size_t fieldId, size_t subField)
+
virtual void * getFieldPtr(size_t fieldId, size_t subField)
IMAGE_EXPORT_DIRECTORY * exportDir()
- -
virtual QString getName()
-
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
+ +
virtual QString getName()
+
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
-
virtual QString getFieldName(size_t fieldId)
-
virtual bufsize_t getSize()
- +
virtual QString getFieldName(size_t fieldId)
+
virtual bufsize_t getSize()
+
-
virtual QString getFieldName(size_t fieldId)
+
virtual QString getFieldName(size_t fieldId)
virtual size_t getSubFieldsCount()
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
QString getForwarderStr()
ExportEntryWrapper(Executable *pe, ExportDirWrapper *parentDir, size_t entryNumber)
-
char * getFuncName()
-
uint32_t getOrdinal()
+
char * getFuncName()
+
uint32_t getOrdinal()
virtual void * getPtr()
-
bool isByOrdinal()
-
virtual bufsize_t getSize()
+
bool isByOrdinal()
+
virtual bufsize_t getSize()
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField)
-
offset_t getFuncNameRva()
+
offset_t getFuncNameRva()
QString getuncNameStr()
-
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
-
offset_t getFuncRva()
+
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
+
offset_t getFuncRva()
FieldID
@ FUNCTION_RVA
@ NONE
@ FIELD_COUNTER
@ NAME_RVA
-
char * getForwarder()
-
virtual QString getName()
+
char * getForwarder()
+
virtual QString getName()
virtual size_t getFieldsCount()
diff --git a/_import_base_dir_wrapper_8cpp_source.html b/_import_base_dir_wrapper_8cpp_source.html index ec80b984..26973f42 100644 --- a/_import_base_dir_wrapper_8cpp_source.html +++ b/_import_base_dir_wrapper_8cpp_source.html @@ -166,225 +166,224 @@ $(function(){ initResizable(false); });
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;
-
68
-
69 size_t funcCount = lib->getEntriesCount();
-
70 for (size_t fI = 0; fI < funcCount; fI++) {
-
71 addMapping(lib->getEntryAt(fI));
-
72 }
-
73 }
-
74}
+
66 if (!lib) continue;
+
67
+
68 size_t funcCount = lib->getEntriesCount();
+
69 for (size_t fI = 0; fI < funcCount; fI++) {
+
70 addMapping(lib->getEntryAt(fI));
+
71 }
+
72 }
+
73}
-
75
-
- -
77{
-
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;
-
84}
+
74
+
+ +
76{
+
77 std::map<offset_t, size_t>::iterator libItr = thunkToLibMap.find(thunk);
+
78 if (libItr == thunkToLibMap.end()) return NULL;
+
79
+
80 size_t libId = libItr->second;
+
81 ImportBaseEntryWrapper* lib = dynamic_cast<ImportBaseEntryWrapper*>(this->getEntryAt(libId));
+
82 return lib;
+
83}
-
85
-
- -
87{
- -
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;
-
93
-
94 ImportBaseFuncWrapper* func = dynamic_cast<ImportBaseFuncWrapper*>(lib->getEntryAt(funcItr->second));
-
95 return func;
-
96}
+
84
+
+ +
86{
+ +
88 if (!lib) return NULL;
+
89
+
90 std::map<offset_t, size_t>::iterator funcItr = lib->thunkToFuncMap.find(thunk);
+
91 if (funcItr == lib->thunkToFuncMap.end()) return NULL;
+
92
+
93 ImportBaseFuncWrapper* func = dynamic_cast<ImportBaseFuncWrapper*>(lib->getEntryAt(funcItr->second));
+
94 return func;
+
95}
-
97
-
-
98QString ImportBaseDirWrapper::thunkToFuncName(offset_t thunk, bool shortName)
-
99{
- -
101 if (func == NULL) return "";
-
102 if (shortName) {
-
103 return func->getShortName();
-
104 }
-
105 return func->getName();
-
106}
+
96
+
+
97QString ImportBaseDirWrapper::thunkToFuncName(offset_t thunk, bool shortName)
+
98{
+ +
100 if (func == NULL) return "";
+
101 if (shortName) {
+
102 return func->getShortName();
+
103 }
+
104 return func->getName();
+
105}
-
107
-
- -
109{
- -
111 if (!lib) return "";
-
112 return lib->getName();
-
113}
+
106
+
+ +
108{
+ +
110 if (!lib) return "";
+
111 return lib->getName();
+
112}
-
114
-
- -
116{
-
117 clearMapping();
-
118 clear();
-
119
-
120 size_t oldCount = this->importsCount;
-
121 this->importsCount = 0;
-
122 this->invalidEntries = 0;
-
123
-
124 if (!getDataDirectory()) {
-
125 return (oldCount != this->importsCount); //has count changed
-
126 }
-
127
-
128 const size_t LIMIT = (-1);
-
129 const size_t INVALID_LIMIT = 100;
-
130 size_t cntr = 0;
-
131 size_t invalidSeries = 0;
-
132 for (cntr = 0; cntr < LIMIT; cntr++) {
-
133 if (loadNextEntry(cntr) == false) break;
-
134 ExeNodeWrapper* entry = this->entries.at(cntr);
-
135 if (!entry) break;
-
136 if (entry->isValid()) {
-
137 invalidSeries = 0;
-
138 }
-
139 else {
-
140 invalidSeries++;
-
141 this->invalidEntries++;
-
142 if (invalidSeries >= INVALID_LIMIT) break;
-
143 }
-
144 }
-
145
-
146 this->importsCount = cntr;
-
147 return (oldCount != this->importsCount); //has count changed
-
148}
+
113
+
+ +
115{
+
116 clearMapping();
+
117 clear();
+
118
+
119 size_t oldCount = this->importsCount;
+
120 this->importsCount = 0;
+
121 this->invalidEntries = 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;
+
137 }
+
138 else {
+
139 invalidSeries++;
+
140 this->invalidEntries++;
+
141 if (invalidSeries >= INVALID_LIMIT) break;
+
142 }
+
143 }
+
144
+
145 this->importsCount = cntr;
+
146 return (oldCount != this->importsCount); //has count changed
+
147}
-
149
-
- -
151{
-
152 if (this->invalidEntries > 0) return false;
-
153
-
154 const QList<offset_t> thunks = getThunksList();
-
155 if (!thunks.size()) return false;
-
156 return true;
-
157}
+
148
+
+ +
150{
+
151 if (this->invalidEntries > 0) return false;
+
152
+
153 const QList<offset_t> thunks = getThunksList();
+
154 if (!thunks.size()) return false;
+
155 return true;
+
156}
-
158
-
159//--------------------------------------------------------------------------------------------------------------
-
160
-
- -
162{
-
163 if (this->invalidEntries > 0) return false;
-
164 char *libName = this->getLibraryName();
-
165 if (!imports_util::isNameValid(m_Exe, libName)) return false;
-
166 return true;
-
167}
+
157
+
158//--------------------------------------------------------------------------------------------------------------
+
159
+
+ +
161{
+
162 if (this->invalidEntries > 0) return false;
+
163 char *libName = this->getLibraryName();
+
164 if (!imports_util::isNameValid(m_Exe, libName)) return false;
+
165 return true;
+
166}
-
168
-
- -
170{
-
171 clear();
-
172 thunkToFuncMap.clear();
-
173
-
174 this->invalidEntries = 0;
-
175
-
176 const size_t LIMIT = (-1);
-
177 const size_t INVALID_LIMIT = 100;
-
178 if (!isValid()) {
-
179 return false;
-
180 }
-
181
-
182 if (this->getPtr() == NULL) {
-
183 return false;
-
184 }
-
185
-
186 size_t cntr = 0;
-
187 size_t invalidSeries = 0;
-
188 for (cntr = 0; cntr < LIMIT; cntr++) {
-
189 if (loadNextEntry(cntr) == false) break;
-
190 ExeNodeWrapper* entry = this->entries.at(cntr);
-
191 if (!entry) break;
-
192 if (entry->isValid()) {
-
193 invalidSeries = 0;
-
194 }
-
195 else {
-
196 invalidSeries++;
-
197 this->invalidEntries++;
-
198 if (invalidSeries >= INVALID_LIMIT) break;
-
199 }
-
200 }
-
201 //printf("Entries: %d\n", entries.size());
-
202 return true;
-
203}
+
167
+
+ +
169{
+
170 clear();
+
171 thunkToFuncMap.clear();
+
172
+
173 this->invalidEntries = 0;
+
174
+
175 const size_t LIMIT = (-1);
+
176 const size_t INVALID_LIMIT = 100;
+
177 if (!isValid()) {
+
178 return false;
+
179 }
+
180
+
181 if (this->getPtr() == NULL) {
+
182 return false;
+
183 }
+
184
+
185 size_t cntr = 0;
+
186 size_t invalidSeries = 0;
+
187 for (cntr = 0; cntr < LIMIT; cntr++) {
+
188 if (loadNextEntry(cntr) == false) break;
+
189 ExeNodeWrapper* entry = this->entries.at(cntr);
+
190 if (!entry) break;
+
191 if (entry->isValid()) {
+
192 invalidSeries = 0;
+
193 }
+
194 else {
+
195 invalidSeries++;
+
196 this->invalidEntries++;
+
197 if (invalidSeries >= INVALID_LIMIT) break;
+
198 }
+
199 }
+
200 //printf("Entries: %d\n", entries.size());
+
201 return true;
+
202}
-
204
-
205//--------------------------------------------------------------------------------------------------------------
-
- -
207{
-
208 QString functionName;
-
209 if (isByOrdinal()) {
-
210 uint64_t val = getOrdinal();
-
211 QString out;
-
212#if QT_VERSION >= 0x050000
-
213 out = QString::asprintf("<ord: %llX>", static_cast<unsigned long long>(val));
-
214#else
-
215 out.sprintf("<ord: %llX>", static_cast<unsigned long long>(val));
-
216#endif
-
217 functionName = out;
-
218 } else {
-
219 char *fName = this->getFunctionName();
-
220 if (!fName) return "";
-
221 functionName = fName;
-
222 }
-
223 return functionName;
-
224}
+
203
+
204//--------------------------------------------------------------------------------------------------------------
+
+ +
206{
+
207 QString functionName;
+
208 if (isByOrdinal()) {
+
209 uint64_t val = getOrdinal();
+
210 QString out;
+
211#if QT_VERSION >= 0x050000
+
212 out = QString::asprintf("<ord: %llX>", static_cast<unsigned long long>(val));
+
213#else
+
214 out.sprintf("<ord: %llX>", static_cast<unsigned long long>(val));
+
215#endif
+
216 functionName = out;
+
217 } else {
+
218 char *fName = this->getFunctionName();
+
219 if (!fName) return "";
+
220 functionName = fName;
+
221 }
+
222 return functionName;
+
223}
-
225
-
- -
227{
- -
229 if (!p) return "";
-
230
-
231 char *libName = p->getLibraryName();
-
232 if (!libName) return "";
-
233
-
234 return QString(libName);
-
235}
+
224
+
+ +
226{
+ +
228 if (!p) return "";
+
229
+
230 char *libName = p->getLibraryName();
+
231 if (!libName) return "";
+
232
+
233 return QString(libName);
+
234}
-
236
-
- -
238{
-
239 QString libName = getLibName();
-
240 QString functionName = getShortName();
-
241
-
242 if (!libName.length()) return functionName;
-
243
-
244 return "[" + QString(libName) + "]." + functionName;
-
245}
+
235
+
+ +
237{
+
238 QString libName = getLibName();
+
239 QString functionName = getShortName();
+
240
+
241 if (!libName.length()) return functionName;
+
242
+
243 return "[" + QString(libName) + "]." + functionName;
+
244}
-
246
-
- -
248{
- -
250 if (!p) return false;
-
251
-
252 char *libName = p->getLibraryName();
-
253 if (!imports_util::isNameValid(m_Exe, libName)) return false;
-
254
-
255 if (!isByOrdinal()) {
-
256 char *fName = this->getFunctionName();
-
257 if (!imports_util::isNameValid(m_Exe, libName)) return false;
-
258 }
-
259 return true;
-
260}
+
245
+
+ +
247{
+ +
249 if (!p) return false;
+
250
+
251 char *libName = p->getLibraryName();
+
252 if (!imports_util::isNameValid(m_Exe, libName)) return false;
+
253
+
254 if (!isByOrdinal()) {
+
255 char *fName = this->getFunctionName();
+
256 if (!imports_util::isNameValid(m_Exe, fName)) return false;
+
257 }
+
258 return true;
+
259}
uint32_t bufsize_t
const offset_t INVALID_ADDR
@@ -402,42 +401,41 @@ $(function(){ initResizable(false); });
virtual bool loadNextEntry(size_t entryNum)
virtual bool isValid()
virtual size_t getEntriesCount()
-
virtual void clear()
static bufsize_t thunkSize(Executable::exe_bits bits)
-
ImportBaseEntryWrapper * thunkToLib(offset_t thunk)
+
ImportBaseEntryWrapper * thunkToLib(offset_t thunk)
QList< offset_t > thunksList
std::map< offset_t, size_t > thunkToLibMap
- +
QList< offset_t > getThunksList()
- + -
QString thunkToLibName(offset_t thunk)
-
ImportBaseFuncWrapper * thunkToFunction(offset_t thunk)
+
QString thunkToLibName(offset_t thunk)
+
ImportBaseFuncWrapper * thunkToFunction(offset_t thunk)
void addMapping(ExeNodeWrapper *func)
-
QString thunkToFuncName(offset_t thunk, bool shortName=true)
+
QString thunkToFuncName(offset_t thunk, bool shortName=true)
size_t invalidEntries
static bufsize_t NameLenLimit
-
bool wrap()
-
virtual bool isValid()
+
bool wrap()
+
virtual bool isValid()
virtual char * getLibraryName()=0
std::map< offset_t, size_t > thunkToFuncMap
- - + +
virtual uint64_t getOrdinal()=0
virtual char * getFunctionName()=0
virtual offset_t callVia()=0
- - + +
virtual bool isByOrdinal()=0
virtual PENodeWrapper * getParentNode()
diff --git a/_import_base_dir_wrapper_8h_source.html b/_import_base_dir_wrapper_8h_source.html index 73aaba44..1335d2b6 100644 --- a/_import_base_dir_wrapper_8h_source.html +++ b/_import_base_dir_wrapper_8h_source.html @@ -246,7 +246,7 @@ $(function(){ initResizable(false); });
static bufsize_t thunkSize(Executable::exe_bits bits)
-
ImportBaseEntryWrapper * thunkToLib(offset_t thunk)
+
ImportBaseEntryWrapper * thunkToLib(offset_t thunk)
QList< offset_t > thunksList
virtual QString getFieldName(size_t fieldId, size_t subField)
bool hasThunk(offset_t thunk)
@@ -254,16 +254,16 @@ $(function(){ initResizable(false); });
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
- +
QList< offset_t > getThunksList()
- + -
QString thunkToLibName(offset_t thunk)
-
ImportBaseFuncWrapper * thunkToFunction(offset_t thunk)
+
QString thunkToLibName(offset_t thunk)
+
ImportBaseFuncWrapper * thunkToFunction(offset_t thunk)
virtual QString getFieldName(size_t fieldId)
void addMapping(ExeNodeWrapper *func)
-
QString thunkToFuncName(offset_t thunk, bool shortName=true)
+
QString thunkToFuncName(offset_t thunk, bool shortName=true)
ImportBaseDirWrapper(PEFile *pe, pe::dir_entry v_entryType)
virtual size_t getFieldsCount()
virtual void * getFieldPtr(size_t fieldId, size_t subField)
@@ -272,22 +272,22 @@ $(function(){ initResizable(false); });
ImportBaseDirWrapper * impDir
virtual size_t getSubFieldsCount()
static bufsize_t NameLenLimit
-
bool wrap()
+
bool wrap()
void addMapping(ExeNodeWrapper *func)
-
virtual bool isValid()
+
virtual bool isValid()
ImportBaseEntryWrapper(PEFile *pe, ImportBaseDirWrapper *importsDir, size_t entryNumber)
virtual char * getLibraryName()=0
std::map< offset_t, size_t > thunkToFuncMap
- - + +
virtual uint64_t getOrdinal()=0
virtual char * getFunctionName()=0
virtual offset_t callVia()=0
- - + +
virtual bool isByOrdinal()=0
ImportBaseFuncWrapper(PEFile *pe, ImportBaseEntryWrapper *parentLib, size_t entryNumber)
diff --git a/_import_dir_wrapper_8cpp_source.html b/_import_dir_wrapper_8cpp_source.html index fc62046b..b4a4d870 100644 --- a/_import_dir_wrapper_8cpp_source.html +++ b/_import_dir_wrapper_8cpp_source.html @@ -192,322 +192,316 @@ $(function(){ initResizable(false); });
89{
-
90 bool isOk = false;
-
91
- - -
94 if (!p) return false;
-
95
-
96 if (isBit64()) {
-
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;
-
103 }
-
104 return false;
-
105}
+ + +
92 if (!p) return false;
+
93
+
94 if (isBit64()) {
+
95 uint64_t* ptr = (uint64_t*) p;
+
96 if ((*ptr) & ORDINAL_FLAG64) return true;
+
97
+
98 } else {
+
99 uint32_t* ptr = (uint32_t*) p;
+
100 if ((*ptr) & ORDINAL_FLAG32) return true;
+
101 }
+
102 return false;
+
103}
-
106
-
107
-
- -
109{
-
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;
-
115 return name;
-
116}
+
104
+
105
+
+ +
107{
+
108 if (isByOrdinal()) return NULL;
+
109
+
110 IMAGE_IMPORT_BY_NAME* dataPtr = this->getImportByNamePtr();
+
111 if (!dataPtr) return NULL;
+
112 char *name = (char*) dataPtr->Name;
+
113 return name;
+
114}
-
117
-
- -
119{
-
120 return getAddrSize();
-
121}
+
115
+
+ +
117{
+
118 return getAddrSize();
+
119}
-
122
-
-
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;
-
128
-
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) {
- - - -
136 case HINT :
-
137 {
-
138 if (isByOrdinal()) return NULL;
-
139 IMAGE_IMPORT_BY_NAME* dataPtr = this->getImportByNamePtr();
-
140 return (void*) &dataPtr->Hint;
-
141 }
-
142 };
-
143 return entryPtr;
-
144}
+
120
+
+
121void* ImportedFuncWrapper::getFieldPtr(size_t fId, size_t subField)
+
122{
+
123 void *entryPtr = this->getPtr();
+
124 if (entryPtr == NULL) return NULL;
+
125
+
126 switch (fId) {
+ + + +
130 case HINT :
+
131 {
+
132 if (isByOrdinal()) return NULL;
+
133 IMAGE_IMPORT_BY_NAME* dataPtr = this->getImportByNamePtr();
+
134 return (void*) &dataPtr->Hint;
+
135 }
+
136 };
+
137 return entryPtr;
+
138}
-
145
-
-
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;
-
151}
+
139
+
+
140bufsize_t ImportedFuncWrapper::getFieldSize(size_t fieldId, size_t subField)
+
141{
+
142 if (fieldId == HINT) return sizeof (WORD);
+
143 bufsize_t entrySize = (isBit64()) ? sizeof(uint64_t) : sizeof(uint32_t);
+
144 return entrySize;
+
145}
-
152
-
- -
154{
-
155 switch (fId) {
-
156 case ORIG_THUNK: return "Original Thunk";
-
157 case THUNK: return "Thunk";
-
158 case FORWARDER: return "Forwarder";
-
159 case HINT : return "Hint";
-
160 };
-
161 return "";
-
162}
+
146
+
+ +
148{
+
149 switch (fId) {
+
150 case ORIG_THUNK: return "Original Thunk";
+
151 case THUNK: return "Thunk";
+
152 case FORWARDER: return "Forwarder";
+
153 case HINT : return "Hint";
+
154 };
+
155 return "";
+
156}
-
163
-
- -
165{
-
166 if (this->isByOrdinal()) {
- -
168 }
-
169 switch (fId) {
-
170 case ORIG_THUNK:
-
171 case THUNK:
-
172 return Executable::RVA;
-
173 }
- -
175}
+
157
+
+ +
159{
+
160 if (this->isByOrdinal()) {
+ +
162 }
+
163 switch (fId) {
+
164 case ORIG_THUNK:
+
165 case THUNK:
+
166 return Executable::RVA;
+
167 }
+ +
169}
-
176//-------------------------------------------------------------------------------
+
170//-------------------------------------------------------------------------------
+
171
+
172
+
+ +
174 {
+ +
176 offset_t thunk = func->getThunkValue();
177
-
178
-
- -
180 {
- -
182 offset_t thunk = func->getThunkValue();
-
183
-
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);
-
191 }
-
192 return true;
-
193 }
+
178 if (thunk == 0 || thunk == INVALID_ADDR) {
+
179 delete func;
+
180 func = NULL;
+
181 return false;
+
182 } else {
+
183 entries.push_back(func);
+
184 addMapping(func);
+
185 }
+
186 return true;
+
187 }
-
194
-
195
-
- -
197{
-
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;
-
204
-
205 offset_t descAddr = this->m_PE->toRaw(importRva, Executable::RVA);
-
206 if (descAddr == INVALID_ADDR) {
-
207 return NULL; // address invalid
-
208 }
-
209 BYTE *dirPtr = this->m_PE->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));
-
213
-
214 BYTE *content = this->m_PE->getContentAt(entryOffset, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
-
215 if (!content) return NULL;
-
216 return (void*) content;
-
217}
+
188
+
189
+
+ +
191{
+
192 if (m_PE == NULL) return NULL;
+
193 IMAGE_DATA_DIRECTORY *d = m_PE->getDataDirectory();
+
194 if (!d) return NULL;
+
195
+
196 offset_t importRva = static_cast<offset_t>(d[pe::DIR_IMPORT].VirtualAddress);
+
197 if (importRva == 0) return NULL;
+
198
+
199 offset_t descAddr = this->m_PE->toRaw(importRva, Executable::RVA);
+
200 if (descAddr == INVALID_ADDR) {
+
201 return NULL; // address invalid
+
202 }
+
203 BYTE *dirPtr = this->m_PE->getContentAt(descAddr, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
+
204 if (dirPtr == NULL) return NULL; // address invalid
+
205
+
206 offset_t entryOffset = descAddr + (this->entryNum * sizeof(IMAGE_IMPORT_DESCRIPTOR));
+
207
+
208 BYTE *content = this->m_PE->getContentAt(entryOffset, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
+
209 if (!content) return NULL;
+
210 return (void*) content;
+
211}
-
218
-
- -
220{
-
221 return sizeof(IMAGE_IMPORT_DESCRIPTOR);
-
222}
+
212
+
+ +
214{
+
215 return sizeof(IMAGE_IMPORT_DESCRIPTOR);
+
216}
-
223
-
- -
225{
-
226 char *name = getLibraryName();
-
227 if (!name) return "";
-
228 return name;
-
229}
+
217
+
+ +
219{
+
220 char *name = getLibraryName();
+
221 if (!name) return "";
+
222 return name;
+
223}
+
224
+
+ +
226{
+
227 void *ptr = this->getPtr();
+
228 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) ptr;
+
229 if (!desc) return false;
230
-
- -
232{
-
233 void *ptr = this->getPtr();
-
234 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) ptr;
-
235 if (!desc) return false;
-
236
-
237 if (desc->TimeDateStamp == (-1)) return true;
-
238 return false;
-
239}
+
231 if (desc->TimeDateStamp == (-1)) return true;
+
232 return false;
+
233}
+
234
+
+
235void* ImportEntryWrapper::getFieldPtr(size_t fId, size_t subField)
+
236{
+
237 void *ptr = this->getPtr();
+
238 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) ptr;
+
239 if (!desc) return NULL;
240
-
-
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;
-
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;
-
253 }
-
254 return desc;
-
255}
+
241 switch (fId) {
+
242 case ORIG_FIRST_THUNK: return (void*) &desc->OriginalFirstThunk;
+
243 case TIMESTAMP: return (void*) &desc->TimeDateStamp;
+
244 case FORWARDER: return (void*) &desc->ForwarderChain;
+
245 case NAME: return (void*) &desc->Name;
+
246 case FIRST_THUNK: return (void*) &desc->FirstThunk;
+
247 }
+
248 return desc;
+
249}
-
256
-
- -
258{
-
259 switch (fId) {
-
260 case ORIG_FIRST_THUNK: return "OriginalFirstThunk";
-
261 case TIMESTAMP: return "TimeDateStamp";
-
262 case FORWARDER: return "Forwarder";
-
263 case NAME: return "NameRVA";
-
264 case FIRST_THUNK: return "FirstThunk";
-
265 }
-
266 return this->getName();
-
267}
+
250
+
+ +
252{
+
253 switch (fId) {
+
254 case ORIG_FIRST_THUNK: return "OriginalFirstThunk";
+
255 case TIMESTAMP: return "TimeDateStamp";
+
256 case FORWARDER: return "Forwarder";
+
257 case NAME: return "NameRVA";
+
258 case FIRST_THUNK: return "FirstThunk";
+
259 }
+
260 return this->getName();
+
261}
-
268
-
- -
270{
-
271 switch (fId) {
-
272 case ORIG_FIRST_THUNK:
-
273 case NAME:
-
274 case FIRST_THUNK:
-
275 return Executable::RVA;
-
276 }
- -
278}
+
262
+
+ +
264{
+
265 switch (fId) {
+
266 case ORIG_FIRST_THUNK:
+
267 case NAME:
+
268 case FIRST_THUNK:
+
269 return Executable::RVA;
+
270 }
+ +
272}
-
279
-
- -
281{
-
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;
-
290
-
291 //TODO: reimplement it:
-
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);
- -
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) {
-
301 return name; // Name at the end of File. FileBuffer secures it with appended \0
-
302 }
-
303 return NULL;
-
304 }
-
305 return name;
-
306}
+
273
+
+ +
275{
+
276 IMAGE_IMPORT_DESCRIPTOR* desc = (IMAGE_IMPORT_DESCRIPTOR*) getPtr();
+
277 if (!desc) {
+
278 return NULL;
+
279 }
+
280
+
281 offset_t nameRVA = desc->Name;
+
282 offset_t nAddr = m_Exe->toRaw(nameRVA, Executable::RVA);
+
283 if (nAddr == INVALID_ADDR) return NULL;
+
284
+
285 //TODO: reimplement it:
+
286 char *name = (char*) m_Exe->getContentAt(nAddr, sizeof(char));
+
287 offset_t peSize = m_Exe->getRawSize();
+
288
+
289 bufsize_t upperLimit = m_Exe->getMaxSizeFromPtr((BYTE*) name);
+ +
291 size_t limit = (size_t) upperLimit < HARD_LIMIT ? upperLimit : HARD_LIMIT;
+
292
+
293 if (pe_util::isStrLonger(name, limit)) {
+
294 if (upperLimit < HARD_LIMIT) {
+
295 return name; // Name at the end of File. FileBuffer secures it with appended \0
+
296 }
+
297 return NULL;
+
298 }
+
299 return name;
+
300}
-
307
-
308//---------------------------------
-
309
-
- -
311{
-
312 PEFile *pe = dynamic_cast<PEFile*> (this->m_Exe);
-
313 if (pe == NULL) return NULL;
-
314
-
315 IMAGE_DATA_DIRECTORY *d = pe->getDataDirectory();
-
316 return d;
-
317}
+
301
+
302//---------------------------------
+
303
+
+ +
305{
+
306 PEFile *pe = dynamic_cast<PEFile*> (this->m_Exe);
+
307 if (pe == NULL) return NULL;
+
308
+
309 IMAGE_DATA_DIRECTORY *d = pe->getDataDirectory();
+
310 return d;
+
311}
-
318
-
-
319IMAGE_IMPORT_DESCRIPTOR* ImportDirWrapper::firstDescriptor()
-
320{
-
321 IMAGE_DATA_DIRECTORY *d = getDataDirectory();
-
322 if (!d) return NULL;
+
312
+
+
313IMAGE_IMPORT_DESCRIPTOR* ImportDirWrapper::firstDescriptor()
+
314{
+
315 IMAGE_DATA_DIRECTORY *d = getDataDirectory();
+
316 if (!d) return NULL;
+
317
+
318 uint32_t importRva = d[pe::DIR_IMPORT].VirtualAddress;
+
319 if (importRva == 0) return NULL;
+
320
+
321 offset_t descAddr = this->m_Exe->toRaw(importRva, Executable::RVA);
+
322 if (descAddr == INVALID_ADDR) return NULL; // address invalid
323
-
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
-
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;
-
333}
+
324 BYTE *dirPtr = this->m_Exe->getContentAt(descAddr, Executable::RAW, sizeof(IMAGE_IMPORT_DESCRIPTOR));
+
325 if (dirPtr == NULL) return NULL; // address invalid
+
326 return (IMAGE_IMPORT_DESCRIPTOR*) dirPtr;
+
327}
-
334
-
- -
336{
-
337 ImportEntryWrapper* imp = new ImportEntryWrapper(m_PE, this, cntr);
-
338 if (!imp || !imp->getPtr()) {
+
328
+
+ +
330{
+
331 ImportEntryWrapper* imp = new ImportEntryWrapper(m_PE, this, cntr);
+
332 if (!imp || !imp->getPtr()) {
+
333 delete imp;
+
334 return false;
+
335 }
+
336 bool isOk = false;
+
337 uint64_t thunk = imp->getNumValue(ImportEntryWrapper::FIRST_THUNK, &isOk);
+
338 if (!isOk) {
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;
-
346 return false;
-
347 }
-
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;
-
355 return false;
-
356 }
-
357 entries.push_back(imp);
-
358 return true;
+
342 uint64_t oThunk = imp->getNumValue(ImportEntryWrapper::ORIG_FIRST_THUNK, &isOk);
+
343 if (!isOk) {
+
344 delete imp;
+
345 return false;
+
346 }
+
347 if (!thunk && !oThunk) {
+
348 delete imp;
+
349 return false;
+
350 }
+
351 entries.push_back(imp);
+
352 return true;
+
353}
+
+
354
+
+ +
356{
+
357 size_t fields = getFieldsCount() + 1; //fields + terminating field
+
358 return static_cast<bufsize_t>(fields) * sizeof(IMAGE_IMPORT_DESCRIPTOR);
359}
360
-
- -
362{
-
363 size_t fields = getFieldsCount() + 1; //fields + terminating field
-
364 return static_cast<bufsize_t>(fields) * sizeof(IMAGE_IMPORT_DESCRIPTOR);
-
365}
-
-
366
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -535,44 +529,44 @@ $(function(){ initResizable(false); });
void addMapping(ExeNodeWrapper *func)
-
IMAGE_DATA_DIRECTORY * getDataDirectory()
-
virtual bufsize_t getSize()
-
virtual bool loadNextEntry(size_t cntr)
-
IMAGE_IMPORT_DESCRIPTOR * firstDescriptor()
+
IMAGE_DATA_DIRECTORY * getDataDirectory()
+
virtual bufsize_t getSize()
+
virtual bool loadNextEntry(size_t cntr)
+
IMAGE_IMPORT_DESCRIPTOR * firstDescriptor()
friend class ImportEntryWrapper
-
bool isBound()
+
bool isBound()
FieldID
@ FIRST_THUNK
@ FORWARDER
@ ORIG_FIRST_THUNK
@ NAME
@ TIMESTAMP
-
virtual QString getName()
-
char * getLibraryName()
-
virtual QString getFieldName(size_t fieldId)
-
bool loadNextEntry(size_t entryNum)
-
virtual void * getPtr()
-
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
-
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
-
virtual bufsize_t getSize()
+
virtual QString getName()
+
char * getLibraryName()
+
virtual QString getFieldName(size_t fieldId)
+
bool loadNextEntry(size_t entryNum)
+
virtual void * getPtr()
+
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual bufsize_t getSize()
-
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
virtual void * getPtr()
-
virtual bufsize_t getSize()
-
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual bufsize_t getSize()
+
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
-
virtual QString getFieldName(size_t fieldId)
- +
virtual QString getFieldName(size_t fieldId)
+
void * getValuePtr(ImportEntryWrapper::FieldID fId)
offset_t getFieldRVA(ImportEntryWrapper::FieldID fId)
virtual IMAGE_IMPORT_BY_NAME * getImportByNamePtr()
-
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
IMAGE_DATA_DIRECTORY * getDataDirectory()
Definition PEFile.cpp:292
diff --git a/_import_dir_wrapper_8h_source.html b/_import_dir_wrapper_8h_source.html index 25d4b386..64fa6e2e 100644 --- a/_import_dir_wrapper_8h_source.html +++ b/_import_dir_wrapper_8h_source.html @@ -287,20 +287,20 @@ $(function(){ initResizable(false); });
virtual offset_t convertAddr(offset_t inAddr, Executable::addr_type inType, Executable::addr_type outType)
static bufsize_t thunkSize(Executable::exe_bits bits)
- +
-
bool wrap()
+
bool wrap()
ImportDirWrapper(PEFile *pe)
-
IMAGE_DATA_DIRECTORY * getDataDirectory()
+
IMAGE_DATA_DIRECTORY * getDataDirectory()
virtual void * getPtr()
virtual QString getName()
-
virtual bufsize_t getSize()
-
virtual bool loadNextEntry(size_t cntr)
-
IMAGE_IMPORT_DESCRIPTOR * firstDescriptor()
+
virtual bufsize_t getSize()
+
virtual bool loadNextEntry(size_t cntr)
+
IMAGE_IMPORT_DESCRIPTOR * firstDescriptor()
-
bool isBound()
+
bool isBound()
FieldID
@ FIRST_THUNK
@ FORWARDER
@@ -309,21 +309,21 @@ $(function(){ initResizable(false); });
@ NAME
@ TIMESTAMP
@ FIELD_COUNTER
-
virtual QString getName()
+
virtual QString getName()
bufsize_t geEntrySize()
-
char * getLibraryName()
-
virtual QString getFieldName(size_t fieldId)
+
char * getLibraryName()
+
virtual QString getFieldName(size_t fieldId)
ImportEntryWrapper(PEFile *pe, ImportDirWrapper *importsDir, size_t entryNumber)
-
bool loadNextEntry(size_t entryNum)
+
bool loadNextEntry(size_t entryNum)
virtual size_t getFieldsCount()
-
virtual void * getPtr()
-
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
-
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual void * getPtr()
+
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
virtual offset_t getNextEntryOffset()
-
virtual bufsize_t getSize()
+
virtual bufsize_t getSize()
virtual uint64_t getOrdinal()
-
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
ImportedFuncWrapper(PEFile *pe, ImportEntryWrapper *parentLib, size_t entryNumber)
virtual void * getPtr()
@@ -333,19 +333,19 @@ $(function(){ initResizable(false); }); -
virtual bufsize_t getSize()
-
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual bufsize_t getSize()
+
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
virtual size_t getFieldsCount()
-
virtual QString getFieldName(size_t fieldId)
- +
virtual QString getFieldName(size_t fieldId)
+
void * getValuePtr(ImportEntryWrapper::FieldID fId)
offset_t getFieldRVA(ImportEntryWrapper::FieldID fId)
virtual offset_t callVia()
virtual IMAGE_IMPORT_BY_NAME * getImportByNamePtr()
virtual size_t getSubFieldsCount()
-
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
+
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
diff --git a/_p_e_file_8cpp_source.html b/_p_e_file_8cpp_source.html index d2e91acf..0485555e 100644 --- a/_p_e_file_8cpp_source.html +++ b/_p_e_file_8cpp_source.html @@ -948,8 +948,8 @@ $(function(){ initResizable(false); });
QString getForwarderStr()
-
offset_t getFuncRva()
-
virtual QString getName()
+
offset_t getFuncRva()
+
virtual QString getName()
virtual void * getPtr()
diff --git a/_sect_hdrs_wrapper_8cpp_source.html b/_sect_hdrs_wrapper_8cpp_source.html index bef6252f..da2fb195 100644 --- a/_sect_hdrs_wrapper_8cpp_source.html +++ b/_sect_hdrs_wrapper_8cpp_source.html @@ -685,72 +685,71 @@ $(function(){ initResizable(false); });
536{
-
537 size_t size = this->entries.size();
-
538 std::map<offset_t, SectionHdrWrapper*> *secMap = NULL;
-
539
-
540 if (addrType == Executable::RAW) {
-
541 secMap = &this->rSec;
-
542 } else if (addrType == Executable::RVA || addrType == Executable::VA) {
-
543 secMap = &this->vSec;
-
544 }
-
545 if (secMap == NULL) return NULL;
-
546
-
547 std::map<offset_t, SectionHdrWrapper*>::iterator found = secMap->lower_bound(offset);
-
548 std::map<offset_t, SectionHdrWrapper*>::iterator itr;
-
549 for (itr = found; itr != secMap->end(); ++itr) {
-
550 SectionHdrWrapper* sec = itr->second;
-
551 if (sec == NULL) continue; //TODO: check it
-
552 if (verbose) {
-
553 printf("found [%llX] key: %llX sec: %llX %llX\n",
-
554 static_cast<unsigned long long>(offset),
-
555 static_cast<unsigned long long>(itr->first),
-
556 static_cast<unsigned long long>(sec->getContentOffset(addrType)),
-
557 static_cast<unsigned long long>(sec->getContentEndOffset(addrType, false))
-
558 );
-
559 }
-
560
-
561 offset_t startOffset = sec->getContentOffset(addrType);
-
562 if (startOffset == INVALID_ADDR) continue;
-
563
-
564 offset_t endOffset = sec->getContentEndOffset(addrType, recalculate);
-
565
-
566 if (offset >= startOffset && offset < endOffset) {
-
567 return sec;
-
568 }
-
569 if (offset < startOffset) break;
-
570 }
-
571 return NULL;
-
572}
+
537 std::map<offset_t, SectionHdrWrapper*> *secMap = NULL;
+
538
+
539 if (addrType == Executable::RAW) {
+
540 secMap = &this->rSec;
+
541 } else if (addrType == Executable::RVA || addrType == Executable::VA) {
+
542 secMap = &this->vSec;
+
543 }
+
544 if (!secMap) return NULL;
+
545
+
546 std::map<offset_t, SectionHdrWrapper*>::iterator found = secMap->lower_bound(offset);
+
547 std::map<offset_t, SectionHdrWrapper*>::iterator itr;
+
548 for (itr = found; itr != secMap->end(); ++itr) {
+
549 SectionHdrWrapper* sec = itr->second;
+
550 if (sec == NULL) continue; //TODO: check it
+
551 if (verbose) {
+
552 printf("found [%llX] key: %llX sec: %llX %llX\n",
+
553 static_cast<unsigned long long>(offset),
+
554 static_cast<unsigned long long>(itr->first),
+
555 static_cast<unsigned long long>(sec->getContentOffset(addrType)),
+
556 static_cast<unsigned long long>(sec->getContentEndOffset(addrType, false))
+
557 );
+
558 }
+
559
+
560 offset_t startOffset = sec->getContentOffset(addrType);
+
561 if (startOffset == INVALID_ADDR) continue;
+
562
+
563 offset_t endOffset = sec->getContentEndOffset(addrType, recalculate);
+
564
+
565 if (offset >= startOffset && offset < endOffset) {
+
566 return sec;
+
567 }
+
568 if (offset < startOffset) break;
+
569 }
+
570 return NULL;
+
571}
-
573
-
- -
575{
-
576 std::map<offset_t, SectionHdrWrapper*> *secMap = NULL;
-
577
-
578 if (aType == Executable::RAW) {
-
579 secMap = &this->rSec;
-
580 } else if (aType == Executable::RVA || aType == Executable::VA) {
-
581 secMap = &this->vSec;
-
582 }
-
583 if (secMap == NULL) return;
-
584
-
585 std::map<offset_t, SectionHdrWrapper*>::iterator itr;
-
586 for (itr = secMap->begin(); itr != secMap->end(); ++itr) {
-
587 SectionHdrWrapper* sec = itr->second;
-
588 offset_t secEnd = itr->first;
-
589
-
590 printf("[%llX] %s %llX %llX\n",
-
591 static_cast<unsigned long long>(secEnd),
-
592 sec->getName().toStdString().c_str(),
-
593 static_cast<unsigned long long>(sec->getContentOffset(aType)),
-
594 static_cast<unsigned long long>(sec->getContentEndOffset(aType, true))
-
595 );
-
596 }
-
597 printf("---\n\n");
-
598}
+
572
+
+ +
574{
+
575 std::map<offset_t, SectionHdrWrapper*> *secMap = NULL;
+
576
+
577 if (aType == Executable::RAW) {
+
578 secMap = &this->rSec;
+
579 } else if (aType == Executable::RVA || aType == Executable::VA) {
+
580 secMap = &this->vSec;
+
581 }
+
582 if (secMap == NULL) return;
+
583
+
584 std::map<offset_t, SectionHdrWrapper*>::iterator itr;
+
585 for (itr = secMap->begin(); itr != secMap->end(); ++itr) {
+
586 SectionHdrWrapper* sec = itr->second;
+
587 offset_t secEnd = itr->first;
+
588
+
589 printf("[%llX] %s %llX %llX\n",
+
590 static_cast<unsigned long long>(secEnd),
+
591 sec->getName().toStdString().c_str(),
+
592 static_cast<unsigned long long>(sec->getContentOffset(aType)),
+
593 static_cast<unsigned long long>(sec->getContentEndOffset(aType, true))
+
594 );
+
595 }
+
596 printf("---\n\n");
+
597}
-
599
+
598
uint32_t bufsize_t
const offset_t INVALID_ADDR
uint64_t offset_t
@@ -786,7 +785,7 @@ $(function(){ initResizable(false); });
virtual bufsize_t getAlignment(Executable::addr_type aType) const
Definition PEFile.h:69
size_t _getSectionsCount(bool useMapped=true) const
Definition PEFile.cpp:371
-
void printSectionsMapping(Executable::addr_type aType)
+
void printSectionsMapping(Executable::addr_type aType)
ExeNodeWrapper * addEntry(ExeNodeWrapper *entry)
virtual bufsize_t getSize()
diff --git a/_sect_hdrs_wrapper_8h_source.html b/_sect_hdrs_wrapper_8h_source.html index 898eb476..c6e0e622 100644 --- a/_sect_hdrs_wrapper_8h_source.html +++ b/_sect_hdrs_wrapper_8h_source.html @@ -319,7 +319,7 @@ $(function(){ initResizable(false); });
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField)
SectionHdrWrapper * _getSecHdr(size_t index)
SectionHdrWrapper * getSecHdr(size_t index)
-
void printSectionsMapping(Executable::addr_type aType)
+
void printSectionsMapping(Executable::addr_type aType)
ExeNodeWrapper * addEntry(ExeNodeWrapper *entry)
virtual bufsize_t getSize()
diff --git a/class_export_dir_wrapper.html b/class_export_dir_wrapper.html index b3a666fc..3695020a 100644 --- a/class_export_dir_wrapper.html +++ b/class_export_dir_wrapper.html @@ -564,7 +564,7 @@ Here is the call graph for this function:
-

Definition at line 158 of file ExportDirWrapper.cpp.

+

Definition at line 157 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -679,7 +679,7 @@ Here is the call graph for this function:

Reimplemented from ExeElementWrapper.

-

Definition at line 146 of file ExportDirWrapper.cpp.

+

Definition at line 145 of file ExportDirWrapper.cpp.

@@ -786,7 +786,7 @@ Here is the call graph for this function:

Implements ExeNodeWrapper.

-

Definition at line 122 of file ExportDirWrapper.cpp.

+

Definition at line 121 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -874,7 +874,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 101 of file ExportDirWrapper.cpp.

+

Definition at line 100 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -986,7 +986,7 @@ Here is the call graph for this function:
-

Definition at line 173 of file ExportDirWrapper.cpp.

+

Definition at line 172 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1061,7 +1061,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 91 of file ExportDirWrapper.cpp.

+

Definition at line 90 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1220,7 +1220,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 85 of file ExportDirWrapper.cpp.

+

Definition at line 84 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1414,7 +1414,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 63 of file ExportDirWrapper.cpp.

+

Definition at line 62 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_export_entry_wrapper.html b/class_export_entry_wrapper.html index 0b11fccc..66b5d2e5 100644 --- a/class_export_entry_wrapper.html +++ b/class_export_entry_wrapper.html @@ -449,7 +449,7 @@ Additional Inherited Members

Implements ExeNodeWrapper.

-

Definition at line 234 of file ExportDirWrapper.cpp.

+

Definition at line 233 of file ExportDirWrapper.cpp.

@@ -482,7 +482,7 @@ Additional Inherited Members

Implements ExeElementWrapper.

-

Definition at line 185 of file ExportDirWrapper.cpp.

+

Definition at line 184 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -573,7 +573,7 @@ Here is the call graph for this function:
-

Definition at line 307 of file ExportDirWrapper.cpp.

+

Definition at line 306 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -751,7 +751,7 @@ Here is the call graph for this function:
-

Definition at line 296 of file ExportDirWrapper.cpp.

+

Definition at line 295 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -788,7 +788,7 @@ Here is the call graph for this function:
-

Definition at line 288 of file ExportDirWrapper.cpp.

+

Definition at line 287 of file ExportDirWrapper.cpp.

@@ -807,7 +807,7 @@ Here is the call graph for this function:
-

Definition at line 243 of file ExportDirWrapper.cpp.

+

Definition at line 242 of file ExportDirWrapper.cpp.

@@ -836,7 +836,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 221 of file ExportDirWrapper.cpp.

+

Definition at line 220 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -918,7 +918,7 @@ Here is the call graph for this function:
-

Definition at line 251 of file ExportDirWrapper.cpp.

+

Definition at line 250 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1029,7 +1029,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 207 of file ExportDirWrapper.cpp.

+

Definition at line 206 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1177,7 +1177,7 @@ Here is the call graph for this function:
-

Definition at line 215 of file ExportDirWrapper.cpp.

+

Definition at line 214 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_import_base_dir_wrapper.html b/class_import_base_dir_wrapper.html index 5e4df07d..8b6c10c9 100644 --- a/class_import_base_dir_wrapper.html +++ b/class_import_base_dir_wrapper.html @@ -806,7 +806,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 150 of file ImportBaseDirWrapper.cpp.

+

Definition at line 149 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -919,7 +919,7 @@ Here is the call graph for this function:
-

Definition at line 98 of file ImportBaseDirWrapper.cpp.

+

Definition at line 97 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -971,7 +971,7 @@ Here is the call graph for this function:
-

Definition at line 86 of file ImportBaseDirWrapper.cpp.

+

Definition at line 85 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -1012,7 +1012,7 @@ Here is the call graph for this function:
-

Definition at line 76 of file ImportBaseDirWrapper.cpp.

+

Definition at line 75 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -1042,7 +1042,7 @@ Here is the call graph for this function:
-

Definition at line 108 of file ImportBaseDirWrapper.cpp.

+

Definition at line 107 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -1086,7 +1086,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 115 of file ImportBaseDirWrapper.cpp.

+

Definition at line 114 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_import_base_entry_wrapper.html b/class_import_base_entry_wrapper.html index 1d7ae20c..109d1feb 100644 --- a/class_import_base_entry_wrapper.html +++ b/class_import_base_entry_wrapper.html @@ -546,7 +546,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 161 of file ImportBaseDirWrapper.cpp.

+

Definition at line 160 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -602,7 +602,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 169 of file ImportBaseDirWrapper.cpp.

+

Definition at line 168 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_import_base_func_wrapper.html b/class_import_base_func_wrapper.html index a334c67d..179d3c2c 100644 --- a/class_import_base_func_wrapper.html +++ b/class_import_base_func_wrapper.html @@ -520,7 +520,7 @@ Here is the call graph for this function:
-

Definition at line 226 of file ImportBaseDirWrapper.cpp.

+

Definition at line 225 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -561,7 +561,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 237 of file ImportBaseDirWrapper.cpp.

+

Definition at line 236 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -629,7 +629,7 @@ Here is the call graph for this function:
-

Definition at line 206 of file ImportBaseDirWrapper.cpp.

+

Definition at line 205 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
@@ -741,7 +741,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 247 of file ImportBaseDirWrapper.cpp.

+

Definition at line 246 of file ImportBaseDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_import_dir_wrapper.html b/class_import_dir_wrapper.html index c0414f97..0fdd25d2 100644 --- a/class_import_dir_wrapper.html +++ b/class_import_dir_wrapper.html @@ -489,7 +489,7 @@ Here is the call graph for this function:
-

Definition at line 319 of file ImportDirWrapper.cpp.

+

Definition at line 313 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -555,7 +555,7 @@ Here is the call graph for this function:
-

Definition at line 310 of file ImportDirWrapper.cpp.

+

Definition at line 304 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -693,7 +693,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 361 of file ImportDirWrapper.cpp.

+

Definition at line 355 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -732,7 +732,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 335 of file ImportDirWrapper.cpp.

+

Definition at line 329 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_import_entry_wrapper.html b/class_import_entry_wrapper.html index 805b5c8b..d2a2f3b4 100644 --- a/class_import_entry_wrapper.html +++ b/class_import_entry_wrapper.html @@ -533,7 +533,7 @@ Here is the call graph for this function:

Reimplemented from ExeElementWrapper.

-

Definition at line 269 of file ImportDirWrapper.cpp.

+

Definition at line 263 of file ImportDirWrapper.cpp.

@@ -603,7 +603,7 @@ Here is the call graph for this function:

Implements ExeNodeWrapper.

-

Definition at line 257 of file ImportDirWrapper.cpp.

+

Definition at line 251 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -693,7 +693,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 241 of file ImportDirWrapper.cpp.

+

Definition at line 235 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -790,7 +790,7 @@ Here is the call graph for this function:

Implements ImportBaseEntryWrapper.

-

Definition at line 280 of file ImportDirWrapper.cpp.

+

Definition at line 274 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -872,7 +872,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 224 of file ImportDirWrapper.cpp.

+

Definition at line 218 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1049,7 +1049,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 196 of file ImportDirWrapper.cpp.

+

Definition at line 190 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1115,7 +1115,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 219 of file ImportDirWrapper.cpp.

+

Definition at line 213 of file ImportDirWrapper.cpp.

@@ -1134,7 +1134,7 @@ Here is the call graph for this function:
-

Definition at line 231 of file ImportDirWrapper.cpp.

+

Definition at line 225 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1202,7 +1202,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 179 of file ImportDirWrapper.cpp.

+

Definition at line 173 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_imported_func_wrapper.html b/class_imported_func_wrapper.html index 5a92a261..7afeb721 100644 --- a/class_imported_func_wrapper.html +++ b/class_imported_func_wrapper.html @@ -575,7 +575,7 @@ Here is the call graph for this function:

Reimplemented from ExeElementWrapper.

-

Definition at line 164 of file ImportDirWrapper.cpp.

+

Definition at line 158 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -678,7 +678,7 @@ Here is the call graph for this function:

Implements ExeNodeWrapper.

-

Definition at line 153 of file ImportDirWrapper.cpp.

+

Definition at line 147 of file ImportDirWrapper.cpp.

@@ -711,43 +711,41 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 123 of file ImportDirWrapper.cpp.

+

Definition at line 121 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
- - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - + + + - + - + @@ -757,42 +755,43 @@ Here is the call graph for this function:
- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -926,7 +925,7 @@ Here is the call graph for this function:

Reimplemented from ExeElementWrapper.

-

Definition at line 146 of file ImportDirWrapper.cpp.

+

Definition at line 140 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -968,7 +967,7 @@ Here is the call graph for this function:

Implements ImportBaseFuncWrapper.

-

Definition at line 108 of file ImportDirWrapper.cpp.

+

Definition at line 106 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
@@ -1348,7 +1347,7 @@ Here is the call graph for this function:

Implements ExeElementWrapper.

-

Definition at line 118 of file ImportDirWrapper.cpp.

+

Definition at line 116 of file ImportDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.map b/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.map index ac6fcd8f..62a66f1a 100644 --- a/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.map +++ b/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.map @@ -1,35 +1,33 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - - + + + + + + + - - - + + + - + - + @@ -39,40 +37,41 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.md5 b/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.md5 index 99f5b1cb..d5ba84ac 100644 --- a/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.md5 +++ b/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.md5 @@ -1 +1 @@ -8a9ac94facb258ef47c2ac961c566d26 \ No newline at end of file +bca829074c09689ee5305b1953faa398 \ No newline at end of file diff --git a/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.png b/class_imported_func_wrapper_a26d38df3d80ae19d4b93dfe2551690c9_cgraph.png index c053f392e209f0213ebc7598214fb56e68be0849..938fa4eb8df202de878ebb59494a03aa4ee6a702 100644 GIT binary patch literal 158642 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%0DvDtq)VWsV(_XCiK&l|LPsog7FQKM!me`L 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 F{{fh|rVRi9 literal 171161 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

-

Definition at line 574 of file SectHdrsWrapper.cpp.

+

Definition at line 573 of file SectHdrsWrapper.cpp.

Here is the call graph for this function: