def create_poc_single(folder_name, analysis_name, binary_name, result_name, desc_name, source_name, poc_path): status = OK config_path = os.path.join(folder_name, analysis_name) binary_path = os.path.join(folder_name, binary_name) with open(config_path, "r") as config: gen_pocs(config, binary_path, result_name, desc_name, source_name) poc_path = glob.glob(poc_path)[0] try: cmd = ['make', '-C', poc_path, 'pocs-print'] check_output(cmd, stderr=STDOUT) except CalledProcessError as e: if e.output: logger.error("CalledProcessError: Traceback of running %s:", cmd) logger.error(e.output.decode('utf-8')) status = ERROR msg = "Failed to compile the synthesized concrete source code.\nMost likely the poc-generation created invalid " \ "C. This is a strong indication for ab bug in the poc-generation and most likely has nothing to do with " \ "the symbolic execution in angr. " nose.tools.assert_equal(status, OK, msg) return True
def create_poc_single( folder_name, analysis_name, binary_name, result_name, desc_name, source_name, poc_path, ): config_path = os.path.join(folder_name, analysis_name) binary_path = os.path.join(folder_name, binary_name) with open(config_path, "r") as config: gen_pocs(config, binary_path, result_name, desc_name, source_name) poc_path = glob.glob(poc_path)[0] try: cmd = ["make", "-C", poc_path, "pocs-print"] check_output(cmd, stderr=STDOUT) except CalledProcessError as e: if e.output: logger.error("CalledProcessError: Traceback of running %s:", cmd) logger.error(e.output.decode("utf-8")) msg = ( "Failed to compile the synthesized concrete source code.\nMost likely the poc-generation created invalid " "C. This is a strong indication for ab bug in the poc-generation and most likely has nothing to do with " "the symbolic execution in angr. " ) assert False, msg return True
def run_poc_gen(config, binary, result, desc, source): gen_pocs(config, binary, result, desc, source) sys.exit(0)