1.Java-BCE 操作的时候设置密码的作用?
这里的密码设置如果是一样的话那么 sjt 就是一样的,如果没有设置,这里的密码每次都是随机的。
有多个 jar 包要保护,可以设置其中一个 jar 包的密码,然后复用于其他文件夹,密码是一样的,保护后 ssp.java 文件里面 sjt_agent.jar 都可以通用
2.Java-BCE 方式加密完生成两个 jar 包,那怎么做成镜像?
修改 docker 的运行方式,一般是在 dockerfile 里改,启动执行的命令时加上 -javaagent ,指定 sjt_agent.jar 就可以。
3.Java 如果不是 tomcat 部署的话,如何进行配置?
在它启动 java 的时候加上 agent 参数配置就可以了,需要找到设置 java 启动参数的地方。现在常用的是 tomcat, weblogic,websphere,jbox。
4.如何判断是否是加密后的文件?
可以使用 jd-gui 工具或 jadx 工具反编译 jar 包,查看保护后的效果。
5.java bce 不支持的框架有哪些?
java bce 方式,自定义 class loader 都不支持。modelmapper、struts2 等框架直接读文件,是自己实现的 classloader,所以不支持。
6.javafx 框架支持么?
java bce 方式支持。
7.涉密系统使用 java bce 方式,程序运行时报错提示"/tmp/sjt_linux_x64.so*sense: failed to map segment from shared object" 时,该怎么处理?
由于涉密系统有权限限制,程序运行时 sjt_agent.jar 中的库可能会无法释放到 tmp 目录下或是释放到 tmp 目录下后无权限执行,此时需要修改下运行方式,不指定 javaagent 而指定 agentpath 参数,如下所示:
1、解压 sjt_agent.jar 包;
2、在 sjt_agent\libs 目录下找到对应系统的库,比如 sjt_linux_x64.so(可根据程序运行时的错误提示查找);
3、将 sjt_linux_x64.so 放到自己所需要的位置;
4、指定参数,运行程序,如 java -agentpath:/sjt_linux_x64.so -jar xxx.jar。