java代码混淆工具Allatori

Posted 赵广陆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码混淆工具Allatori相关的知识,希望对你有一定的参考价值。


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包导入项目,获取文件的相对路径可能会不一样
如果方法中有重定向等写法,主要不要将此内容进行混淆

以上是关于java代码混淆工具Allatori的主要内容,如果未能解决你的问题,请参考以下文章

代码混淆神器 Allatori

Allatori:代码混淆器的使用

使用Allatori对Spring Boot项目进行代码混淆

使用Allatori对Spring Boot项目进行代码混淆

JAVA CLASS混淆工具:Allatori 简单试用

在 eclipse中怎么使用allatori