Code Monkey home page Code Monkey logo

allatoricrack's Introduction

AllatoriCrack

基于 7.6 版本

为啥没更新最新的版本?
粗略的测试了下 8.1 版本也能使用
替换 目录下的allatori.jar 即可

简介:

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

allatori 本身使用方法特别简单

命令行输入

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

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

<config>
    <input>
        <jar in="test.jar" out="obf-test.jar"/>   <-- 需要加密的jar包 -- >
        <jar in="test2.jar" out="obf-test2.jar"/>
    </input>
    <keep-names>					<-- 哪些东西不加密  这个示例是类名和 public 方法还有变量不加密 -- >
        <class access="protected+">
            <field access="protected+"/>
            <method access="protected+"/>
        </class>
    </keep-names>
    
        <-- 需要忽略的Class -- >
    <ignore-classes>
		<class template="class *springframework*" />
		<class template="class *shardingjdbc*" />
		<class template="class *jni*" />
		<class template="class *alibaba*"/>
		<class template="class *persistence*"/>
	</ignore-classes>
        
    <property name="log-file" value="log.xml"/>	<-- 加密后输出日志文件 -- >
</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原版

运行 cracked.bat 就会使用 破解版的加密 test.jar 和 test2.jar

运行 unmodified.bat 会用官方 原版加密 test.jar 和 test2.jar

加密后的文件为 obf-test.jar 和 obf-test2.jar

破解内容:

  1. 破解前 Allatori 生成的 加密 jar 在运行时会输出
    ################################################
    #                                              #
    #        ## #   #    ## ### ### ##  ###        #
    #       # # #   #   # #  #  # # # #  #         #
    #       ### #   #   ###  #  # # ##   #         #
    #       # # ### ### # #  #  ### # # ###        #
    #                                              #
    # Obfuscation by Allatori Obfuscator v7.6 DEMO #
    #                                              #
    #           http://www.allatori.com            #
    #                                              #
    ################################################

破解后可自定义输出内容

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

修改内容:

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

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

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

    <keep-names>
        <class access="protected+">
            <field access="protected+"/>
            <method access="protected+"/>
        </class>
    </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 可以偶尔看一下是否有修改]:

allatoricrack's People

Contributors

lqs1848 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

allatoricrack's Issues

Allatori 8.5 版本无法使用

Exception in thread "main" javassist.NotFoundException: com.allatori.IiiIIiiiII
at javassist.ClassPool.get(ClassPool.java:430)
at javassist.bytecode.Descriptor.toCtClass(Descriptor.java:571)
at javassist.bytecode.Descriptor.getReturnType(Descriptor.java:472)
at javassist.CtBehavior.getReturnType0(CtBehavior.java:331)
at javassist.CtMethod.getReturnType(CtMethod.java:232)
at org.lqs1848.crack.allatori.Main.execute(Main.java:84)
at org.lqs1848.crack.allatori.Main.main(Main.java:48)

建议搞一个通杀版

有规律的,可用搞一个通杀的jar。不用每次官方更新版本后lib下的jar要修改更新。

抽象方法和实现方法的名字被混淆成了不同的字符串

实现类

public final class preferencesProvider extends PreferencesProvider {
    public /* synthetic */ String oooOoO() {
        return "com.coderstory.flyme.preferencesProvider";
    }
}

父类

public abstract class PreferencesProvider extends ContentProvider {

    public abstract /* synthetic */ String xXxXXX();
}

导致的异常

02-22 17:20:55.985  3477  3477 E AndroidRuntime: java.lang.AbstractMethodError: abstract method "java.lang.String com.coderstory.flyme.preferences.PreferencesProvider.xXxXXX()"

原版没这个问题

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.