diff --git a/_debug_dir_wrapper_8cpp_source.html b/_debug_dir_wrapper_8cpp_source.html index 98882d02..f2e95333 100644 --- a/_debug_dir_wrapper_8cpp_source.html +++ b/_debug_dir_wrapper_8cpp_source.html @@ -170,7 +170,7 @@ $(function() {
91{
92 switch (fieldId) {
93 case CHARACTERISTIC: return "Characteristics";
-
94 case TIMESTAMP: return (dbgRootDir && dbgRootDir->isRepro()) ? "ReproHash" :"TimeDateStamp";
+
94 case TIMESTAMP: return (dbgRootDir && dbgRootDir->isRepro()) ? "ReproChecksum" :"TimeDateStamp";
95 case MAJOR_VER: return "MajorVersion";
96 case MINOR_VER: return "MinorVersion";
97 case TYPE: return "Type";
diff --git a/_export_dir_wrapper_8cpp_source.html b/_export_dir_wrapper_8cpp_source.html index 17b139db..a8f0212c 100644 --- a/_export_dir_wrapper_8cpp_source.html +++ b/_export_dir_wrapper_8cpp_source.html @@ -202,204 +202,210 @@ $(function() {
123{
124 switch (fieldId) {
125 case CHARACTERISTIC: return "Characteristics";
-
126 case TIMESTAMP: return "TimeDateStamp";
-
127 case MAJOR_VER: return "MajorVersion";
-
128 case MINOR_VER: return "MinorVersion";
-
129 case NAME_RVA: return "Name";
-
130 case BASE: return "Base";
-
131 case FUNCTIONS_NUM: return "NumberOfFunctions";
-
132 case NAMES_NUM: return "NumberOfNames";
-
133 case FUNCTIONS_RVA: return "AddressOfFunctions";
-
134 case FUNC_NAMES_RVA: return "AddressOfNames";
-
135 case NAMES_ORDINALS_RVA: return "AddressOfNameOrdinals";
-
136 }
-
137 return getName();
-
138}
-
139
-
140Executable::addr_type ExportDirWrapper::containsAddrType(size_t fieldId, size_t subField)
-
141{
-
142 switch (fieldId) {
-
143 case NAME_RVA:
-
144 case FUNCTIONS_RVA:
-
145 case FUNC_NAMES_RVA:
-
146 case NAMES_ORDINALS_RVA:
-
147 return Executable::RVA;
-
148 }
-
149 return Executable::NOT_ADDR;
-
150}
-
151
-
152char* ExportDirWrapper::_getLibraryName()
-
153{
-
154 bool isOk = false;
-
155 offset_t offset = this->getNumValue(NAME_RVA, &isOk);
-
156 if (!isOk) return NULL;
+
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}
+
145
+
146Executable::addr_type ExportDirWrapper::containsAddrType(size_t fieldId, size_t subField)
+
147{
+
148 switch (fieldId) {
+
149 case NAME_RVA:
+
150 case FUNCTIONS_RVA:
+
151 case FUNC_NAMES_RVA:
+
152 case NAMES_ORDINALS_RVA:
+
153 return Executable::RVA;
+
154 }
+
155 return Executable::NOT_ADDR;
+
156}
157
-
158 Executable::addr_type aT = containsAddrType(NAME_RVA);
-
159 if (aT == Executable::NOT_ADDR) return NULL;
-
160
-
161 char *ptr = (char*) m_Exe->getContentAt(offset, aT, 1);
-
162 if (!ptr) return NULL;
+
158char* ExportDirWrapper::_getLibraryName()
+
159{
+
160 bool isOk = false;
+
161 offset_t offset = this->getNumValue(NAME_RVA, &isOk);
+
162 if (!isOk) return NULL;
163
-
164 return ptr;
-
165}
+
164 Executable::addr_type aT = containsAddrType(NAME_RVA);
+
165 if (aT == Executable::NOT_ADDR) return NULL;
166
-
167QString ExportDirWrapper::getLibraryName()
-
168{
-
169 char *name = this->_getLibraryName();
-
170 if (!name) return name;
-
171
-
172 if (pe_util::isStrLonger(name, 100)) {
-
173 return INVALID_NAME;
-
174 }
-
175 return QString(name);
-
176}
+
167 char *ptr = (char*) m_Exe->getContentAt(offset, aT, 1);
+
168 if (!ptr) return NULL;
+
169
+
170 return ptr;
+
171}
+
172
+
173QString ExportDirWrapper::getLibraryName()
+
174{
+
175 char *name = this->_getLibraryName();
+
176 if (!name) return name;
177
-
178//----------------------------------------------------------------------------------------------------
-
179void* ExportEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
-
180{
-
181 switch (fieldId) {
-
182 case FUNCTION_RVA: return getFuncRvaPtr();
-
183 case NAME_RVA: return getFuncNameRvaPtr();
-
184 }
-
185 return getPtr();
-
186}
-
187
-
188DWORD* ExportEntryWrapper::getFuncRvaPtr()
-
189{
-
190 if (this->parentDir == NULL) return NULL;
-
191 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
-
192 if (exp == NULL) return NULL;
+
178 if (pe_util::isStrLonger(name, 100)) {
+
179 return INVALID_NAME;
+
180 }
+
181 return QString(name);
+
182}
+
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}
193
-
194 uint64_t funcRva = exp->AddressOfFunctions;
-
195 funcRva += (this->entryNum * sizeof(DWORD));
-
196
-
197 DWORD *ptr = (DWORD*) m_Exe->getContentAt(funcRva, Executable::RVA, sizeof(DWORD));
-
198 return ptr;
-
199}
-
200
-
201bufsize_t ExportEntryWrapper::getSize()
-
202{
-
203 if (this->parentDir == NULL || parentDir->exportDir() == NULL) {
-
204 return 0;
-
205 }
-
206 return sizeof(DWORD);
-
207}
-
208
-
209bool ExportEntryWrapper::isByOrdinal()
-
210{
-
211 if (getFuncName() == NULL) return true;
-
212 return false;
+
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
+
207bufsize_t ExportEntryWrapper::getSize()
+
208{
+
209 if (this->parentDir == NULL || parentDir->exportDir() == NULL) {
+
210 return 0;
+
211 }
+
212 return sizeof(DWORD);
213}
214
-
215QString ExportEntryWrapper::getName()
+
215bool ExportEntryWrapper::isByOrdinal()
216{
-
217 if (isByOrdinal()) {
-
218 uint32_t val = getOrdinal();
-
219 QString ordStr;
-
220 QTextStream(&ordStr) << "<ord: " << QString::number(val, 16) << ">";
-
221 return ordStr;
-
222 }
-
223 char* name = getFuncName();
-
224 if (name == NULL) return "";
-
225 return QString(name);
-
226}
-
227
-
228QString ExportEntryWrapper::getFieldName(size_t fieldId)
-
229{
-
230 switch (fieldId) {
-
231 case FUNCTION_RVA: return "FuncRva";
-
232 case NAME_RVA: return "FuncNameRva";
-
233 }
-
234 return "";
-
235}
-
236
-
237offset_t ExportEntryWrapper::getFuncRva()
-
238{
-
239 DWORD *ptr = this->getFuncRvaPtr();
-
240 if (ptr == NULL) return INVALID_ADDR;
-
241 offset_t addr = static_cast<offset_t>(*ptr);
-
242 return addr;
-
243}
-
244
-
245uint32_t ExportEntryWrapper::getOrdinal()
-
246{
-
247 if (this->parentDir == NULL) return 0;
-
248 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
-
249 if (exp == NULL) return 0;
+
217 if (getFuncName() == NULL) return true;
+
218 return false;
+
219}
+
220
+
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;
+
228 }
+
229 char* name = getFuncName();
+
230 if (name == NULL) return "";
+
231 return QString(name);
+
232}
+
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}
+
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;
+
249}
250
-
251 uint32_t ordinal = static_cast<uint32_t>(this->entryNum) + exp->Base;
-
252 return ordinal;
-
253}
-
254
-
255uint32_t ExportEntryWrapper::getFuncNameId()
-
256{
-
257 if (this->parentDir == NULL) return INVALID_ID;
-
258
-
259 WORD ord = static_cast<WORD>(this->entryNum);
-
260 std::map<WORD, DWORD>::iterator found = parentDir->ordToNameId.find(ord);
-
261 if (found == parentDir->ordToNameId.end()) {
-
262 return INVALID_ID;
-
263 }
-
264 return found->second;
-
265}
-
266
-
267void* ExportEntryWrapper::getFuncNameRvaPtr()
-
268{
-
269 uint32_t nameId = getFuncNameId();
-
270 if (nameId == INVALID_ID) return NULL;
-
271
-
272 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
-
273 if (exp == NULL) return NULL;
-
274
-
275 if (nameId >= exp->NumberOfNames) return NULL;
-
276
-
277 uint64_t nameAddrRVA = exp->AddressOfNames + (nameId * sizeof(DWORD));
-
278 DWORD* valuePtr = (DWORD*) this->m_Exe->getContentAt(nameAddrRVA, Executable::RVA, sizeof(DWORD));
-
279 return valuePtr;
-
280}
-
281
-
282offset_t ExportEntryWrapper::getFuncNameRva()
-
283{
-
284 DWORD* valuePtr = (DWORD*) getFuncNameRvaPtr();
-
285 if (valuePtr == NULL) return INVALID_ADDR;
-
286 DWORD value = (*valuePtr);
-
287 return static_cast<offset_t>(value);
-
288}
-
289
-
290char* ExportEntryWrapper::getFuncName()
-
291{
-
292 uint64_t funcRva = getFuncNameRva();
-
293 if (funcRva == INVALID_ADDR) return NULL;
-
294
-
295 char* name = (char*) this->m_Exe->getContentAt(funcRva, Executable::RVA, 1);
-
296 if (name == NULL) return NULL;
-
297 //TODO.... verify
-
298 return name;
-
299}
+
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;
+
256
+
257 uint32_t ordinal = static_cast<uint32_t>(this->entryNum) + exp->Base;
+
258 return ordinal;
+
259}
+
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
+
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);
+
294}
+
295
+
296char* ExportEntryWrapper::getFuncName()
+
297{
+
298 uint64_t funcRva = getFuncNameRva();
+
299 if (funcRva == INVALID_ADDR) return NULL;
300
-
301char* ExportEntryWrapper::getForwarder()
-
302{
-
303 if (this->parentDir == NULL) return NULL;
-
304 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
-
305 if (exp == NULL) return NULL;
+
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}
306
-
307 DWORD* funcRvaPtr = (DWORD*) this->getFuncRvaPtr();
-
308 if (funcRvaPtr == NULL) return NULL;
-
309
-
310 char* strPtr = (char*) m_Exe->getContentAt( (*funcRvaPtr), Executable::RVA, 1);
-
311 if (strPtr == NULL) return NULL;
+
307char* ExportEntryWrapper::getForwarder()
+
308{
+
309 if (this->parentDir == NULL) return NULL;
+
310 IMAGE_EXPORT_DIRECTORY* exp = parentDir->exportDir();
+
311 if (exp == NULL) return NULL;
312
-
313 uint64_t offset = m_Exe->getOffset((BYTE*) strPtr);
-
314 if (offset == INVALID_ADDR) return NULL;
+
313 DWORD* funcRvaPtr = (DWORD*) this->getFuncRvaPtr();
+
314 if (funcRvaPtr == NULL) return NULL;
315
-
316 size_t maxLen = m_Exe->getRawSize() - offset;
-
317 size_t forwarderNameLen = pe_util::forwarderNameLen(strPtr, maxLen);
-
318 if (forwarderNameLen > 0) {
-
319 return strPtr;
-
320 }
-
321 return NULL;
-
322}
-
323
+
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}
+
329
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
@@ -419,7 +425,7 @@ $(function() {
Executable::RVA
@ RVA
Definition: Executable.h:38
Executable::getContentAt
BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
Definition: Executable.h:57
Executable::getRawSize
virtual offset_t getRawSize() const
Definition: Executable.h:54
-
ExportDirWrapper::getLibraryName
virtual QString getLibraryName()
Definition: ExportDirWrapper.cpp:167
+
ExportDirWrapper::getLibraryName
virtual QString getLibraryName()
Definition: ExportDirWrapper.cpp:173
ExportDirWrapper::NAMES_NUM
@ NAMES_NUM
Definition: ExportDirWrapper.h:18
ExportDirWrapper::MINOR_VER
@ MINOR_VER
Definition: ExportDirWrapper.h:14
ExportDirWrapper::NAME_RVA
@ NAME_RVA
Definition: ExportDirWrapper.h:15
@@ -438,26 +444,28 @@ $(function() {
ExportDirWrapper::exportDir
IMAGE_EXPORT_DIRECTORY * exportDir()
Definition: ExportDirWrapper.cpp:23
ExportDirWrapper::wrap
bool wrap()
Definition: ExportDirWrapper.cpp:63
ExportDirWrapper::getName
virtual QString getName()
Definition: ExportDirWrapper.cpp:91
-
ExportDirWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.cpp:140
+
ExportDirWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.cpp:146
ExportDirWrapper::mapNames
size_t mapNames()
Definition: ExportDirWrapper.cpp:38
ExportDirWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ExportDirWrapper.cpp:122
ExportDirWrapper::getSize
virtual bufsize_t getSize()
Definition: ExportDirWrapper.cpp:85
ExportDirWrapper::ExportEntryWrapper
friend class ExportEntryWrapper
Definition: ExportDirWrapper.h:50
-
ExportDirWrapper::_getLibraryName
char * _getLibraryName()
Definition: ExportDirWrapper.cpp:152
+
ExportDirWrapper::_getLibraryName
char * _getLibraryName()
Definition: ExportDirWrapper.cpp:158
ExportEntryWrapper
Definition: ExportDirWrapper.h:55
-
ExportEntryWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ExportDirWrapper.cpp:228
-
ExportEntryWrapper::getFuncName
char * getFuncName()
Definition: ExportDirWrapper.cpp:290
-
ExportEntryWrapper::getOrdinal
uint32_t getOrdinal()
Definition: ExportDirWrapper.cpp:245
+
ExportEntryWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ExportDirWrapper.cpp:234
+
ExportEntryWrapper::getFuncName
char * getFuncName()
Definition: ExportDirWrapper.cpp:296
+
ExportEntryWrapper::getOrdinal
uint32_t getOrdinal()
Definition: ExportDirWrapper.cpp:251
ExportEntryWrapper::getPtr
virtual void * getPtr()
Definition: ExportDirWrapper.h:69
-
ExportEntryWrapper::isByOrdinal
bool isByOrdinal()
Definition: ExportDirWrapper.cpp:209
-
ExportEntryWrapper::getSize
virtual bufsize_t getSize()
Definition: ExportDirWrapper.cpp:201
-
ExportEntryWrapper::getFuncNameRva
offset_t getFuncNameRva()
Definition: ExportDirWrapper.cpp:282
-
ExportEntryWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.cpp:179
-
ExportEntryWrapper::getFuncRva
offset_t getFuncRva()
Definition: ExportDirWrapper.cpp:237
+
ExportEntryWrapper::isByOrdinal
bool isByOrdinal()
Definition: ExportDirWrapper.cpp:215
+
ExportEntryWrapper::getSize
virtual bufsize_t getSize()
Definition: ExportDirWrapper.cpp:207
+
ExportEntryWrapper::getFuncNameRva
offset_t getFuncNameRva()
Definition: ExportDirWrapper.cpp:288
+
ExportEntryWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.cpp:185
+
ExportEntryWrapper::getFuncRva
offset_t getFuncRva()
Definition: ExportDirWrapper.cpp:243
ExportEntryWrapper::FUNCTION_RVA
@ FUNCTION_RVA
Definition: ExportDirWrapper.h:60
ExportEntryWrapper::NAME_RVA
@ NAME_RVA
Definition: ExportDirWrapper.h:61
-
ExportEntryWrapper::getForwarder
char * getForwarder()
Definition: ExportDirWrapper.cpp:301
-
ExportEntryWrapper::getName
virtual QString getName()
Definition: ExportDirWrapper.cpp:215
+
ExportEntryWrapper::getForwarder
char * getForwarder()
Definition: ExportDirWrapper.cpp:307
+
ExportEntryWrapper::getName
virtual QString getName()
Definition: ExportDirWrapper.cpp:221
+
PEFile
Definition: PEFile.h:41
+
PEFile::isReproBuild
bool isReproBuild()
Definition: PEFile.h:241
pe_util::forwarderNameLen
size_t forwarderNameLen(const char *ptr, size_t max_len)
Definition: Util.cpp:113
pe_util::isStrLonger
bool isStrLonger(const char *inp, size_t maxLen)
Definition: Util.cpp:38
diff --git a/_export_dir_wrapper_8h_source.html b/_export_dir_wrapper_8h_source.html index af76fa93..83bf4115 100644 --- a/_export_dir_wrapper_8h_source.html +++ b/_export_dir_wrapper_8h_source.html @@ -188,7 +188,7 @@ $(function() {
Executable::addr_type
addr_type
Definition: Executable.h:35
Executable::RVA
@ RVA
Definition: Executable.h:38
ExportDirWrapper
Definition: ExportDirWrapper.h:6
-
ExportDirWrapper::getLibraryName
virtual QString getLibraryName()
Definition: ExportDirWrapper.cpp:167
+
ExportDirWrapper::getLibraryName
virtual QString getLibraryName()
Definition: ExportDirWrapper.cpp:173
ExportDirWrapper::getSubFieldsCount
virtual size_t getSubFieldsCount()
Definition: ExportDirWrapper.h:34
ExportDirWrapper::ExportDirFID
ExportDirFID
Definition: ExportDirWrapper.h:9
ExportDirWrapper::NAMES_NUM
@ NAMES_NUM
Definition: ExportDirWrapper.h:18
@@ -213,34 +213,34 @@ $(function() {
ExportDirWrapper::exportDir
IMAGE_EXPORT_DIRECTORY * exportDir()
Definition: ExportDirWrapper.cpp:23
ExportDirWrapper::wrap
bool wrap()
Definition: ExportDirWrapper.cpp:63
ExportDirWrapper::getName
virtual QString getName()
Definition: ExportDirWrapper.cpp:91
-
ExportDirWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.cpp:140
+
ExportDirWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.cpp:146
ExportDirWrapper::mapNames
size_t mapNames()
Definition: ExportDirWrapper.cpp:38
ExportDirWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ExportDirWrapper.cpp:122
ExportDirWrapper::getSize
virtual bufsize_t getSize()
Definition: ExportDirWrapper.cpp:85
-
ExportDirWrapper::_getLibraryName
char * _getLibraryName()
Definition: ExportDirWrapper.cpp:152
+
ExportDirWrapper::_getLibraryName
char * _getLibraryName()
Definition: ExportDirWrapper.cpp:158
ExportEntryWrapper
Definition: ExportDirWrapper.h:55
-
ExportEntryWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ExportDirWrapper.cpp:228
+
ExportEntryWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ExportDirWrapper.cpp:234
ExportEntryWrapper::getSubFieldsCount
virtual size_t getSubFieldsCount()
Definition: ExportDirWrapper.h:74
ExportEntryWrapper::getFieldSize
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.h:78
ExportEntryWrapper::getForwarderStr
QString getForwarderStr()
Definition: ExportDirWrapper.h:92
ExportEntryWrapper::ExportEntryWrapper
ExportEntryWrapper(Executable *pe, ExportDirWrapper *parentDir, size_t entryNumber)
Definition: ExportDirWrapper.h:65
-
ExportEntryWrapper::getFuncName
char * getFuncName()
Definition: ExportDirWrapper.cpp:290
-
ExportEntryWrapper::getOrdinal
uint32_t getOrdinal()
Definition: ExportDirWrapper.cpp:245
+
ExportEntryWrapper::getFuncName
char * getFuncName()
Definition: ExportDirWrapper.cpp:296
+
ExportEntryWrapper::getOrdinal
uint32_t getOrdinal()
Definition: ExportDirWrapper.cpp:251
ExportEntryWrapper::getPtr
virtual void * getPtr()
Definition: ExportDirWrapper.h:69
-
ExportEntryWrapper::isByOrdinal
bool isByOrdinal()
Definition: ExportDirWrapper.cpp:209
-
ExportEntryWrapper::getSize
virtual bufsize_t getSize()
Definition: ExportDirWrapper.cpp:201
+
ExportEntryWrapper::isByOrdinal
bool isByOrdinal()
Definition: ExportDirWrapper.cpp:215
+
ExportEntryWrapper::getSize
virtual bufsize_t getSize()
Definition: ExportDirWrapper.cpp:207
ExportEntryWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField)
Definition: ExportDirWrapper.h:81
-
ExportEntryWrapper::getFuncNameRva
offset_t getFuncNameRva()
Definition: ExportDirWrapper.cpp:282
+
ExportEntryWrapper::getFuncNameRva
offset_t getFuncNameRva()
Definition: ExportDirWrapper.cpp:288
ExportEntryWrapper::getuncNameStr
QString getuncNameStr()
Definition: ExportDirWrapper.h:90
-
ExportEntryWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.cpp:179
-
ExportEntryWrapper::getFuncRva
offset_t getFuncRva()
Definition: ExportDirWrapper.cpp:237
+
ExportEntryWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ExportDirWrapper.cpp:185
+
ExportEntryWrapper::getFuncRva
offset_t getFuncRva()
Definition: ExportDirWrapper.cpp:243
ExportEntryWrapper::FieldID
FieldID
Definition: ExportDirWrapper.h:58
ExportEntryWrapper::FUNCTION_RVA
@ FUNCTION_RVA
Definition: ExportDirWrapper.h:60
ExportEntryWrapper::NONE
@ NONE
Definition: ExportDirWrapper.h:59
ExportEntryWrapper::FIELD_COUNTER
@ FIELD_COUNTER
Definition: ExportDirWrapper.h:62
ExportEntryWrapper::NAME_RVA
@ NAME_RVA
Definition: ExportDirWrapper.h:61
-
ExportEntryWrapper::getForwarder
char * getForwarder()
Definition: ExportDirWrapper.cpp:301
-
ExportEntryWrapper::getName
virtual QString getName()
Definition: ExportDirWrapper.cpp:215
+
ExportEntryWrapper::getForwarder
char * getForwarder()
Definition: ExportDirWrapper.cpp:307
+
ExportEntryWrapper::getName
virtual QString getName()
Definition: ExportDirWrapper.cpp:221
ExportEntryWrapper::getFieldsCount
virtual size_t getFieldsCount()
Definition: ExportDirWrapper.h:73
PEFile
Definition: PEFile.h:41
diff --git a/_file_hdr_wrapper_8cpp_source.html b/_file_hdr_wrapper_8cpp_source.html index f34cb1df..f68b0044 100644 --- a/_file_hdr_wrapper_8cpp_source.html +++ b/_file_hdr_wrapper_8cpp_source.html @@ -223,33 +223,45 @@ $(function() {
144 switch (fieldId) {
145 case MACHINE: return("Machine");
146 case SEC_NUM: return ("Sections Count");
-
147 case TIMESTAMP: return("Time Date Stamp");
-
148 case SYMBOL_PTR: return("Ptr to Symbol Table");
-
149 case SYMBOL_NUM: return("Num. of Symbols");
-
150 case OPTHDR_SIZE: return("Size of OptionalHeader");
-
151 case CHARACT: return("Characteristics");
-
152 }
-
153 return "";
-
154}
-
155
-
156Executable::addr_type FileHdrWrapper::containsAddrType(size_t fieldId, size_t subField)
-
157{
-
158 return Executable::NOT_ADDR;
-
159}
-
160
-
161QString FileHdrWrapper::translateFieldContent(size_t fieldId)
-
162{
-
163 IMAGE_FILE_HEADER * hdr = reinterpret_cast<IMAGE_FILE_HEADER*>(getPtr());
-
164 if (!hdr) return "";
-
165
-
166 IMAGE_FILE_HEADER &fileHeader = (*hdr);
-
167 switch (fieldId) {
-
168 case MACHINE: return FileHdrWrapper::translateMachine(fileHeader.Machine);
-
169 case TIMESTAMP: return util::getDateString(fileHeader.TimeDateStamp);
-
170 }
-
171 return "";
-
172}
-
173
+
147 case TIMESTAMP: {
+
148 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
+
149 if (myPe && myPe->isReproBuild()) {
+
150 return "ReproChecksum";
+
151 }
+
152 return("Time Date Stamp");
+
153 }
+
154 case SYMBOL_PTR: return("Ptr to Symbol Table");
+
155 case SYMBOL_NUM: return("Num. of Symbols");
+
156 case OPTHDR_SIZE: return("Size of OptionalHeader");
+
157 case CHARACT: return("Characteristics");
+
158 }
+
159 return "";
+
160}
+
161
+
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)
+
168{
+
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);
+
175 case TIMESTAMP: {
+
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);
+
181 }
+
182 }
+
183 return "";
+
184}
+
185
offset_t
uint64_t offset_t
Definition: AbstractByteBuffer.h:17
FileHdrWrapper.h
PEFile.h
@@ -265,9 +277,9 @@ $(function() {
FileHdrWrapper::SEC_NUM
@ SEC_NUM
Definition: FileHdrWrapper.h:17
FileHdrWrapper::TIMESTAMP
@ TIMESTAMP
Definition: FileHdrWrapper.h:18
FileHdrWrapper::CHARACT
@ CHARACT
Definition: FileHdrWrapper.h:22
-
FileHdrWrapper::translateFieldContent
virtual QString translateFieldContent(size_t fieldId)
Definition: FileHdrWrapper.cpp:161
+
FileHdrWrapper::translateFieldContent
virtual QString translateFieldContent(size_t fieldId)
Definition: FileHdrWrapper.cpp:167
FileHdrWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: FileHdrWrapper.cpp:124
-
FileHdrWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition: FileHdrWrapper.cpp:156
+
FileHdrWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition: FileHdrWrapper.cpp:162
FileHdrWrapper::splitCharact
static std::vector< DWORD > splitCharact(DWORD characteristics)
Definition: FileHdrWrapper.cpp:43
FileHdrWrapper::getPtr
virtual void * getPtr()
Definition: FileHdrWrapper.cpp:109
FileHdrWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: FileHdrWrapper.cpp:142
@@ -277,7 +289,9 @@ $(function() {
FileHdrWrapper::initMachine
static void initMachine()
Definition: FileHdrWrapper.cpp:65
FileHdrWrapper::translateCharacteristics
static QString translateCharacteristics(DWORD charact)
Definition: FileHdrWrapper.cpp:56
PEElementWrapper::m_PE
PEFile * m_PE
Definition: PENodeWrapper.h:17
+
PEFile
Definition: PEFile.h:41
PEFile::peFileHdrOffset
offset_t peFileHdrOffset() const
Definition: PEFile.h:77
+
PEFile::isReproBuild
bool isReproBuild()
Definition: PEFile.h:241
util
Definition: FileHdrWrapper.cpp:7
util::getDateString
QString getDateString(const quint64 timestamp)
Definition: FileHdrWrapper.cpp:8
diff --git a/_file_hdr_wrapper_8h_source.html b/_file_hdr_wrapper_8h_source.html index 55c15d66..4e58c088 100644 --- a/_file_hdr_wrapper_8h_source.html +++ b/_file_hdr_wrapper_8h_source.html @@ -148,9 +148,9 @@ $(function() {
FileHdrWrapper::NONE
@ NONE
Definition: FileHdrWrapper.h:15
FileHdrWrapper::CHARACT
@ CHARACT
Definition: FileHdrWrapper.h:22
FileHdrWrapper::wrap
bool wrap()
Definition: FileHdrWrapper.h:37
-
FileHdrWrapper::translateFieldContent
virtual QString translateFieldContent(size_t fieldId)
Definition: FileHdrWrapper.cpp:161
+
FileHdrWrapper::translateFieldContent
virtual QString translateFieldContent(size_t fieldId)
Definition: FileHdrWrapper.cpp:167
FileHdrWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: FileHdrWrapper.cpp:124
-
FileHdrWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition: FileHdrWrapper.cpp:156
+
FileHdrWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField=FIELD_NONE)
Definition: FileHdrWrapper.cpp:162
FileHdrWrapper::splitCharact
static std::vector< DWORD > splitCharact(DWORD characteristics)
Definition: FileHdrWrapper.cpp:43
FileHdrWrapper::getSize
virtual bufsize_t getSize()
Definition: FileHdrWrapper.h:41
FileHdrWrapper::getPtr
virtual void * getPtr()
Definition: FileHdrWrapper.cpp:109
diff --git a/_p_e_file_8cpp_source.html b/_p_e_file_8cpp_source.html index 98bfe181..0b45a877 100644 --- a/_p_e_file_8cpp_source.html +++ b/_p_e_file_8cpp_source.html @@ -792,8 +792,8 @@ $(function() {
ExportDirWrapper
Definition: ExportDirWrapper.h:6
ExportEntryWrapper
Definition: ExportDirWrapper.h:55
ExportEntryWrapper::getForwarderStr
QString getForwarderStr()
Definition: ExportDirWrapper.h:92
-
ExportEntryWrapper::getFuncRva
offset_t getFuncRva()
Definition: ExportDirWrapper.cpp:237
-
ExportEntryWrapper::getName
virtual QString getName()
Definition: ExportDirWrapper.cpp:215
+
ExportEntryWrapper::getFuncRva
offset_t getFuncRva()
Definition: ExportDirWrapper.cpp:243
+
ExportEntryWrapper::getName
virtual QString getName()
Definition: ExportDirWrapper.cpp:221
FileHdrWrapper
Definition: FileHdrWrapper.h:11
FileHdrWrapper::SEC_NUM
@ SEC_NUM
Definition: FileHdrWrapper.h:17
FileHdrWrapper::getPtr
virtual void * getPtr()
Definition: FileHdrWrapper.cpp:109
diff --git a/_resource_content_wrapper_8cpp_source.html b/_resource_content_wrapper_8cpp_source.html index d2ae4c24..1b3f228f 100644 --- a/_resource_content_wrapper_8cpp_source.html +++ b/_resource_content_wrapper_8cpp_source.html @@ -183,7 +183,7 @@ $(function() {
ResourceContentWrapper::myLeaf
ResourceLeafWrapper * myLeaf
Definition: ResourceContentWrapper.h:40
ResourceContentWrapper::getResContentPtr
void * getResContentPtr()
Definition: ResourceContentWrapper.cpp:34
ResourceContentWrapper::getResContentSize
bufsize_t getResContentSize()
Definition: ResourceContentWrapper.cpp:53
-
ResourceLeafWrapper::leafEntryPtr
IMAGE_RESOURCE_DATA_ENTRY * leafEntryPtr()
Definition: ResourceDirWrapper.cpp:335
+
ResourceLeafWrapper::leafEntryPtr
IMAGE_RESOURCE_DATA_ENTRY * leafEntryPtr()
Definition: ResourceDirWrapper.cpp:341
ResourceLeafWrapper::getExe
Executable * getExe()
Definition: ResourceLeafWrapper.h:42
diff --git a/_resource_dir_wrapper_8cpp_source.html b/_resource_dir_wrapper_8cpp_source.html index bf050fe1..360e9863 100644 --- a/_resource_dir_wrapper_8cpp_source.html +++ b/_resource_dir_wrapper_8cpp_source.html @@ -226,225 +226,231 @@ $(function() {
147{
148 switch (fieldId) {
149 case CHARACTERISTIC: return "Characteristics";
-
150 case TIMESTAMP: return "TimeDateStamp";
-
151 case MAJOR_VER: return "MajorVersion";
-
152 case MINOR_VER: return "MinorVersion";
-
153 case NAMED_ENTRIES_NUM : return "NumberOfNamedEntries";
-
154 case ID_ENTRIES_NUM : return "NumberOfIdEntries";
-
155 }
-
156 return getName();
-
157}
-
158
-
159//-----------------------------------------------------------------
-
160
-
161void ResourceEntryWrapper::clear()
-
162{
-
163 delete childDir;
-
164 this->childDir = NULL;
-
165 //---
-
166 delete childLeaf;
-
167 this->childLeaf = NULL;
-
168}
-
169
-
170bool ResourceEntryWrapper::wrap()
-
171{
-
172 clear();
-
173 //---
-
174 offset_t childRaw = getChildAddress();
-
175 if (childRaw == 0 || childRaw == INVALID_ADDR) return false;
-
176
-
177 if (this->isDir()) {
-
178 long depth = this->parentDir->getDepth() + 1;
-
179 if (depth >= MAX_DEPTH) return false;
-
180 this->childDir = new ResourceDirWrapper(this->m_PE, this->album, childRaw, depth, topEntryID);
-
181 } else {
-
182 this->childLeaf = new ResourceLeafWrapper(m_Exe, childRaw, topEntryID);
-
183 if (this->album != NULL) {
-
184 album->putLeaf(childLeaf, topEntryID);
-
185 }
-
186 }
-
187 return true;
-
188}
-
189
-
190
-
191IMAGE_RESOURCE_DIRECTORY_ENTRY* ResourceEntryWrapper::getEntryPtr()
-
192{
-
193 if (this->parentDir == NULL) return NULL;
-
194 uint64_t offset = parentDir->getFieldOffset(ResourceDirWrapper::ID_ENTRIES_NUM);
-
195 if (offset == INVALID_ADDR) return NULL;
+
150 case TIMESTAMP: {
+
151 PEFile* myPe = dynamic_cast<PEFile*>(this->m_Exe);
+
152 if (myPe && myPe->isReproBuild()) {
+
153 return "ReproChecksum";
+
154 }
+
155 return "TimeDateStamp";
+
156 }
+
157 case MAJOR_VER: return "MajorVersion";
+
158 case MINOR_VER: return "MinorVersion";
+
159 case NAMED_ENTRIES_NUM : return "NumberOfNamedEntries";
+
160 case ID_ENTRIES_NUM : return "NumberOfIdEntries";
+
161 }
+
162 return getName();
+
163}
+
164
+
165//-----------------------------------------------------------------
+
166
+
167void ResourceEntryWrapper::clear()
+
168{
+
169 delete childDir;
+
170 this->childDir = NULL;
+
171 //---
+
172 delete childLeaf;
+
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;
+
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);
+
187 } else {
+
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
-
197 size_t lastSize = parentDir->getFieldSize(ResourceDirWrapper::ID_ENTRIES_NUM, FIELD_NONE);
-
198 offset += lastSize;
-
199 offset += (this->entryNum * sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY));
-
200
-
201 void *ptr = m_Exe->getContentAt(offset, Executable::RAW, sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY));
-
202 return (IMAGE_RESOURCE_DIRECTORY_ENTRY*) ptr;
-
203}
-
204
-
205//IMAGE_RESOURCE_DIRECTORY_ENTRY
-
206void* ResourceEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
-
207{
-
208 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
209 if (entry == NULL) return NULL;
+
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;
+
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));
+
206
+
207 void *ptr = m_Exe->getContentAt(offset, Executable::RAW, sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY));
+
208 return (IMAGE_RESOURCE_DIRECTORY_ENTRY*) ptr;
+
209}
210
-
211 switch (fieldId) {
-
212 case NAME_ID_ADDR:
-
213 return &entry->Name;
-
214 case OFFSET_TO_DATA:
-
215 return &entry->OffsetToData;
-
216 }
-
217 return getPtr();
-
218}
-
219
-
220QString ResourceEntryWrapper::getFieldName(size_t fieldId)
-
221{
-
222 switch (fieldId) {
-
223 case NAME_ID_ADDR:
-
224 return(isByName()) ? "Name": "ID";
-
225 case OFFSET_TO_DATA:
-
226 return "Offset To Data";
-
227 }
-
228 return getName();
-
229}
-
230
-
231bool ResourceEntryWrapper::isByName()
-
232{
-
233 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
234 if (entry == NULL) return false;
-
235 if (entry->NameIsString == 1) return true;
-
236 return false;
-
237}
-
238
-
239bool ResourceEntryWrapper::isDir()
-
240{
-
241 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
242 if (entry == NULL) return false;
-
243 if (entry->DataIsDirectory == 1) return true;
-
244 return false;
-
245}
-
246
-
247offset_t ResourceEntryWrapper::getNameOffset()
-
248{
-
249 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
250 if (entry == NULL) return INVALID_ADDR;
-
251
-
252 if (this->parentDir == NULL) return INVALID_ADDR;
-
253 offset_t fOff = this->parentDir->getOffset(this->parentDir->getPtr());
-
254 if (fOff == INVALID_ADDR) return INVALID_ADDR;
-
255
-
256 if (entry->NameIsString != 1) return INVALID_ADDR;
-
257 return fOff + entry->NameOffset;
-
258}
-
259
-
260IMAGE_RESOURCE_DIRECTORY_STRING* ResourceEntryWrapper::getNameStr()
-
261{
-
262 offset_t nameOff = getNameOffset();
-
263 if (nameOff == INVALID_ADDR) return NULL;
-
264
-
265 const size_t BASIC_SIZE = sizeof(IMAGE_RESOURCE_DIRECTORY_STRING);
-
266 IMAGE_RESOURCE_DIRECTORY_STRING *ptr = (IMAGE_RESOURCE_DIRECTORY_STRING*) this->m_Exe->getContentAt(nameOff, Executable::RAW, BASIC_SIZE);
-
267 return ptr;
-
268}
-
269
-
270QString ResourceEntryWrapper::translateType(WORD id)
-
271{
-
272 switch (id) {
-
273 case pe::RESTYPE_CURSOR : return "Cursor";
-
274 case pe::RESTYPE_FONT :return "Font";
-
275 case pe::RESTYPE_BITMAP : return "Bitmap";
-
276 case pe::RESTYPE_ICON : return "Icon";
-
277 case pe::RESTYPE_MENU : return "Menu";
-
278 case pe::RESTYPE_DIALOG : return "Dialog";
-
279 case pe::RESTYPE_STRING : return "String";
-
280 case pe::RESTYPE_FONTDIR : return "Font Dir";
-
281 case pe::RESTYPE_ACCELERATOR : return "Accelerator";
-
282 case pe::RESTYPE_RCDATA : return "RC Data";
-
283 case pe::RESTYPE_MESSAGETABLE : return "Message Table";
-
284
-
285 case pe::RESTYPE_GROUP_CURSOR : return "Cursors Group";
-
286 case pe::RESTYPE_GROUP_ICON : return "Icons Group";
-
287 case pe::RESTYPE_VERSION : return "Version";
-
288 case pe::RESTYPE_DLGINCLUDE : return "Dlg Include";
-
289 case pe::RESTYPE_PLUGPLAY : return "Plug & Play";
-
290 case pe::RESTYPE_VXD : return "VXD";
-
291 case pe::RESTYPE_ANICURSOR : return "Animated Cursor";
-
292 case pe::RESTYPE_ANIICON : return "Animated Icon";
-
293 case pe::RESTYPE_HTML : return "HTML";
-
294 case pe::RESTYPE_MANIFEST : return "Manifest";
-
295 }
-
296 return "";
-
297}
-
298
-
299WORD ResourceEntryWrapper::getID()
-
300{
-
301 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
302 if (entry == NULL) return 0;
-
303 if (this->isByName()) return 0;
+
211//IMAGE_RESOURCE_DIRECTORY_ENTRY
+
212void* ResourceEntryWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
213{
+
214 IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
+
215 if (entry == NULL) return NULL;
+
216
+
217 switch (fieldId) {
+
218 case NAME_ID_ADDR:
+
219 return &entry->Name;
+
220 case OFFSET_TO_DATA:
+
221 return &entry->OffsetToData;
+
222 }
+
223 return getPtr();
+
224}
+
225
+
226QString ResourceEntryWrapper::getFieldName(size_t fieldId)
+
227{
+
228 switch (fieldId) {
+
229 case NAME_ID_ADDR:
+
230 return(isByName()) ? "Name": "ID";
+
231 case OFFSET_TO_DATA:
+
232 return "Offset To Data";
+
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;
+
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;
+
250 return false;
+
251}
+
252
+
253offset_t ResourceEntryWrapper::getNameOffset()
+
254{
+
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;
+
261
+
262 if (entry->NameIsString != 1) return INVALID_ADDR;
+
263 return fOff + entry->NameOffset;
+
264}
+
265
+
266IMAGE_RESOURCE_DIRECTORY_STRING* ResourceEntryWrapper::getNameStr()
+
267{
+
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);
+
273 return ptr;
+
274}
+
275
+
276QString ResourceEntryWrapper::translateType(WORD id)
+
277{
+
278 switch (id) {
+
279 case pe::RESTYPE_CURSOR : return "Cursor";
+
280 case pe::RESTYPE_FONT :return "Font";
+
281 case pe::RESTYPE_BITMAP : return "Bitmap";
+
282 case pe::RESTYPE_ICON : return "Icon";
+
283 case pe::RESTYPE_MENU : return "Menu";
+
284 case pe::RESTYPE_DIALOG : return "Dialog";
+
285 case pe::RESTYPE_STRING : return "String";
+
286 case pe::RESTYPE_FONTDIR : return "Font Dir";
+
287 case pe::RESTYPE_ACCELERATOR : return "Accelerator";
+
288 case pe::RESTYPE_RCDATA : return "RC Data";
+
289 case pe::RESTYPE_MESSAGETABLE : return "Message Table";
+
290
+
291 case pe::RESTYPE_GROUP_CURSOR : return "Cursors Group";
+
292 case pe::RESTYPE_GROUP_ICON : return "Icons Group";
+
293 case pe::RESTYPE_VERSION : return "Version";
+
294 case pe::RESTYPE_DLGINCLUDE : return "Dlg Include";
+
295 case pe::RESTYPE_PLUGPLAY : return "Plug & Play";
+
296 case pe::RESTYPE_VXD : return "VXD";
+
297 case pe::RESTYPE_ANICURSOR : return "Animated Cursor";
+
298 case pe::RESTYPE_ANIICON : return "Animated Icon";
+
299 case pe::RESTYPE_HTML : return "HTML";
+
300 case pe::RESTYPE_MANIFEST : return "Manifest";
+
301 }
+
302 return "";
+
303}
304
-
305 return entry->Id;
-
306}
-
307
-
308offset_t ResourceEntryWrapper::getChildOffsetToDirectory()
-
309{
-
310 const IMAGE_RESOURCE_DIRECTORY_ENTRY* entry = getEntryPtr();
-
311 if (!entry) {
-
312 return INVALID_ADDR;
-
313 }
-
314 if (entry->DataIsDirectory) {
-
315 return entry->OffsetToDirectory;
-
316 }
-
317 return entry->OffsetToData;
-
318}
-
319
-
320offset_t ResourceEntryWrapper::getChildAddress()
-
321{
-
322 if (!this->parentDir) return INVALID_ADDR;
-
323
-
324 const offset_t fOff = this->parentDir->getOffset(this->parentDir->mainResourceDir());
-
325 if (fOff == INVALID_ADDR) return INVALID_ADDR;
-
326
-
327 const offset_t childOff = getChildOffsetToDirectory();
-
328 if (childOff == INVALID_ADDR) return INVALID_ADDR;
-
329
-
330 return fOff + childOff;
-
331}
+
305WORD ResourceEntryWrapper::getID()
+
306{
+
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) {
+
318 return INVALID_ADDR;
+
319 }
+
320 if (entry->DataIsDirectory) {
+
321 return entry->OffsetToDirectory;
+
322 }
+
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;
332
-
333//-------------------------------------------------------------------------
-
334
-
335IMAGE_RESOURCE_DATA_ENTRY* ResourceLeafWrapper::leafEntryPtr()
-
336{
-
337 if (this->offset == 0 || this->offset == INVALID_ADDR) return NULL;
+
333 const offset_t childOff = getChildOffsetToDirectory();
+
334 if (childOff == INVALID_ADDR) return INVALID_ADDR;
+
335
+
336 return fOff + childOff;
+
337}
338
-
339 IMAGE_RESOURCE_DATA_ENTRY* leaf = (IMAGE_RESOURCE_DATA_ENTRY*) this->m_Exe->getContentAt(this->offset, Executable::RAW, sizeof(IMAGE_RESOURCE_DATA_ENTRY));
-
340 return leaf;
-
341}
-
342
-
343void* ResourceLeafWrapper::getFieldPtr(size_t fieldId, size_t subField)
-
344{
-
345 IMAGE_RESOURCE_DATA_ENTRY* leaf = leafEntryPtr();
-
346 if (!leaf) return NULL;
-
347
-
348 switch (fieldId) {
-
349 case OFFSET_TO_DATA: return &leaf->OffsetToData;
-
350 case DATA_SIZE: return &leaf->Size;
-
351 case CODE_PAGE: return &leaf->CodePage;
-
352 case RESERVED: return &leaf->Reserved;
-
353 }
-
354 return NULL;
-
355}
-
356
-
357QString ResourceLeafWrapper::getFieldName(size_t fieldId)
-
358{
-
359 switch (fieldId) {
-
360 case OFFSET_TO_DATA: return "OffsetToData";
-
361 case DATA_SIZE: return "DataSize";
-
362 case CODE_PAGE: return "CodePage";
-
363 case RESERVED: return "Reserved";
-
364 }
-
365 return "";
-
366}
-
367
-
368
+
339//-------------------------------------------------------------------------
+
340
+
341IMAGE_RESOURCE_DATA_ENTRY* ResourceLeafWrapper::leafEntryPtr()
+
342{
+
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;
+
347}
+
348
+
349void* ResourceLeafWrapper::getFieldPtr(size_t fieldId, size_t subField)
+
350{
+
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;
+
359 }
+
360 return NULL;
+
361}
+
362
+
363QString ResourceLeafWrapper::getFieldName(size_t fieldId)
+
364{
+
365 switch (fieldId) {
+
366 case OFFSET_TO_DATA: return "OffsetToData";
+
367 case DATA_SIZE: return "DataSize";
+
368 case CODE_PAGE: return "CodePage";
+
369 case RESERVED: return "Reserved";
+
370 }
+
371 return "";
+
372}
+
373
+
374
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
@@ -465,6 +471,8 @@ $(function() {
Executable::RVA
@ RVA
Definition: Executable.h:38
Executable::RAW
@ RAW
Definition: Executable.h:37
Executable::getContentAt
BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
Definition: Executable.h:57
+
PEFile
Definition: PEFile.h:41
+
PEFile::isReproBuild
bool isReproBuild()
Definition: PEFile.h:241
PENodeWrapper::m_PE
PEFile * m_PE
Definition: PENodeWrapper.h:36
ResourceDirWrapper
Definition: ResourceDirWrapper.h:14
ResourceDirWrapper::getDepth
long getDepth()
Definition: ResourceDirWrapper.h:53
@@ -484,28 +492,28 @@ $(function() {
ResourceDirWrapper::getName
virtual QString getName()
Definition: ResourceDirWrapper.h:40
ResourceDirWrapper::getEntriesAreaSize
bufsize_t getEntriesAreaSize()
Definition: ResourceDirWrapper.h:48
ResourceEntryWrapper
Definition: ResourceDirWrapper.h:67
-
ResourceEntryWrapper::getID
WORD getID()
Definition: ResourceDirWrapper.cpp:299
-
ResourceEntryWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ResourceDirWrapper.cpp:220
-
ResourceEntryWrapper::getChildAddress
offset_t getChildAddress()
Definition: ResourceDirWrapper.cpp:320
-
ResourceEntryWrapper::getEntryPtr
IMAGE_RESOURCE_DIRECTORY_ENTRY * getEntryPtr()
Definition: ResourceDirWrapper.cpp:191
-
ResourceEntryWrapper::getNameOffset
offset_t getNameOffset()
Definition: ResourceDirWrapper.cpp:247
-
ResourceEntryWrapper::clear
virtual void clear()
Definition: ResourceDirWrapper.cpp:161
-
ResourceEntryWrapper::isDir
bool isDir()
Definition: ResourceDirWrapper.cpp:239
-
ResourceEntryWrapper::translateType
static QString translateType(WORD id)
Definition: ResourceDirWrapper.cpp:270
-
ResourceEntryWrapper::isByName
bool isByName()
Definition: ResourceDirWrapper.cpp:231
+
ResourceEntryWrapper::getID
WORD getID()
Definition: ResourceDirWrapper.cpp:305
+
ResourceEntryWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ResourceDirWrapper.cpp:226
+
ResourceEntryWrapper::getChildAddress
offset_t getChildAddress()
Definition: ResourceDirWrapper.cpp:326
+
ResourceEntryWrapper::getEntryPtr
IMAGE_RESOURCE_DIRECTORY_ENTRY * getEntryPtr()
Definition: ResourceDirWrapper.cpp:197
+
ResourceEntryWrapper::getNameOffset
offset_t getNameOffset()
Definition: ResourceDirWrapper.cpp:253
+
ResourceEntryWrapper::clear
virtual void clear()
Definition: ResourceDirWrapper.cpp:167
+
ResourceEntryWrapper::isDir
bool isDir()
Definition: ResourceDirWrapper.cpp:245
+
ResourceEntryWrapper::translateType
static QString translateType(WORD id)
Definition: ResourceDirWrapper.cpp:276
+
ResourceEntryWrapper::isByName
bool isByName()
Definition: ResourceDirWrapper.cpp:237
ResourceEntryWrapper::getName
virtual QString getName()
Definition: ResourceDirWrapper.h:93
-
ResourceEntryWrapper::wrap
bool wrap()
Definition: ResourceDirWrapper.cpp:170
-
ResourceEntryWrapper::getNameStr
IMAGE_RESOURCE_DIRECTORY_STRING * getNameStr()
Definition: ResourceDirWrapper.cpp:260
-
ResourceEntryWrapper::getChildOffsetToDirectory
offset_t getChildOffsetToDirectory()
Definition: ResourceDirWrapper.cpp:308
+
ResourceEntryWrapper::wrap
bool wrap()
Definition: ResourceDirWrapper.cpp:176
+
ResourceEntryWrapper::getNameStr
IMAGE_RESOURCE_DIRECTORY_STRING * getNameStr()
Definition: ResourceDirWrapper.cpp:266
+
ResourceEntryWrapper::getChildOffsetToDirectory
offset_t getChildOffsetToDirectory()
Definition: ResourceDirWrapper.cpp:314
ResourceEntryWrapper::NAME_ID_ADDR
@ NAME_ID_ADDR
Definition: ResourceDirWrapper.h:72
ResourceEntryWrapper::OFFSET_TO_DATA
@ OFFSET_TO_DATA
Definition: ResourceDirWrapper.h:73
ResourceEntryWrapper::getPtr
virtual void * getPtr()
Definition: ResourceDirWrapper.h:90
-
ResourceEntryWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ResourceDirWrapper.cpp:206
+
ResourceEntryWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ResourceDirWrapper.cpp:212
ResourceLeafWrapper
Definition: ResourceLeafWrapper.h:10
-
ResourceLeafWrapper::leafEntryPtr
IMAGE_RESOURCE_DATA_ENTRY * leafEntryPtr()
Definition: ResourceDirWrapper.cpp:335
-
ResourceLeafWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField)
Definition: ResourceDirWrapper.cpp:343
+
ResourceLeafWrapper::leafEntryPtr
IMAGE_RESOURCE_DATA_ENTRY * leafEntryPtr()
Definition: ResourceDirWrapper.cpp:341
+
ResourceLeafWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField)
Definition: ResourceDirWrapper.cpp:349
ResourceLeafWrapper::offset
offset_t offset
Definition: ResourceLeafWrapper.h:45
-
ResourceLeafWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ResourceDirWrapper.cpp:357
+
ResourceLeafWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ResourceDirWrapper.cpp:363
ResourceLeafWrapper::DATA_SIZE
@ DATA_SIZE
Definition: ResourceLeafWrapper.h:16
ResourceLeafWrapper::RESERVED
@ RESERVED
Definition: ResourceLeafWrapper.h:18
ResourceLeafWrapper::CODE_PAGE
@ CODE_PAGE
Definition: ResourceLeafWrapper.h:17
diff --git a/_resource_dir_wrapper_8h_source.html b/_resource_dir_wrapper_8h_source.html index c1a8574a..2dadc7bd 100644 --- a/_resource_dir_wrapper_8h_source.html +++ b/_resource_dir_wrapper_8h_source.html @@ -242,25 +242,25 @@ $(function() {
ResourceDirWrapper::getEntriesAreaSize
bufsize_t getEntriesAreaSize()
Definition: ResourceDirWrapper.h:48
ResourceDirWrapper::getAlbumPtr
ResourcesAlbum * getAlbumPtr()
Definition: ResourceDirWrapper.h:56
ResourceEntryWrapper
Definition: ResourceDirWrapper.h:67
-
ResourceEntryWrapper::getID
WORD getID()
Definition: ResourceDirWrapper.cpp:299
-
ResourceEntryWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ResourceDirWrapper.cpp:220
+
ResourceEntryWrapper::getID
WORD getID()
Definition: ResourceDirWrapper.cpp:305
+
ResourceEntryWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ResourceDirWrapper.cpp:226
ResourceEntryWrapper::getAlbumPtr
ResourcesAlbum * getAlbumPtr()
Definition: ResourceDirWrapper.h:113
ResourceEntryWrapper::getFieldsCount
virtual size_t getFieldsCount()
Definition: ResourceDirWrapper.h:94
ResourceEntryWrapper::getTopEntryID
long getTopEntryID()
Definition: ResourceDirWrapper.h:114
ResourceEntryWrapper::containsAddrType
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField)
Definition: ResourceDirWrapper.h:100
ResourceEntryWrapper::~ResourceEntryWrapper
virtual ~ResourceEntryWrapper()
Definition: ResourceDirWrapper.h:86
-
ResourceEntryWrapper::getChildAddress
offset_t getChildAddress()
Definition: ResourceDirWrapper.cpp:320
-
ResourceEntryWrapper::getEntryPtr
IMAGE_RESOURCE_DIRECTORY_ENTRY * getEntryPtr()
Definition: ResourceDirWrapper.cpp:191
-
ResourceEntryWrapper::getNameOffset
offset_t getNameOffset()
Definition: ResourceDirWrapper.cpp:247
-
ResourceEntryWrapper::clear
virtual void clear()
Definition: ResourceDirWrapper.cpp:161
-
ResourceEntryWrapper::isDir
bool isDir()
Definition: ResourceDirWrapper.cpp:239
-
ResourceEntryWrapper::translateType
static QString translateType(WORD id)
Definition: ResourceDirWrapper.cpp:270
-
ResourceEntryWrapper::isByName
bool isByName()
Definition: ResourceDirWrapper.cpp:231
+
ResourceEntryWrapper::getChildAddress
offset_t getChildAddress()
Definition: ResourceDirWrapper.cpp:326
+
ResourceEntryWrapper::getEntryPtr
IMAGE_RESOURCE_DIRECTORY_ENTRY * getEntryPtr()
Definition: ResourceDirWrapper.cpp:197
+
ResourceEntryWrapper::getNameOffset
offset_t getNameOffset()
Definition: ResourceDirWrapper.cpp:253
+
ResourceEntryWrapper::clear
virtual void clear()
Definition: ResourceDirWrapper.cpp:167
+
ResourceEntryWrapper::isDir
bool isDir()
Definition: ResourceDirWrapper.cpp:245
+
ResourceEntryWrapper::translateType
static QString translateType(WORD id)
Definition: ResourceDirWrapper.cpp:276
+
ResourceEntryWrapper::isByName
bool isByName()
Definition: ResourceDirWrapper.cpp:237
ResourceEntryWrapper::getName
virtual QString getName()
Definition: ResourceDirWrapper.h:93
-
ResourceEntryWrapper::wrap
bool wrap()
Definition: ResourceDirWrapper.cpp:170
-
ResourceEntryWrapper::getNameStr
IMAGE_RESOURCE_DIRECTORY_STRING * getNameStr()
Definition: ResourceDirWrapper.cpp:260
+
ResourceEntryWrapper::wrap
bool wrap()
Definition: ResourceDirWrapper.cpp:176
+
ResourceEntryWrapper::getNameStr
IMAGE_RESOURCE_DIRECTORY_STRING * getNameStr()
Definition: ResourceDirWrapper.cpp:266
ResourceEntryWrapper::ResourceEntryWrapper
ResourceEntryWrapper(PEFile *pe, ResourceDirWrapper *parentDir, size_t entryNumber, long topEntryId, ResourcesAlbum *resAlbum)
Definition: ResourceDirWrapper.h:79
-
ResourceEntryWrapper::getChildOffsetToDirectory
offset_t getChildOffsetToDirectory()
Definition: ResourceDirWrapper.cpp:308
+
ResourceEntryWrapper::getChildOffsetToDirectory
offset_t getChildOffsetToDirectory()
Definition: ResourceDirWrapper.cpp:314
ResourceEntryWrapper::FieldID
FieldID
Definition: ResourceDirWrapper.h:70
ResourceEntryWrapper::NONE
@ NONE
Definition: ResourceDirWrapper.h:71
ResourceEntryWrapper::NAME_ID_ADDR
@ NAME_ID_ADDR
Definition: ResourceDirWrapper.h:72
@@ -268,7 +268,7 @@ $(function() {
ResourceEntryWrapper::OFFSET_TO_DATA
@ OFFSET_TO_DATA
Definition: ResourceDirWrapper.h:73
ResourceEntryWrapper::getPtr
virtual void * getPtr()
Definition: ResourceDirWrapper.h:90
ResourceEntryWrapper::getSubFieldsCount
virtual size_t getSubFieldsCount()
Definition: ResourceDirWrapper.h:95
-
ResourceEntryWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ResourceDirWrapper.cpp:206
+
ResourceEntryWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
Definition: ResourceDirWrapper.cpp:212
ResourceEntryWrapper::getSize
virtual bufsize_t getSize()
Definition: ResourceDirWrapper.h:91
ResourceLeafWrapper
Definition: ResourceLeafWrapper.h:10
ResourcesAlbum
Definition: ResourcesAlbum.h:27
diff --git a/_resource_leaf_wrapper_8h_source.html b/_resource_leaf_wrapper_8h_source.html index 05950504..16ae5fe8 100644 --- a/_resource_leaf_wrapper_8h_source.html +++ b/_resource_leaf_wrapper_8h_source.html @@ -136,13 +136,13 @@ $(function() {
Executable::NOT_ADDR
@ NOT_ADDR
Definition: Executable.h:36
Executable::RVA
@ RVA
Definition: Executable.h:38
ResourceLeafWrapper
Definition: ResourceLeafWrapper.h:10
-
ResourceLeafWrapper::leafEntryPtr
IMAGE_RESOURCE_DATA_ENTRY * leafEntryPtr()
Definition: ResourceDirWrapper.cpp:335
+
ResourceLeafWrapper::leafEntryPtr
IMAGE_RESOURCE_DATA_ENTRY * leafEntryPtr()
Definition: ResourceDirWrapper.cpp:341
ResourceLeafWrapper::getExe
Executable * getExe()
Definition: ResourceLeafWrapper.h:42
-
ResourceLeafWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField)
Definition: ResourceDirWrapper.cpp:343
+
ResourceLeafWrapper::getFieldPtr
virtual void * getFieldPtr(size_t fieldId, size_t subField)
Definition: ResourceDirWrapper.cpp:349
ResourceLeafWrapper::getFieldsCount
virtual size_t getFieldsCount()
Definition: ResourceLeafWrapper.h:31
ResourceLeafWrapper::getPtr
virtual void * getPtr()
Definition: ResourceLeafWrapper.h:27
ResourceLeafWrapper::offset
offset_t offset
Definition: ResourceLeafWrapper.h:45
-
ResourceLeafWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ResourceDirWrapper.cpp:357
+
ResourceLeafWrapper::getFieldName
virtual QString getFieldName(size_t fieldId)
Definition: ResourceDirWrapper.cpp:363
ResourceLeafWrapper::FieldID
FieldID
Definition: ResourceLeafWrapper.h:13
ResourceLeafWrapper::NONE
@ NONE
Definition: ResourceLeafWrapper.h:14
ResourceLeafWrapper::FIELD_COUNTER
@ FIELD_COUNTER
Definition: ResourceLeafWrapper.h:19
diff --git a/class_export_dir_wrapper.html b/class_export_dir_wrapper.html index 3e14e4de..2125fb3a 100644 --- a/class_export_dir_wrapper.html +++ b/class_export_dir_wrapper.html @@ -509,7 +509,7 @@ Here is the call graph for this function:
-

Definition at line 152 of file ExportDirWrapper.cpp.

+

Definition at line 158 of file ExportDirWrapper.cpp.

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

Reimplemented from ExeElementWrapper.

-

Definition at line 140 of file ExportDirWrapper.cpp.

+

Definition at line 146 of file ExportDirWrapper.cpp.

@@ -687,25 +687,27 @@ Here is the call graph for this function:
- - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + +
@@ -820,7 +822,7 @@ Here is the call graph for this function:
-

Definition at line 167 of file ExportDirWrapper.cpp.

+

Definition at line 173 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.map b/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.map index b1a90f5e..de03742c 100644 --- a/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.map +++ b/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.map @@ -1,21 +1,23 @@ - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.md5 b/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.md5 index 94c701f7..6037ffb7 100644 --- a/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.md5 +++ b/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.md5 @@ -1 +1 @@ -9d43ca538158f20b105fb787f0e08873 \ No newline at end of file +04e39848b9c2db8152ef1b5fd4f5011b \ No newline at end of file diff --git a/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.png b/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.png index 53b284a6..d3c73359 100644 Binary files a/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.png and b/class_export_dir_wrapper_abea9799a36fcd5d0c2fb9589e47418c4_cgraph.png differ diff --git a/class_export_entry_wrapper.html b/class_export_entry_wrapper.html index 91c2853f..ca47011b 100644 --- a/class_export_entry_wrapper.html +++ b/class_export_entry_wrapper.html @@ -471,7 +471,7 @@ Additional Inherited Members

Implements ExeNodeWrapper.

-

Definition at line 228 of file ExportDirWrapper.cpp.

+

Definition at line 234 of file ExportDirWrapper.cpp.

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

Implements ExeElementWrapper.

-

Definition at line 179 of file ExportDirWrapper.cpp.

+

Definition at line 185 of file ExportDirWrapper.cpp.

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

Definition at line 301 of file ExportDirWrapper.cpp.

+

Definition at line 307 of file ExportDirWrapper.cpp.

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

Definition at line 290 of file ExportDirWrapper.cpp.

+

Definition at line 296 of file ExportDirWrapper.cpp.

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

Definition at line 282 of file ExportDirWrapper.cpp.

+

Definition at line 288 of file ExportDirWrapper.cpp.

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

Definition at line 237 of file ExportDirWrapper.cpp.

+

Definition at line 243 of file ExportDirWrapper.cpp.

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

Implements ExeElementWrapper.

-

Definition at line 215 of file ExportDirWrapper.cpp.

+

Definition at line 221 of file ExportDirWrapper.cpp.

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

Definition at line 245 of file ExportDirWrapper.cpp.

+

Definition at line 251 of file ExportDirWrapper.cpp.

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

Implements ExeElementWrapper.

-

Definition at line 201 of file ExportDirWrapper.cpp.

+

Definition at line 207 of file ExportDirWrapper.cpp.

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

Definition at line 209 of file ExportDirWrapper.cpp.

+

Definition at line 215 of file ExportDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_file_hdr_wrapper.html b/class_file_hdr_wrapper.html index 616f75bf..210501d8 100644 --- a/class_file_hdr_wrapper.html +++ b/class_file_hdr_wrapper.html @@ -403,7 +403,7 @@ Additional Inherited Members

Reimplemented from ExeElementWrapper.

-

Definition at line 156 of file FileHdrWrapper.cpp.

+

Definition at line 162 of file FileHdrWrapper.cpp.

@@ -434,6 +434,28 @@ Additional Inherited Members

Implements ExeElementWrapper.

Definition at line 142 of file FileHdrWrapper.cpp.

+
+Here is the call graph for this function:
+
+
+ + + + + + + + + + + + + + + + + +
@@ -778,24 +800,35 @@ Here is the call graph for this function:

Reimplemented from ExeElementWrapper.

-

Definition at line 161 of file FileHdrWrapper.cpp.

+

Definition at line 167 of file FileHdrWrapper.cpp.

Here is the call graph for this function:
- - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.map b/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.map index 3deb1bfc..f70953e3 100644 --- a/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.map +++ b/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.map @@ -1,14 +1,25 @@ - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.md5 b/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.md5 index 26be9af8..7c5ed0ba 100644 --- a/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.md5 +++ b/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.md5 @@ -1 +1 @@ -16c213dfd67f1011439b448b4b31fbcb \ No newline at end of file +ad85b166b654d0336e957ce878ff3210 \ No newline at end of file diff --git a/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.png b/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.png index 03f1d633..5d1f38b9 100644 Binary files a/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.png and b/class_file_hdr_wrapper_a0de6339250f5c01a465fc7751db042f9_cgraph.png differ diff --git a/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.map b/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.map new file mode 100644 index 00000000..c5d78afc --- /dev/null +++ b/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.md5 b/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.md5 new file mode 100644 index 00000000..addfb237 --- /dev/null +++ b/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.md5 @@ -0,0 +1 @@ +ba233c559c71bcc57ea779b05ab26181 \ No newline at end of file diff --git a/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.png b/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.png new file mode 100644 index 00000000..8dcdbd3d Binary files /dev/null and b/class_file_hdr_wrapper_a5f6abbb890ecd0d22c633c10e1e5bc30_cgraph.png differ diff --git a/class_resource_dir_wrapper.html b/class_resource_dir_wrapper.html index 9623febf..fb9cd4e5 100644 --- a/class_resource_dir_wrapper.html +++ b/class_resource_dir_wrapper.html @@ -614,8 +614,22 @@ Here is the call graph for this function:
- - + + + + + + + + + + + + + + + +
diff --git a/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.map b/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.map index 88f97b64..21485739 100644 --- a/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.map +++ b/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.map @@ -1,4 +1,18 @@ - - + + + + + + + + + + + + + + + + diff --git a/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.md5 b/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.md5 index b46be66e..c0377efc 100644 --- a/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.md5 +++ b/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.md5 @@ -1 +1 @@ -179d20ca28229d563dedc85b1d819e33 \ No newline at end of file +d756f8f5068baf25439105190aed7d45 \ No newline at end of file diff --git a/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.png b/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.png index e8b302f5..fc2f0d90 100644 Binary files a/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.png and b/class_resource_dir_wrapper_a3d3cfc07e23d3351fc712edeeb977159_cgraph.png differ diff --git a/class_resource_entry_wrapper.html b/class_resource_entry_wrapper.html index a4429260..590897f3 100644 --- a/class_resource_entry_wrapper.html +++ b/class_resource_entry_wrapper.html @@ -556,7 +556,7 @@ Here is the call graph for this function:

Reimplemented from ExeNodeWrapper.

-

Definition at line 161 of file ResourceDirWrapper.cpp.

+

Definition at line 167 of file ResourceDirWrapper.cpp.

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

Definition at line 320 of file ResourceDirWrapper.cpp.

+

Definition at line 326 of file ResourceDirWrapper.cpp.

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

Definition at line 308 of file ResourceDirWrapper.cpp.

+

Definition at line 314 of file ResourceDirWrapper.cpp.

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

Definition at line 191 of file ResourceDirWrapper.cpp.

+

Definition at line 197 of file ResourceDirWrapper.cpp.

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

Implements ExeNodeWrapper.

-

Definition at line 220 of file ResourceDirWrapper.cpp.

+

Definition at line 226 of file ResourceDirWrapper.cpp.

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

Implements ExeElementWrapper.

-

Definition at line 206 of file ResourceDirWrapper.cpp.

+

Definition at line 212 of file ResourceDirWrapper.cpp.

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

Definition at line 299 of file ResourceDirWrapper.cpp.

+

Definition at line 305 of file ResourceDirWrapper.cpp.

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

Definition at line 247 of file ResourceDirWrapper.cpp.

+

Definition at line 253 of file ResourceDirWrapper.cpp.

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

Definition at line 260 of file ResourceDirWrapper.cpp.

+

Definition at line 266 of file ResourceDirWrapper.cpp.

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

Definition at line 231 of file ResourceDirWrapper.cpp.

+

Definition at line 237 of file ResourceDirWrapper.cpp.

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

Definition at line 239 of file ResourceDirWrapper.cpp.

+

Definition at line 245 of file ResourceDirWrapper.cpp.

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

Definition at line 270 of file ResourceDirWrapper.cpp.

+

Definition at line 276 of file ResourceDirWrapper.cpp.

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

Reimplemented from ExeNodeWrapper.

-

Definition at line 170 of file ResourceDirWrapper.cpp.

+

Definition at line 176 of file ResourceDirWrapper.cpp.

Here is the call graph for this function:
diff --git a/class_resource_leaf_wrapper.html b/class_resource_leaf_wrapper.html index 0f70bbd5..600bef63 100644 --- a/class_resource_leaf_wrapper.html +++ b/class_resource_leaf_wrapper.html @@ -526,7 +526,7 @@ Additional Inherited Members

Implements ExeNodeWrapper.

-

Definition at line 357 of file ResourceDirWrapper.cpp.

+

Definition at line 363 of file ResourceDirWrapper.cpp.

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

Implements ExeElementWrapper.

-

Definition at line 343 of file ResourceDirWrapper.cpp.

+

Definition at line 349 of file ResourceDirWrapper.cpp.

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

Definition at line 335 of file ResourceDirWrapper.cpp.

+

Definition at line 341 of file ResourceDirWrapper.cpp.

Here is the call graph for this function: