about summary refs log tree commit diff
path: root/patches/fuzzolic-unbundle.patch
blob: 803f621464d212c09e6753a27433f4602bdba390 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
commit 24044a2d0341cfdd3c7cc7320cbbd49591ef28ce
Author: Nguyễn Gia Phong <cnx@loang.net>
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()