Setup (Docker)
Setting up TSFFS using Docker is the recommended way to use TSFFS externally to Intel, and is the best way for all new users of TSFFS to get familiar with the build process, tools and configurations available.
For In-Docker Use
If you intend to use TSFFS inside a container, use the Dockerfile
in the repository.
Setting up and using tsffs
using the provided Dockerfile is only a few simple steps:
- Install Docker following the directions for your OS from docker.com.
- Clone this repository:
git clone https://github.com/intel/tsffs/ && cd tsffs
- Build the container (this will take some time):
docker build -t tsffs .
- Run the container:
docker run -it tsffs
The provided base container will prompt you to run the included sample. Feel free to customize the provided script and target -- any non-platform-specific UEFI application can be fuzzed with this container!
For Out-Of-Docker Use
Install ISPM
First, you'll need to install ISPM. External users can install it from the public release:
curl --noproxy '*.intel.com' -L -o $HOME/Downloads/ispm.tar.gz \
"https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ead79ef5-28b5-48c7-8d1f-3cde7760798f/intel-simics-package-manager-1.8.3-linux64.tar.gz"
mkdir -p $HOME/simics/ispm/
tar -C $HOME/simics/ispm --strip-components=1 -xf $HOME/Downloads/ispm.tar.gz
Next, we add $HOME/simics/ispm
to our PATH
by adding a line to our .bashrc
or
.zshrc
. You need not configure both shells, only configure the shell you plan to use
ispm
in.
bash
:
echo 'PATH="${PATH}:${HOME}/simics/ispm/"' >> $HOME/.bashrc
source $HOME/.bashrc
zsh
:
echo 'PATH="${PATH}:${HOME}/simics/ispm/"' >> $HOME/.zshrc
source $HOME/.zshrc
ISPM is installed. You can check that it is installed and working with:
ispm --version
Build and Install TSFFS
If you want to use a container to build TSFFS, but you want to run it on your own machine, you can run the build script to build TSFFS in a container, then install it with ISPM.
./scripts/build.sh
This script will produce a directory packages
with an ISPM file
simics-pkg-31337*.ispm
. You can install this package with:
ispm packages -i packages/*.ispm --trust-insecure-packages