diff options
Diffstat (limited to 'intcp/resc')
-rw-r--r-- | intcp/resc/intcp/main.c | 27 | ||||
-rw-r--r-- | intcp/resc/intcp/udevmon.yaml | 4 | ||||
-rwxr-xr-x | intcp/resc/run/00-intcp | 9 |
3 files changed, 40 insertions, 0 deletions
diff --git a/intcp/resc/intcp/main.c b/intcp/resc/intcp/main.c new file mode 100644 index 0000000..383ef5b --- /dev/null +++ b/intcp/resc/intcp/main.c @@ -0,0 +1,27 @@ +#include <stdio.h> +#include <stdlib.h> +#include <linux/input.h> + +int main(void) { + setbuf(stdin, NULL); setbuf(stdout, NULL); + + struct input_event event; + while (fread(&event, sizeof(event), 1, stdin)) { + if (event.type == EV_KEY) { + switch (event.code) { + case KEY_CAPSLOCK: + event.code = KEY_LEFTCTRL; + break; + case KEY_LEFTALT: + event.code = KEY_LEFTMETA; + break; + case KEY_102ND: + event.code = KEY_LEFTALT; + break; + } + } + + fwrite(&event, sizeof(event), 1, stdout); + } +} + diff --git a/intcp/resc/intcp/udevmon.yaml b/intcp/resc/intcp/udevmon.yaml new file mode 100644 index 0000000..3733456 --- /dev/null +++ b/intcp/resc/intcp/udevmon.yaml @@ -0,0 +1,4 @@ +- JOB: "intercept -g $DEVNODE | /home/julian/intcp/intcp | uinput -d $DEVNODE" + DEVICE: + EVENTS: + EV_KEY: [ KEY_CAPSLOCK, KEY_LEFTALT, KEY_102ND ] diff --git a/intcp/resc/run/00-intcp b/intcp/resc/run/00-intcp new file mode 100755 index 0000000..eac7900 --- /dev/null +++ b/intcp/resc/run/00-intcp @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -e +set -x +echo Running intcp + +cd ~/resc/intcp + +gcc main.c -o intcp +sudo cp udevmon.yaml /etc/interception/udevmon.yaml |