Как описано в документации к ядру, вы можете изменить путь выполнения, изменив соответствующий регистр (например, IP-регистр в x86):
Changing Execution Path
-----------------------
Since kprobes can probe into a running kernel code, it can change the
register set, including instruction pointer. This operation requires
maximum care, such as keeping the stack frame, recovering the execution
path etc. Since it operates on a running kernel and needs deep knowledge
of computer architecture and concurrent computing, you can easily shoot
your foot.
If you change the instruction pointer (and set up other related
registers) in pre_handler, you must return !0 so that kprobes stops
single stepping and just returns to the given address.
This also means post_handler should not be called anymore.
Note that this operation may be harder on some architectures which use
TOC (Table of Contents) for function call, since you have to setup a new
TOC for your function in your module, and recover the old one after
returning from it.
Таким образом, вы можете заблокировать выполнение процессаперепрыгивая через некоторый код.Я не рекомендовал бы это;вы скорее всего вызовете сбой ядра, чем прекратите выполнение нового процесса.
seccomp-bpf, вероятно, лучше подходит для вашего случая использования. Этот ответ StackOverflow дает вам всю информацию, необходимую для использования seccomp-bpf.