Files
ctf/2025/google/misc-bpfbox/flake.nix
2025-09-20 21:10:36 +02:00

52 lines
1.2 KiB
Nix

{
description = "bpfbox";
inputs = {
nixpkgs.url = "nixpkgs/nixos-25.05";
};
outputs = { self, nixpkgs }:
let
pkgs = import nixpkgs { system = "x86_64-linux"; };
lib = pkgs.lib;
init = pkgs.buildGoModule {
name = "init";
vendorHash = null;
src = ./init;
};
initrdEnv = pkgs.buildEnv {
name = "initrd-env";
paths = with pkgs; [
pkgsStatic.busybox
bpftrace
init
];
pathsToLink = [
"/bin"
];
};
kernel = pkgs.linuxPackages.kernel;
initrd = pkgs.makeInitrdNG {
name = "initramfs";
contents = [
{ source = "${initrdEnv}/bin"; target = "/bin"; }
{ source = ./flag.txt; target = "/flag.txt"; }
{ source = "${initrdEnv}/bin/init"; target = "/init"; }
];
};
in
{
packages.x86_64-linux.default = pkgs.stdenvNoCC.mkDerivation {
name = "bpfbox";
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out
cp ${initrd}/initrd.gz $out/
cp ${kernel}/bzImage $out/
'';
};
};
}