SymFit is a symbolic execution framework for analyzing binaries, supporting multiple backends such as SymCC and SymSan. This document provides instructions for building and running SymFit using Docker.
Navigate to the root directory containing the Dockerfile, then build the image:
docker build -t symfit_env .Enter the run folder and launch the container:
cd run
./launch.shOnce inside the container:
- Clone the SymFit main repository:
cd /workdir
git clone https://github.com/bitsecurerlab/symfit.git- Clone the required backend repositories:
# SymCC backend
git clone https://github.com/bitsecurerlab/symcc.git
# SymSan backend
git clone https://github.com/bitsecurerlab/symsan.gitIf submodules are used, run:
git submodule update --init --recursive
- Create the following build directories inside the workdir:
mkdir -p symcc_build symfit_symcc_build symsan_build symfit_symsan_buildUse the provided compile.sh script to build components.
Compile a specific target:
./compile.sh --symfit_symccCompile multiple components:
./compile.sh --symcc --symfit_symcc--symcc: Compile SymCC--symsan: Compile SymSan--symfit_symcc: Compile SymFit with SymCC backend--symfit_symsan: Compile SymFit with SymSan backend
Note: If errors occur when using
--symfit_*options, you may need to modifycompile.shto append the following:
--symsan-source=/workdir/symsan \
--symsan-build=/workdir/symsan_build \
--symcc-source=/workdir/symcc \
--symcc-build=/workdir/symcc_build \