Beispiel #1
0
    def __run__(self, tasks_queue, stop_flag, queue_wait):
        """[summary]
            사용자가 작성할 run() 함수의 Wrapper

        Arguments:
            tasks_queue {instnace} -- [description] 작업 큐
            stop_flag {instance} -- [description] 프로세스 종료여부 Flag
            queue_wait {int} -- [description] 다음 Queue 확인까지 대기 시간
        """
        try:
            # 전처리
            # Log 초기화
            Log.init(log_name="work",
                     log_level=config.log_level,
                     log_path=config.log_path,
                     log_cmd=config.log_cmd)

            # 처리
            self.run(tasks_queue, stop_flag, queue_wait)

            # 후처리

        except:
            _, msg, obj = sys.exc_info()
            msg = "{} ({}::{})".format(msg, obj.tb_lineno,
                                       obj.tb_frame.f_globals.get("__file__"))
            Log.error(msg)

        finally:
            pass
Beispiel #2
0
    def __run__(self, scanResult, scanObject):
        """[summary]
            분석 엔진 run() 의 Wrapper

        Arguments:
            scanResult {instance} -- [description] ScanResult 인스턴스
            scanObject {instance} -- [description] ScanObject 인스턴스
        """
        error = False
        err_msg = ""
        try:
            # Log 초기화
            Log.init(log_name=self.__engine__.split(".")[-1],
                     log_level=config.log_level,
                     log_path=config.log_path,
                     log_cmd=config.log_cmd)

            # Log.info("{} : {}".format(self.__engine__, scanObject.get_file_name()))
            Log.info(self.__engine__)

            # 전처리
            # 호출 모듈명을 저장한다.
            scanObject.updateScanModule(self.__engine__)

            # 상태를 변경한다.
            # monitoring.__analyzing__(scanObject)

            # 분석
            self.run(scanResult, scanObject)

            # 후처리

        except:
            # 에러로그를 작성한다.
            _, msg, obj = sys.exc_info()
            msg = "{} ({}::{})".format(msg, obj.tb_lineno,
                                       obj.tb_frame.f_globals.get("__file__"))
            Log.error(msg)

            # 에러 상태를 업데이트한다.
            error = True
            err_msg = msg

        finally:
            scanObject.updateResult(error, err_msg)
Beispiel #3
0
    def __run__(self, task_queue, result_queue):
        error = False
        err_msg = ""
        try:
            # Log 초기화
            Log.init(log_name=self.__engine__.split(".")[1],
                     log_level=config.log_level,
                     log_path=config.log_path,
                     log_cmd=config.log_cmd)

            # 전처리
            # Job을 가져온다.
            scanResult, scanObject = task_queue.get()

            # 호출 모듈명을 저장한다.
            scanObject.updateScanModule(self.__engine__)

            # 상태를 변경한다.
            monitoring.__analyzing__(scanObject)

            # 분석
            self.run(scanResult, scanObject)

        except:
            # 에러로그를 작성한다.
            _, msg, obj = sys.exc_info()
            msg = "{} ({}::{})".format(msg, obj.tb_lineno,
                                       obj.tb_frame.f_globals.get("__file__"))
            Log.error(msg)

            # 에러 상태를 업데이트한다.
            error = True
            err_msg = msg

        finally:
            # 후처리
            # 분석 결과를 저장한다.
            scanObject.updateResult(error, err_msg)

            # 분석 결과를 반환한다.
            dict_data = scanObject.to_dict()
            serialized_data = utils.convert_dict2serialize(dict_data)
            result_queue.put(utils.compress(serialized_data))
Beispiel #4
0
        return None, None

    finally:
        pass


if __name__ == "__main__":
    try:
        # 외부 설정 정보 가져오기
        parser, args = parse_argument()
        if parser is None or args is None:
            raise SystemExit

        # 로그 설정
        Log.init(log_level=config.log_level,
                 log_path=config.log_path,
                 log_cmd=config.log_cmd)

        # 시작 로그
        Log.info("[*] start")

        # 메인함수 시작
        jobs.start(args)

        # 종료 로그
        Log.info("[*] done")

    except SystemExit:
        pass

    except: