Exemplo n.º 1
0
    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])
Exemplo n.º 2
0
    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])