主流加密方式:
- Java混淆处理(Obfuscator)
- 运用ClassLoader方法进行加密
Java加密方式一直都是以混淆为主。这方面的研究结果也颇多,既有混淆器(JODE,JADE),也有针对反编译的炸弹(如针对反编译工具“Mocha”的Crema和HoseMocha);混淆器本质上是通过更改变量名,函数名,甚至类名来使反编译出来的代码不可理解,但这样只是做了视觉上的处理,其业务逻辑不变,加以耐心,还是可以被破译。
Java虚拟机是通过一个成为ClassLoader对象装载类文件对象字节码,而ClassLoader是可以由Java程序自己定制。ClassLoader加密的原理是,对需加密的类文件先行采用加密处理,然后在读取文件之后,进行解密,再转换为一个Class对象