aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Lee <alee14498@protonmail.com>2024-10-27 18:08:31 -0400
committerAndrew Lee <alee14498@protonmail.com>2024-10-27 18:08:31 -0400
commit42bb82fd415e44151a7869a18a1819875473abcb (patch)
tree07e81b429955911db47e761efcc96be9f375e5bf
downloadvmware-secureboot-sign-linux-42bb82fd415e44151a7869a18a1819875473abcb.tar.gz
vmware-secureboot-sign-linux-42bb82fd415e44151a7869a18a1819875473abcb.tar.bz2
vmware-secureboot-sign-linux-42bb82fd415e44151a7869a18a1819875473abcb.zip
Initial commit
-rw-r--r--.gitignore1
-rw-r--r--README.md8
-rwxr-xr-xgen-key.sh10
-rwxr-xr-xsign.sh20
4 files changed, 39 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9c97c08
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+MOK.*
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..63574ff
--- /dev/null
+++ b/README.md
@@ -0,0 +1,8 @@
+# VMware Secure Boot Sign
+This will sign vmmon.ko and vmnet.ko files on the kernel.
+
+Tested on Fedora 40. May not work on other distros.
+
+
+# How to run
+First run `gen-key.sh` then `sign.sh`
diff --git a/gen-key.sh b/gen-key.sh
new file mode 100755
index 0000000..865c7fb
--- /dev/null
+++ b/gen-key.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+if [[ $EUID -ne 0 ]]; then
+ echo "This script must be run as root. Exiting."
+ exit 1
+fi
+
+openssl req -new -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -x509 -days 36500 -subj "/CN=VMware Module Signing Key"
+mokutil --import MOK.der
+
+echo "Reboot your computer"
diff --git a/sign.sh b/sign.sh
new file mode 100755
index 0000000..58d7618
--- /dev/null
+++ b/sign.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+if [[ $EUID -ne 0 ]]; then
+ echo "This script must be run as root. Exiting."
+ exit 1
+fi
+
+/usr/src/kernels/$(uname -r)/scripts/sign-file \
+ sha256 \
+ MOK.priv \
+ MOK.der \
+ /lib/modules/$(uname -r)/misc/vmmon.ko
+echo "Signed vmmon"
+/usr/src/kernels/$(uname -r)/scripts/sign-file \
+ sha256 \
+ MOK.priv \
+ MOK.der \
+ /lib/modules/$(uname -r)/misc/vmnet.ko
+echo "Signed vmnet"
+
+modprobe vmmon