From 80f0262a02cc74fc5e28b4786edf210aba2e9954 Mon Sep 17 00:00:00 2001 From: Tamas Koczka Date: Mon, 9 Oct 2023 07:53:29 +0000 Subject: [PATCH] kernelCTF: add local runner --- kernelctf/simulator/.gitignore | 5 ++++ kernelctf/simulator/local_runner.sh | 40 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 kernelctf/simulator/.gitignore create mode 100755 kernelctf/simulator/local_runner.sh diff --git a/kernelctf/simulator/.gitignore b/kernelctf/simulator/.gitignore new file mode 100644 index 00000000..6890eaed --- /dev/null +++ b/kernelctf/simulator/.gitignore @@ -0,0 +1,5 @@ +releases/ +ramdisk*.img +rootfs*.img +qemu*.sh +flag \ No newline at end of file diff --git a/kernelctf/simulator/local_runner.sh b/kernelctf/simulator/local_runner.sh new file mode 100755 index 00000000..826ca810 --- /dev/null +++ b/kernelctf/simulator/local_runner.sh @@ -0,0 +1,40 @@ +#!/bin/bash +set -e + +usage() { + echo "Usage: $0 [--root]"; + exit 1; +} + +INIT_FN="/home/user/run.sh" + +ARGS=() +while [[ $# -gt 0 ]]; do + case $1 in + --root) INIT_FN="/bin/bash"; shift;; + -*|--*) echo "Unknown option $1"; exit 1;; + *) ARGS+=("$1"); shift;; + esac +done +set -- "${ARGS[@]}" + +RELEASE_NAME="$1" +if [ -z "$RELEASE_NAME" ]; then usage; fi + +if [ ! -f "qemu_v2.sh" ]; then wget https://storage.googleapis.com/kernelctf-build/files/qemu_v2.sh; fi +chmod u+x qemu_v2.sh + +if [ ! -d "releases/$RELEASE_NAME" ]; then mkdir -p "releases/$RELEASE_NAME"; fi +if [ ! -f "releases/$RELEASE_NAME/bzImage" ]; then + wget -O "releases/$RELEASE_NAME/bzImage" "https://storage.googleapis.com/kernelctf-build/releases/$RELEASE_NAME/bzImage" +fi + +if [ ! -f "rootfs_v1.img" ]; then + wget https://storage.googleapis.com/kernelctf-build/files/rootfs_v1.img.gz + gzip -d rootfs_v1.img.gz +fi + +if [ ! -f "ramdisk_v1.img" ]; then wget https://storage.googleapis.com/kernelctf-build/files/ramdisk_v1.img; fi +if [ ! -f "flag" ]; then echo "kernelCTF{example_flag}" > flag; fi + +exec ./qemu_v2.sh "releases/$RELEASE_NAME" flag "$INIT_FN" \ No newline at end of file