No estoy convencido de que funcione incluso con JNI.
En el caso de "interceptar" cuando el SO inicia un nuevo proceso (o escribe en un archivo o lo que sea), necesita escribir algún tipo de controlador o módulo kernel que enganche en el sistema operativo. Ese controlador/módulo está ciertamente escrito en código nativo compilado. Entonces, el sistema operativo es el que está a cargo aquí, y eventualmente llamará a su módulo nativo.
Así que, como yo lo veo, Java ni siquiera está involucrado aquí.
Ese es el enfoque básico de todos modos. Puede ser posible usando algo como pam
en Linux, que es configurable para hacer casi cualquier cosa relacionada con la seguridad y los permisos de archivo/proceso y puede llamar a otros procesos para hacer sus pujas. Parece exagerado para ejecutar una instancia de JVM para cada nuevo proceso que el sistema operativo intenta iniciar.
Por favor, no. Técnicamente, esto es posible incluso con PHP. – pestilence669
Probablemente sería lo mismo con C#. Tal vez un poco más fácil, pero igual tendrías que escribir más código de bajo nivel que C#. –