Java VME方式常见问题
1.java VME的字符串加密
选项,每次加密后字符串一样么?
答:不一样。
2.java vme类里面的常量如何才能保护?
答:java vme类里面的常量是不支持加密的,建议在开发时不要直接初始化,在构造函数中赋值,然后保护时勾选字符串加密功能。
3.Java-VME的以下情况不支持?
答:
1)选择函数虚拟化后实时日志里提示不支持的Java函数,MethodHandle类、synchronized关键字暂时不支持;2)JAR和WAR包的字符串加密功能,不支持直接初始化的字符串,只支持在方法内部加载的字符串;3)final 修饰类、变量、关键字等不保护;4)类名和方法名都不能保护,interface接口无法保护;
4.java-VME加密后反编译的效果?
答:如图所示
5.加密后的java程序(jar包)被它所引用的第三方jar包的名字能看到?
答:Import能看到,能过反编译工具也可以看第三方 jar 包的引用,我们只加密了 class 中的方法。
6.Java-VME为什么没有永久授权?
答:Java-VME的加密原理是函数虚拟化,这种加密策略需要需要Virbox 开发人员定期更新,适配一些框架(如 spring framework等)的各种版本,同时解释器需要定期更新VM Code 等,如果因招投标项目需求永久使用权的话请联系商务人员。
7.javafx框架支持么?
答:支持,但由于javafx.application.launch会检测调用栈里的class是不是extends了javafx.application.Application,所以vme不能虚拟化main(),其他方法可选择虚拟化;