是否可以在 Java 应用程序中禁用检测库,或者检查当前是否正在运行?
出于安全原因,我的目标是防止用户在我的应用程序上运行检测实现。
经过一些实验,我自己提出了一个理论解决方案,其中我发现java.class.path
系统属性在路径分隔符之后以 -javaagent VM 参数 jar 文件的路径结尾。从这个属性中,我可以检查一个类路径属性是否是我的程序本身未指定的外部 jar,如果检测到外来 jar,则终止我的应用程序。
但是,上面的方法对我来说似乎有些 hacky,但我还没有找到直接阻止 -javaagent 参数的方法,也没有找到检测仪器代理库的简单方法。这些更清洁的替代品中的任何一种都可能吗?