def _decode_data(self, key, value): child = Layer(True) child.parent = self.layer child.name = key child.add_header({'http_header_name': key}) child.raw_data = value child.lines = [value] self.layer.add_extracted_layer(child)
def _decode_data(self, obj): from flatten_json import flatten flat = flatten(obj, ';') for key in flat: child = Layer(True) child.parent = self.layer child.raw_data = flat[key] child.lines = [child.raw_data] self.layer.add_extracted_layer(child)
def _decode(self, data, **metadata): try: data = http.multipart.decode({}, data) self.layer.lines = [] for (k, v) in data: child = Layer(True) child.human_readable = True child.parent = self.layer child.raw_data = v child.name = k child.lines = [v] self.layer.lines.append('%s' % v) self.layer.add_extracted_layer(child) except Exception as e: raise ValueError("[Phorcys] Failed to parse input.")
def _decode_data(self): prev = [] for ll in self.layer.lines: l = ll.strip() if '{' in l: name = l[:l.find('{')] prev.append(name.strip()) elif ':' in l: name = l[:l.find(':')] prefix = ';'.join(prev) value = l[l.find(':') + 1:] child = Layer(True) child.parent = self.layer child.raw_data = '%s;%s=%s' % (prefix.strip(), name.strip(), value.strip()) child.lines = [child.raw_data] self.layer.add_extracted_layer(child) elif '}' in l: prev.pop()
def _decode(self, data, **metadata): try: if type(data) is not str: data = data.decode("ascii", "strict") if not data.startswith('http'): raise ValueError("[Phorcys] Failed to parse input.") data = url.decode(data) if not data: raise ValueError("[Phorcys] Failed to parse input.") for (k, v) in data: child = Layer(True) child.human_readable = True child.parent = self.layer child.raw_data = v child.name = k child.lines = [v] self.layer.lines.append('%s=%s' % (k, v)) self.layer.add_extracted_layer(child) except: raise ValueError("[Phorcys] Failed to parse input.")