Kernel source codes used in this project are in the other reprository
which is included as a submodule. To initialize the submodule one
should execute The Razzer's static analysis is based on the LLVM toolchain and the
SVF static analysis tool. See documents in Razzer's two-phases fuzzing is based on Syzkaller. The deterministic
scheduler is implemented using QEMU/KVM. See documents in
Razzer: Finding Kernel Race Bugs through Fuzzing (IEEE S&P 2019) Razzer: Finding kernel race bugs through fuzzing
Environment setup
$ source scripts/envsetup.sh
scripts/envsetup.sh
sets up necessary environment variables. One
should select the kernel version during environment setup, for
example, v4.17
. Install
Initialize kernels_repo submodule
git submodule update
command as a follow.$ git submodule update --init --depth=1 kernels_repo
Dependencies
$ sudo apt install zlib libglib-dev python-setuptools quilt libssl-dev dwarfdump
Install toolchains / tools
$ scripts/install.sh
scripts/install.sh
then installs all the rest necessary toolchains and tools. Static analysis
docs/static-analysis.md
. Fuzzing
docs/fuzzing.md
. Paper
Trophies
Contributors