Легко отключить динамический механизм присоединения HotSpot c во время выполнения - вам просто нужно удалить сокет подключения /tmp/.java_pidPID
(где PID
- идентификатор целевого процесса). Если такого файла нет, сначала активируйте механизм присоединения, запустив jcmd PID VM.version
.
. Однако вряд ли это поможет при сбросе классов.
Если кто-то имеет доступ к системам, в которых работает JVM он, вероятно, может получить доступ к памяти процесса без JVM, даже не зная об этом. Например, Serviceability Agent может читать память JVM без какого-либо сотрудничества с JVM. Подробнее см. это и это .
Существует хитрость , которая затрудняет использование агента по удобству обслуживания, но все же не пуленепробиваема до тех пор, пока у пользователя есть разрешения на доступ к процессу на уровне ОС.
Если вы действительно хотите защитить свой процесс JVM, вы должны делать это с использованием функций безопасности ОС, включая учетные записи пользователей, списки ACL, возможности , cgroups, et c.