1 从官网下载allatori文件
http://www.allatori.com/,也可以从以下链接获取
有时候处于某种原因,我们需要将自己的代码做一些“处理”,保护一下自己小小的辛苦成果。至于allatori的技术原理以及其他的混淆技术这里不做解释,只是做一些简单记录
解压后文件:
其中lib下是执行混淆用到的jar包allatori.jar和allatori-annotations.jar
tutorial 各种案例
其实打开readme.html 里面就已经有比较完成的操作步骤
2 Eclipse 下进行代码混淆
将上文lib下的allator.jar复制到eclipse安装目录
eclipse/dropins下(可以通过右键开发工具图标获取地址)
右键要混淆的项目选择Configure–>add Allatori
clean项目,生成的class文件就是混淆后的代码了。
这里需要补充一点,在点击混淆前还有一个配置文件需要简单处理一下
可以去Allatori-7.0-Demo\tutorial\step01\files 路径下复制config.xml文件到你的项目主路径下,混淆的时候根根据config.xml的内容进行处理
关于config.xml文件中的配置项可以去官网查阅。
反编译其中一个文件,内容已经不好阅读
2.1 config.xml 详解
混淆的成功与否在于次配置的对与错。官方默认对除了 public 修饰的类、方法、区域放开,其余的都会混淆处理
<config> <input> <jar in="test.jar" out="obf-test.jar"/> <jar in="mousegestures-1.2.jar" out="obf-mousegestures-1.2.jar"/> </input> <keep-names> <class access="protected+"> <field access="protected+"/> <method access="protected+"/> </class> </keep-names> <property name="log-file" value="log.xml"/> </config> <jar in="你的 jar 包名称.jar" out="混淆后的 jar 包名称.jar"/>
3 单个jar文件进行混淆
上面的方式一般都是整个项目进行混淆,如果只想混淆几个关键的核心代码,只需要把需要混淆代码打个jar包,然后单独混淆此jar包即可
复制对应的class文件,打成jar包(通过 jar cvf 包名.jar * )
cmd 下进入F://down/bb目录下 执行命令 jar cvf core3.jar *
3.2 将core3.jar复制到目录Allatori-2.3-Demo\Allatori-7.0-Demo\tutorial\step01\files下
3.3 修改config.xml文件
运行RunAllatori.bat 得到corem.jar
反编译查看结果
4 注意事项
如果代码里请求静态资源的方法,注意请求路径的写法。因为如果是第三步将混淆后的jar包导入项目,获取文件的相对路径可能会不一样
如果方法中有重定向等写法,主要不要将此内容进行混淆