diff options
| author | Theofilos Augoustis <theofilos.augoustis@gmail.com> | 2023-12-31 18:29:31 +0100 |
|---|---|---|
| committer | Theofilos Augoustis <theofilos.augoustis@gmail.com> | 2023-12-31 18:29:31 +0100 |
| commit | eae0b3b08bd078ad2f621ce2ef201e656da3f16a (patch) | |
| tree | eb93252f39543c46146297264ff548d9925178e0 /focaccia.py | |
| parent | d26ae0a7d583da5034cd6271f953b6253119ceae (diff) | |
| download | focaccia-eae0b3b08bd078ad2f621ce2ef201e656da3f16a.tar.gz focaccia-eae0b3b08bd078ad2f621ce2ef201e656da3f16a.zip | |
Refactor project structure
Read concrete state on demand during concolic exec During concolic tracing, don't record full program snapshots at each basic block, but instead read concrete values directly from the concrete target when they are needed.
Diffstat (limited to '')
| -rwxr-xr-x | focaccia.py (renamed from main.py) | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/main.py b/focaccia.py index 3167bbd..e140337 100755 --- a/main.py +++ b/focaccia.py @@ -4,14 +4,14 @@ import argparse import platform from typing import Iterable -from arch import x86 -from compare import compare_simple, compare_symbolic, \ - ErrorSeverity, ErrorTypes -from lldb_target import LLDBConcreteTarget -from parser import parse_arancini -from snapshot import ProgramState -from symbolic import SymbolicTransform, collect_symbolic_trace -from utils import check_version, print_separator +from focaccia.arch import x86 +from focaccia.compare import compare_simple, compare_symbolic, \ + ErrorSeverity, ErrorTypes +from focaccia.lldb_target import LLDBConcreteTarget +from focaccia.parser import parse_arancini +from focaccia.snapshot import ProgramState +from focaccia.symbolic import SymbolicTransform, collect_symbolic_trace +from focaccia.utils import print_separator def run_native_execution(oracle_program: str, breakpoints: Iterable[int]): """Gather snapshots from a native execution via an external debugger. @@ -175,7 +175,7 @@ def main(): assert(program is not None) print(f'Tracing {program} symbolically with arguments {prog_args}...') - transforms = collect_symbolic_trace(program, [program, *prog_args]) + transforms = collect_symbolic_trace(program, prog_args) txl, transforms = match_traces(txl, transforms) result = compare_symbolic(txl, transforms) else: @@ -183,6 +183,5 @@ def main(): print_result(result, verbosity[args.error_level]) -if __name__ == "__main__": - check_version('3.7') +if __name__ == '__main__': main() |