java代码混淆工具Allatori

简介: java代码混淆工具Allatori

1 从官网下载allatori文件

http://www.allatori.com/,也可以从以下链接获取


有时候处于某种原因,我们需要将自己的代码做一些“处理”,保护一下自己小小的辛苦成果。至于allatori的技术原理以及其他的混淆技术这里不做解释,只是做一些简单记录

解压后文件:


20190628164321251.png


其中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的内容进行处理

20190628165959599.png



关于config.xml文件中的配置项可以去官网查阅。


反编译其中一个文件,内容已经不好阅读

20190628170317207.png

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 * )

20190628170920373.png



cmd 下进入F://down/bb目录下 执行命令 jar cvf core3.jar *


3.2 将core3.jar复制到目录Allatori-2.3-Demo\Allatori-7.0-Demo\tutorial\step01\files下

20190628172150568.png



3.3 修改config.xml文件


20190628172226922.png


运行RunAllatori.bat 得到corem.jar


反编译查看结果



20190628172402619.png

4 注意事项

如果代码里请求静态资源的方法,注意请求路径的写法。因为如果是第三步将混淆后的jar包导入项目,获取文件的相对路径可能会不一样

如果方法中有重定向等写法,主要不要将此内容进行混淆


目录
相关文章
|
8天前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
|
29天前
|
存储 安全 Java
Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
【10月更文挑战第17天】Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
57 2
|
29天前
|
存储 Java API
键值对魔法:如何优雅地使用Java Map,让代码更简洁?
键值对魔法:如何优雅地使用Java Map,让代码更简洁?
113 2
|
22天前
|
XML 安全 Java
Java反射机制:解锁代码的无限可能
Java 反射(Reflection)是Java 的特征之一,它允许程序在运行时动态地访问和操作类的信息,包括类的属性、方法和构造函数。 反射机制能够使程序具备更大的灵活性和扩展性
35 5
Java反射机制:解锁代码的无限可能
|
19天前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
52 3
|
24天前
|
存储 安全 Java
系统安全架构的深度解析与实践:Java代码实现
【11月更文挑战第1天】系统安全架构是保护信息系统免受各种威胁和攻击的关键。作为系统架构师,设计一套完善的系统安全架构不仅需要对各种安全威胁有深入理解,还需要熟练掌握各种安全技术和工具。
68 10
|
20天前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
18天前
|
Java
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
|
23天前
|
Java 数据格式 索引
使用 Java 字节码工具检查类文件完整性的原理是什么
Java字节码工具通过解析和分析类文件的字节码,检查其结构和内容是否符合Java虚拟机规范,确保类文件的完整性和合法性,防止恶意代码或损坏的类文件影响程序运行。
|
23天前
|
Java API Maven
如何使用 Java 字节码工具检查类文件的完整性
本文介绍如何利用Java字节码工具来检测类文件的完整性和有效性,确保类文件未被篡改或损坏,适用于开发和维护阶段的代码质量控制。
下一篇
无影云桌面