Пример #1
0
 def getResources(self, pe):
     ret = {}
     if hasattr(pe, 'DIRECTORY_ENTRY_RESOURCE'):
         i = 0
         for resource_type in pe.DIRECTORY_ENTRY_RESOURCE.entries:
             if resource_type.name is not None:
                 name = "%s" % resource_type.name
             else:
                 name = "%s" % pefile.RESOURCE_TYPE.get(
                     resource_type.struct.Id)
             if name == None:
                 name = "%d" % resource_type.struct.Id
             if hasattr(resource_type, 'directory'):
                 for resource_id in resource_type.directory.entries:
                     if hasattr(resource_id, 'directory'):
                         for resource_lang in resource_id.directory.entries:
                             data = pe.get_data(
                                 resource_lang.data.struct.OffsetToData,
                                 resource_lang.data.struct.Size)
                             filetype = getFileTypeFromBuffer(data)
                             lang = pefile.LANG.get(resource_lang.data.lang,
                                                    '*unknown*')
                             sublang = pefile.get_sublang_name_for_lang(
                                 resource_lang.data.lang,
                                 resource_lang.data.sublang)
                             ret[i] = (
                                 name,
                                 resource_lang.data.struct.OffsetToData,
                                 resource_lang.data.struct.Size, filetype,
                                 lang, sublang)
                             i += 1
     return ret
Пример #2
0
 def getResources(self, pe):
     ret = []
     if hasattr(pe, 'DIRECTORY_ENTRY_RESOURCE'):
         for resource_type in pe.DIRECTORY_ENTRY_RESOURCE.entries:
             if hasattr(resource_type, 'directory'):
                 for resource_id in resource_type.directory.entries:
                     if hasattr(resource_id, 'directory'):
                         for resource_lang in resource_id.directory.entries:
                             data = pe.get_data(resource_lang.data.struct.OffsetToData, resource_lang.data.struct.Size)
                             filetype = getFileTypeFromBuffer(data)
                             
                             log.debug("Found: " + filetype)
                             
                             if filetype in self.extractTypes:
                                 #TODO: RAR und ZIP entpacken!!!
                                 ret.append(data)
                                 log.info("Append File: " + filetype)
     return ret
Пример #3
0
 def getResources(self, pe):
     ret = {}
     if hasattr(pe, 'DIRECTORY_ENTRY_RESOURCE'):
         i = 0
         for resource_type in pe.DIRECTORY_ENTRY_RESOURCE.entries:
             if resource_type.name is not None:
                 name = "%s" % resource_type.name
             else:
                 name = "%s" % pefile.RESOURCE_TYPE.get(resource_type.struct.Id)
             if name == None:
                 name = "%d" % resource_type.struct.Id
             if hasattr(resource_type, 'directory'):
                 for resource_id in resource_type.directory.entries:
                     if hasattr(resource_id, 'directory'):
                         for resource_lang in resource_id.directory.entries:
                             data = pe.get_data(resource_lang.data.struct.OffsetToData, resource_lang.data.struct.Size)
                             filetype = getFileTypeFromBuffer(data)
                             lang = pefile.LANG.get(resource_lang.data.lang, '*unknown*')
                             sublang = pefile.get_sublang_name_for_lang(resource_lang.data.lang, resource_lang.data.sublang)
                             ret[i] = (name, resource_lang.data.struct.OffsetToData, resource_lang.data.struct.Size, filetype, lang, sublang)
                             i += 1
     return ret