项目作者: lqs1848

项目描述 :
破解 Java 混淆工具 Allatori
高级语言: Java
项目地址: git://github.com/lqs1848/AllatoriCrack.git
创建时间: 2021-01-19T03:12:36Z
项目社区:https://github.com/lqs1848/AllatoriCrack

开源协议:

下载


AllatoriCrack

基于 7.6 版本

为啥没更新最新的版本?

粗略的测试了下 8.1 版本也能使用

替换 目录下的allatori.jar 即可

简介:

​ 破解 Java 混淆工具 Allatori 并进行了部分加密功能的小修改

allatori 本身使用方法特别简单

命令行输入

java -Xms128m -Xmx512m -jar allatori.jar config.xml

config.xml 就是本次加密的配置文件

  1. <config>
  2. <input>
  3. <jar in="test.jar" out="obf-test.jar"></jar> <-- 需要加密的jar包 -- >
  4. <jar in="test2.jar" out="obf-test2.jar"></jar>
  5. </input>
  6. <keep-names> <-- 哪些东西不加密 这个示例是类名和 public 方法还有变量不加密 -- >
  7. <class access="protected+">
  8. <field access="protected+"></field>
  9. <method access="protected+"></method>
  10. </class>
  11. </keep-names>
  12. <-- 需要忽略的Class -- >
  13. <ignore-classes>
  14. <class template="class *springframework*" ></class>
  15. <class template="class *shardingjdbc*" ></class>
  16. <class template="class *jni*" ></class>
  17. <class template="class *alibaba*"></class>
  18. <class template="class *persistence*"></class>
  19. </ignore-classes>
  20. <property name="log-file" value="log.xml"></property> <-- 加密后输出日志文件 -- >
  21. </config>

调用即可加密 test.jar

官方的DEMO 里有更多的更详细的说明 而且是 .bat 的 双击运行就把 jar 加密混淆了

并且搭配Maven插件可以完全不影响原有的编译逻辑

官方DEMO step12-maven 文件夹中就有搭配Maven的例子 搭配 我写的 发布工具 可以实现 java SpringBoot项目 一键编译后加密混淆并发布到Linux服务器上运行

还能自动加水印 官方DEMO里也有栗子

破解方法:

  1. 导入项目

  2. 添加 lib里面 jar 的引用 和 根目录中待破解的 allatori.jar 的引用

  3. 在 Main.java 右键运行即可

  4. 根目录下会生成 allatori_crack.jar 就是破解后的jar包

只保证 7.6 可使用 懒得破解也可以直接用我生成的 allatori_crack.jar 就在根目录

demo目录下有示例 并附有7.6原版

  1. 运行 cracked.bat 就会使用 破解版的加密 test.jar test2.jar
  2. 运行 unmodified.bat 会用官方 原版加密 test.jar test2.jar
  3. 加密后的文件为 obf-test.jar obf-test2.jar

破解内容:

  1. 破解前 Allatori 生成的 加密 jar 在运行时会输出
  1. ################################################
  2. # #
  3. # ## # # ## ### ### ## ### #
  4. # # # # # # # # # # # # # #
  5. # ### # # ### # # # ## # #
  6. # # # ### ### # # # ### # # ### #
  7. # #
  8. # Obfuscation by Allatori Obfuscator v7.6 DEMO #
  9. # #
  10. # http://www.allatori.com #
  11. # #
  12. ################################################

破解后可自定义输出内容

  1. 加密后的方法名称或变量名称为 ALLATORIxDEMO 替换为 随机字母

修改内容:

  1. serialVersionUID 原版Allatori 会把 serialVersionUID 给加密掉 现在默认不加密 (原版可以用xml配置标示不加密这个)

  2. 修复 Allatori 原版的 BUG 加密某些类 有时会出现多个方法加密成同一个名称的问题 (方法名称不同 但是参数相同 被加密成同一个方法名 ALLATORIxDEMO 导致加密后的jar无法使用)

  3. 原版加密class时会把所有的Class名字修改成随机大小写的单个字母 不同包路径下类的名称会重复 在Spring下 这样加密就会出错

    1. <keep-names>
    2. <class access="protected+">
    3. <field access="protected+"></field>
    4. <method access="protected+"></method>
    5. </class>
    6. </keep-names>

    原版需要 忽略类名加密才能兼容 Spring

    修改后 类名会加密成不重复的随机字母 兼容 不允许 Bean 重复的框架

更新内容:

​ 2021/02/05 : 添加功能 修改内容中的第3点

​ 2021/02/04 : Bug Repair 修复继承的变量被加密成与父变量名称不相同的问题

​ 2021/02/23 : Bug Repair 修复继承的方法名称被加密成与父类方法名不相同的问题 修复忽略加密却还是被加密的问题

​ 2021/07/15 : Bug Repair 修复加密后的jar包中的 注释(zip压缩包注释 ZipOutputStream.setComment(“这个注释”)) 没有被破解的Bug

Ps:

​ 这玩意真不好破解 全部都是类似 IiIiii.class 的文件看的脑壳疼 w(゚Д゚)w

​ 相比之下 Charles 真的是太好破解了 ヾ(≧∇≦*)ゝ

[^会随时修复Bug 可以偶尔看一下是否有修改]: