大家都知道Java 编译为class 后可以通过反编译工具再编译为Java 文件.
常用的反编译工具:idea,jd,jad
如果,不希望别人看到自己人源代码,要怎么做?
在JavaScript 中可以通过压缩代码,代码混淆来避免.Java 里也有类似的工具.
allatori
用于将已有代码混淆,防止反编译.
工作原理:
读取 jar 文件,对其代码按照XML 中的配置进行重写.如:字符串替换,代码改写为内部类等等
maven方式代码:
pom.xml
org.apache.maven.plugins
maven-resources-plugin
copy-and-filter-allatori-config
package
copy-resources
${basedir}/target
${basedir}/lib
allatori.xml
true
org.codehaus.mojo
exec-maven-plugin
1.2.1
run-allatori
package
exec
java
-Xms128m
-Xmx512m
-jar
${basedir}/lib/allatori.jar
${basedir}/target/allatori.xml
配置文件:
混淆前代码:
混淆后代码:
注意事项:
重写会改变类名,可以在配置文件中控制是否保持类名,以及重写完类名是否影响代码运行.
需要测试,保证代码的重写不会影响使用
更多文档: