如何防止class被反编译,保护我们的知识产权
众所周知,java编译后的class文件是一种中间字节字文件,
很容易被反编译工具反编译,而传统的java源代码保护方法基本都是采用混淆的方式,
但这样会带来很多麻烦,而且也不能真正保护class文件,
我采用jni技术定制classloader调用经过加密的class来动态解密,运行class文件。
class反编译工具对加密后的class文件就没办法再反编译为java文件了!
本贴提供一个免费的我写的class文件加密保护工具!程序文件见附件!
下面说说使用方法以及介绍:
运行方式:
运行时,要能正确的加载加密后的class文件,
必须使用我们提供的动态链接库classloader.dll(wndows操作系统)或者libclassloader.so(Linux、Unix操作系统)。
执行java时带上参数-agentlib:<动态文件所在路径>\classloader
注意此处不要后缀名.dll(或者.so)。
如:
我把classloader.dll放在C:\目录下;
运行加密后的class文件命令如下:
windows下执行java:
java -agentlib:C:\classloader Sample
Linux、Unix等系列操作系统下执行java:
java -agentlib:/home/classloader Sample
当然如果class文件没加密,这样运行也不会出错!
应用场合:
独立的应用程序,运行java时,带上参数-agentlib:<动态库文件所在路径>\classloader
Tomcat、Jboss等Java application server修改启动脚本,
把执行java的命令行后面加上参数-agentlib:<动态链接库文件所在路径>\classloader
适应环境:
操作系统:所有操作系统,Windows系统、Linux/Unix,只是运行时,
使用的动态链接库文件不一样而已,其它配置完全一样。
jdk必须1.5以上。
下载地址:
java class加密保护
软件截图: