Java 응용 프로그램에서 계측 라이브러리를 비활성화하거나 현재 실행중인 응용 프로그램이 있는지 확인할 수 있습니까?계측 라이브러리 사용 안 함
내 목표는 보안상의 이유로 사용자가 응용 프로그램에서 계측 구현을 실행하지 못하도록하는 것입니다.
java.class.path
시스템 등록 정보가 경로 분리 문자 다음에 -javaagent VM 인수 jar 파일의 경로로 끝나는 것을 발견 한 몇 가지 실험 후에 독자적으로 이론적 인 해결책을 제시했습니다. 이 속성에서 클래스 경로 속성 중 하나가 내 프로그램 자체에서 지정하지 않은 외부 jar인지 확인한 다음 외계 항아리가 감지되면 응용 프로그램을 종료 할 수 있습니다.
그러나 위의 방법은 나에게 다소 해로운 것처럼 보일 수 있지만 -javaagent 인수를 직접 차단하는 방법이나 계측 에이전트 라이브러리를 찾는 간단한 방법을 찾을 수 없었습니다. 이러한 더 깨끗한 대안 중 하나가 가능합니까?
내가 대답을 잘 모릅니다하지만 java.lang.Instrumentation 권한을 거부 시도? – mprabhat
모르겠지만 아무도 신경 쓰지 않으면 RuntimeMXBean을 사용하여 VM 인수를 얻은 다음 -javaagent : 인수를 확인합니다. RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean(); 리스트 args = RuntimemxBean.getInputArguments(); –
Vulcan
결과를 게시 해 주셔서 감사합니다. 답글로이 덧글을 추가하고 올바른 것으로 표시하여 나중에 검색하는 사람들을 도울 수 있습니다. – mprabhat