nyx build script updates
diff --git a/docs/Changelog.md b/docs/Changelog.md
index 38dbba8..720a068 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -15,7 +15,7 @@
- workaround for ASAN with gcc_plugin mode
- instrumentation:
- LLVM 18 support, thanks to @devnexen!
- - Injection (SQL, LDAP, XSS) feature now available, see
+ - Injection (SQL, LDAP, XSS) fuzzing feature now available, see
`instrumentation/README.injections.md` how to activate/use/expand.
- compcov/LAF-intel:
- floating point splitting bug fix by @hexcoder
@@ -28,9 +28,9 @@
- plugins are now activated by default and a new module is included that
produces drcov compatible traces for lighthouse/lightkeeper/...
thanks to @JRomainG to submitting!
- - updated Nyx checkout (fixes a bug)
+ - updated Nyx checkout (fixes a bug) and some QOL
- updated the custom grammar mutator
- - document afl-cmin does not work on macOS
+ - document afl-cmin does not work on macOS (but afl-cmin.bash does)
### Version ++4.09c (release)
diff --git a/nyx_mode/build_nyx_support.sh b/nyx_mode/build_nyx_support.sh
index 581a829..454d1e7 100755
--- a/nyx_mode/build_nyx_support.sh
+++ b/nyx_mode/build_nyx_support.sh
@@ -28,6 +28,7 @@
if git status 1>/dev/null 2>&1; then
+ set +e
git submodule init
echo "[*] initializing QEMU-Nyx submodule"
git submodule update ./QEMU-Nyx 2>/dev/null # ignore errors
@@ -35,6 +36,7 @@
git submodule update ./packer 2>/dev/null # ignore errors
echo "[*] initializing libnyx submodule"
git submodule update ./libnyx 2>/dev/null # ignore errors
+ set -e
else
@@ -48,20 +50,57 @@
test -e libnyx/.git || { echo "[-] libnyx not checked out, please install git or check your internet connection." ; exit 1 ; }
test -e QEMU-Nyx/.git || { echo "[-] QEMU-Nyx not checked out, please install git or check your internet connection." ; exit 1 ; }
-echo "[*] checking packer init.cpio.gz ..."
-if [ ! -f "packer/linux_initramfs/init.cpio.gz" ]; then
- (cd packer/linux_initramfs/ && sh pack.sh)
+
+QEMU_NYX_VERSION="$(cat ./QEMU_NYX_VERSION)"
+cd "./QEMU-Nyx" || exit 1
+if [ -n "$NO_CHECKOUT" ]; then
+ echo "[*] Skipping checkout to $QEMU_NYX_VERSION"
+else
+ echo "[*] Checking out $QEMU_NYX_VERSION"
+ set +e
+ sh -c 'git stash' 1>/dev/null 2>/dev/null
+ git pull 1>/dev/null 2>/dev/null
+ git checkout "$QEMU_NYX_VERSION" || echo Warning: could not check out to commit $QEMU_NYX_VERSION
+ set -e
fi
+cd - > /dev/null
+
+PACKER_VERSION="$(cat ./PACKER_VERSION)"
+cd "./packer" || exit 1
+if [ -n "$NO_CHECKOUT" ]; then
+ echo "[*] Skipping checkout to $PACKER_VERSION"
+else
+ echo "[*] Checking out $PACKER_VERSION"
+ set +e
+ sh -c 'git stash' 1>/dev/null 2>/dev/null
+ git pull 1>/dev/null 2>/dev/null
+ git checkout "$PACKER_VERSION" || echo Warning: could not check out to commit $PACKER_VERSION
+ set -e
+fi
+cd - > /dev/null
+
+LIBNYX_VERSION="$(cat ./LIBNYX_VERSION)"
+cd "./libnyx/" || exit 1
+if [ -n "$NO_CHECKOUT" ]; then
+ echo "[*] Skipping checkout to $LIBNYX_VERSION"
+else
+ echo "[*] Checking out $LIBNYX_VERSION"
+ set +e
+ sh -c 'git stash' 1>/dev/null 2>/dev/null
+ git pull 1>/dev/null 2>/dev/null
+ git checkout "$LIBNYX_VERSION" || echo Warning: could not check out to commit $LIBNYX_VERSION
+ set -e
+fi
+cd - > /dev/null
+
+echo "[*] checking packer init.cpio.gz ..."
+(cd packer/linux_initramfs/ && sh pack.sh)
echo "[*] Checking libnyx ..."
-if [ ! -f "libnyx/libnyx/target/release/liblibnyx.a" ]; then
- (cd libnyx/libnyx && cargo build --release)
-fi
+(cd libnyx/libnyx && cargo build --release)
echo "[*] Checking QEMU-Nyx ..."
-if [ ! -f "QEMU-Nyx/x86_64-softmmu/qemu-system-x86_64" ]; then
- (cd QEMU-Nyx && ./compile_qemu_nyx.sh static)
-fi
+(cd QEMU-Nyx && ./compile_qemu_nyx.sh static )
echo "[*] Checking libnyx.so ..."
cp libnyx/libnyx/target/release/liblibnyx.so ../libnyx.so