You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
3 hours ago | |
---|---|---|
.github/workflows | 22 hours ago | |
cache | 2 weeks ago | |
config | 7 days ago | |
container | 4 days ago | |
distro | 3 hours ago | |
docs | 3 months ago | |
examples | 2 weeks ago | |
fs | 1 week ago | |
kernel | 1 week ago | |
qemu | 22 hours ago | |
tools | 1 week ago | |
.gitignore | 2 weeks ago | |
CHANGELOG.md | 2 months ago | |
LICENSE | 5 years ago | |
README.md | 2 weeks ago | |
container.go | 3 weeks ago | |
db.go | 1 week ago | |
debug.go | 1 week ago | |
default.nix | 2 weeks ago | |
distro.go | 4 days ago | |
flake.lock | 2 weeks ago | |
flake.nix | 2 weeks ago | |
gen.go | 2 weeks ago | |
go.mod | 1 week ago | |
go.sum | 3 weeks ago | |
gomod2nix.toml | 2 weeks ago | |
images.go | 1 week ago | |
kernel.go | 22 hours ago | |
log.go | 1 week ago | |
main.go | 2 weeks ago | |
pack.go | 23 hours ago | |
pew.go | 3 hours ago | |
preload.go | 1 week ago | |
shell.nix | 2 weeks ago |
README.md
out-of-tree
out-of-tree is the kernel {module, exploit} development tool.
out-of-tree was created to reduce the complexity of the environment for developing, testing and debugging Linux kernel exploits and out-of-tree kernel modules (hence the name "out-of-tree").
Installation
GNU/Linux (with Nix)
sudo apt install podman || sudo dnf install podman
curl -L https://nixos.org/nix/install | sh
mkdir -p ~/.config/nix
echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf
# stable
nix profile install nixpkgs#out-of-tree
# latest
nix profile install git+https://code.dumpstack.io/tools/out-of-tree
macOS
Note: case-sensitive FS is required for the ~/.out-of-tree directory.
$ brew install podman
$ podman machine stop || true
$ podman machine rm || true
$ podman machine init --cpus=4 --memory=4096 -v $HOME:$HOME
$ podman machine start
$ brew tap out-of-tree/repo
$ brew install out-of-tree
Read documentation for further info.
Examples
Generate all Ubuntu 22.04 kernels:
$ out-of-tree kernel genall --distro=Ubuntu --ver=22.04
Run tests based on .out-of-tree.toml definitions:
$ out-of-tree pew
Test with a specific kernel:
$ out-of-tree pew --kernel='Ubuntu:5.4.0-29-generic'
Run debug environment:
$ out-of-tree debug --kernel='Ubuntu:5.4.0-29-generic'