[wrong8007] Wrong Boot

docs · installation(1)

Installation

Build requirements, the Makefile targets, loading and removing the module. Everything assumes a standard out-of-tree kernel module build.

Requirements

  • Kernel headers matching the running kernel (linux-headers-$(uname -r) or your distribution's equivalent).
  • gcc, make, standard build tools.
  • Root access to load the module and to write the payload script's permissions correctly.

1. Clone the repository

$ git clone https://github.com/0x48piraj/wrong8007.git
$ cd wrong8007/

2. Build the kernel module

$ make

For verbose logging of keypresses and command execution during development:

$ make EXTRA_CFLAGS=-DDEBUG

Debug builds log matched keystrokes. Do not use -DDEBUG builds for anything beyond local testing; it works against the stealth goals described in Philosophy.

3. Load the module

Every load requires EXEC, an absolute path to an executable payload. The example below runs the bundled test script when the phrase secret phrase is typed:

$ chmod +x tests/test_exec.sh
$ test -f tests/test_exec.sh && make load PHRASE='secret phrase' \
    EXEC="$(realpath tests/test_exec.sh)"

The payload must have execute permission (chmod +x) and must be referenced by an absolute path. Trigger-specific load parameters (USB_DEVICES, MATCH_MAC, HEARTBEAT_HOST, and so on) are documented on activation triggers.

Removing the module

$ make remove   # rmmod wrong8007
$ make clean    # optional: clean build artifacts

On unload, each trigger's exit() runs, then flush_work() waits for any in-flight execution to finish before freeing the module's memory.

Known limitations

  • No DKMS support yet; the module must be rebuilt against each kernel you load it on.
  • No install/uninstall scripts beyond the Makefile targets above.
  • Not packaged for any distribution.