1
0
out-of-tree kernel {module, exploit} development tool
Go to file
2024-10-17 22:03:01 +00:00
.github/workflows ci: generate CentOS images 2024-10-17 22:03:01 +00:00
api feat(api): job description 2024-05-11 14:42:44 +00:00
artifact feat: more logs by default 2024-10-09 18:54:25 +00:00
cache refactor: remove ioutil 2024-02-20 12:44:35 +00:00
client fix(client): set push.default=current for git 2024-10-09 18:57:25 +00:00
cmd fix: use text ok/fail in log query 2024-10-09 09:54:23 +00:00
config feat!: prepend/append commands to dockerfile 2024-10-06 16:11:29 +00:00
container fix(container): prevent base image pull for non-registry containers 2024-10-17 12:28:53 +00:00
daemon feat: realtime output 2024-10-08 08:43:37 +00:00
distro fix(container): prevent base image pull for non-registry containers 2024-10-17 12:28:53 +00:00
docs docs: add .readthedocs.yaml 2024-02-22 13:06:05 +00:00
examples fix: remove spaces from examples names 2024-02-20 14:30:17 +00:00
fs feat: initial daemon implementation 2024-02-20 13:25:31 +00:00
kernel refactor: logs 2024-05-23 11:22:13 +00:00
qemu fix: trim control commands from qemu logs 2024-10-08 22:36:12 +00:00
tools ci: generate CentOS images 2024-10-17 22:03:01 +00:00
.gitignore build: nix flakes 2023-05-16 11:47:17 +00:00
.readthedocs.yaml docs: add .readthedocs.yaml 2024-02-22 13:06:05 +00:00
CHANGELOG.md Update changelog 2023-04-07 21:38:30 +00:00
default.nix feat: initial daemon implementation 2024-02-20 13:25:31 +00:00
flake.lock nix flake update 2024-02-20 14:35:19 +00:00
flake.nix build: add version for flake 2023-05-18 12:53:46 +00:00
go.mod fix: remove toolchain directive 2024-02-20 13:28:43 +00:00
go.sum feat: initial daemon implementation 2024-02-20 13:25:31 +00:00
gomod2nix.toml build: nix flakes 2023-05-16 11:47:17 +00:00
LICENSE Change license to GNU AGPLv3 2018-10-08 20:54:18 +00:00
main.go feat: add command aliases 2024-10-06 15:34:14 +00:00
README.md docs: update examples 2024-10-08 15:03:44 +00:00
shell.nix build: nix flakes 2023-05-16 11:47:17 +00:00

Ubuntu E2E Documentation Status

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

Download all Ubuntu 24.04 kernels:

$ out-of-tree kernel genall --distro-id=Ubuntu --distro-release=24.04

Run tests based on .out-of-tree.toml definitions:

$ out-of-tree pew

Test with a specific kernel:

$ out-of-tree pew --realtime-output  --distro-id=ubuntu --kernel-regex=6.8.0-41-generic

Run debug environment:

$ out-of-tree debug --distro-id=ubuntu --distro-release=24.04 --kernel-regex=6.8.0-41-generic