def file2process_parser(self, record: Record, morse: Morse = None) -> np.ndarray((4, 4)): id = record.Id time = record.time subtype = record.subtype srcNode: FileNode destNode: ProcessNode if not gv.exist_fileNode(record.srcId): if record.srcId == -1: return None logger.error("file to process, can't find srcNode " + str(record.srcId)) return None else: srcNode = gv.get_fileNode(record.srcId) if not gv.exist_processNode(record.desId): logger.error("file to process, can't find desNode " + str(record.desId)) return None else: destNode = gv.get_processNode(record.desId) if not srcNode or not destNode: logger.error("file to process, can't find srcNode or destNode " + ' ' + str(record.srcId) + ' ' + str(record.desId)) return None eventArray = [id, time, subtype, 0] srcArray = srcNode.get_matrix_array(4) desArray = destNode.get_matrix_array(4) p1 = morse.get_attenuate_benign() if not isinstance(p1, float): p1 = p1.cpu().detach().numpy() p2 = morse.get_attenuate_susp_env() if not isinstance(p2, float): p2 = p2.cpu().detach().numpy() params = [ p1, p2, morse.get_benign_possibility(srcArray[1]).cpu().detach().numpy(), morse.get_susp_possibility(srcArray[1]).cpu().detach().numpy() ] benign_grad = morse.get_benign_thresh_grad() susp_grad = morse.get_susp_thresh_grad() gv.add_morse_grad(id, np.concatenate([benign_grad, susp_grad])) # print("params: ", params[2].detach().numpy()) return np.array([eventArray, params, srcArray, desArray])
def file2file_parser(self, record: Record, morse: Morse) -> np.ndarray((4, 4)): id = record.Id time = record.time subtype = record.subtype srcNode: FileNode = None destNode: FileNode = None if not gv.exist_fileNode(record.srcId): logger.error("file to file, can't find srcNode" + ' ' + str(record.srcId)) return None else: srcNode = gv.get_fileNode(record.srcId) if not gv.exist_fileNode(record.desId): logger.error("file to file, can't find desNode" + ' ' + str(record.desId)) return None else: destNode = gv.get_fileNode(record.desId) if not srcNode or not destNode: logger.error("file to file, can't find desNode or destNode" + ' ' + str(record.srcId) + ' ' + str(record.desId)) return None eventArray = [id, time, subtype, 0] srcArray = srcNode.get_matrix_array(4) desArray = destNode.get_matrix_array(4) params = [ morse.get_attenuate_benign(), morse.get_attenuate_susp_env(), morse.get_benign_possibility(srcArray[1]), morse.get_susp_possibility(srcArray[1]) ] + [0] * (4 - len(record.params)) benign_grad = morse.get_benign_thresh_grad() susp_grad = morse.get_susp_thresh_grad() gv.add_morse_grad(id, np.concatenate([benign_grad, susp_grad])) return np.array([eventArray, params, srcArray, desArray])