commit 24044a2d0341cfdd3c7cc7320cbbd49591ef28ce Author: Nguyễn Gia Phong Date: 2025-04-29 16:44:20 +0900 Unbundle required utilities diff --git a/fuzzolic/executor.py b/fuzzolic/executor.py index f2639eb8da6a..06d0253a3b07 100644 --- a/fuzzolic/executor.py +++ b/fuzzolic/executor.py @@ -21,14 +21,9 @@ from . import minimizer_qsym from . import minimizer SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) -SOLVER_SMT_BIN = SCRIPT_DIR + '/../solver/solver-smt' -SOLVER_FUZZY_BIN = SCRIPT_DIR + '/../solver/solver-fuzzy' -TRACER_BIN = SCRIPT_DIR + '/../tracer/x86_64-linux-user/qemu-x86_64' - -if 'AFL_PATH' not in os.environ: - AFL_PATH = SCRIPT_DIR + '/../../AFLplusplus/' -else: - AFL_PATH = os.environ['AFL_PATH'] +SOLVER_SMT_BIN = 'solver-smt' +SOLVER_FUZZY_BIN = 'solver-fuzzy' +TRACER_BIN = 'qemu-x86_64' SOLVER_WAIT_TIME_AT_STARTUP = 0.0010 SOLVER_TIMEOUT = 1000 @@ -84,15 +79,12 @@ class Executor(object): sys.exit('ERROR: invalid AFL workdir') self.afl = os.path.abspath(afl) self.minimizer = minimizer_qsym.TestcaseMinimizer( - [binary] + binary_args, AFL_PATH, output_dir, True, input_fixed_name) + [binary] + binary_args, output_dir, True, input_fixed_name) # self.minimizer = minimizer.TestcaseMinimizer([binary] + binary_args, self.global_bitmap) else: self.afl = None - if minimizer_qsym.is_afl_showmap_available(): - self.minimizer = minimizer_qsym.TestcaseMinimizer( - [binary] + binary_args, AFL_PATH, output_dir, True, input_fixed_name) - else: - self.minimizer = minimizer.TestcaseMinimizer([binary] + binary_args, self.global_bitmap) + self.minimizer = minimizer_qsym.TestcaseMinimizer( + [binary] + binary_args, output_dir, True, input_fixed_name) self.afl_processed_testcases = set() self.afl_alt_processed_testcases = set() @@ -126,16 +118,8 @@ class Executor(object): if use_symbolic_models: plt_info_file = self.__get_root_dir() + "/plt_info.txt" - p = subprocess.Popen( - [ - SCRIPT_DIR + "/find_models_addrs.py", - "-o", plt_info_file, - binary - ], - # stderr=subprocess.DEVNULL, - # stdin=subprocess.DEVNULL, - ) - p.wait() + subprocess.run(["fuzzolic-find-models-addrs", + "-o", plt_info_file, binary]) self.plt_info = plt_info_file else: self.plt_info = None diff --git a/fuzzolic/minimizer_qsym.py b/fuzzolic/minimizer_qsym.py index 6d0170577392..1c31df0b9f0a 100644 --- a/fuzzolic/minimizer_qsym.py +++ b/fuzzolic/minimizer_qsym.py @@ -81,15 +81,13 @@ def fix_at_file(cmd, testcase): return cmd, stdin -def is_afl_showmap_available(): - return os.path.exists(os.path.join(SCRIPT_DIR, "../utils/afl-showmap")) class TestcaseMinimizer(object): - def __init__(self, cmd, afl_path, out_dir, qemu_mode, fixed_name, map_size=MAP_SIZE): + def __init__(self, cmd, out_dir, qemu_mode, fixed_name, map_size=MAP_SIZE): self.cmd = cmd self.qemu_mode = qemu_mode - self.showmap = os.path.join(afl_path, "afl-showmap") - self.showmap_fork = os.path.join(SCRIPT_DIR, "../utils/afl-showmap") + self.showmap = "afl-showmap" + self.showmap_fork = "fuzzolic-showmap" self.bitmap_file = os.path.join(out_dir, "afl-bitmap") self.crash_bitmap_file = os.path.join(out_dir, "afl-crash-bitmap") _, self.temp_file = tempfile.mkstemp(dir=out_dir) @@ -225,16 +223,8 @@ class TestcaseMinimizer(object): return interesting def is_interesting_testcase_fork(self, bitmap, my_bitmap_file=None): - if my_bitmap_file is None: - my_bitmap_file = self.bitmap_file - - cmd = [ - SCRIPT_DIR + '/../utils/merge_bitmap', - bitmap, - my_bitmap_file - ] - # print(cmd) - + cmd = ('fuzzolic-merge-bitmap', bitmap, + my_bitmap_file or self.bitmap_file) with open(os.devnull, "wb") as devnull: proc = sp.Popen(cmd, stdin=None, stdout=devnull, stderr=devnull) proc.wait()