破解 Java 混淆工具 Allatori

Overview

AllatoriCrack

基于当前最新的 7.6 版本

简介:

​ 破解 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 修复继承的方法名称被加密成与父类方法名不相同的问题 修复忽略加密却还是被加密的问题

Ps:

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

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

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

You might also like...

JSON Web Token (JWT) implementation for Java with support for signatures (JWS), encryption (JWE) and web keys (JWK).

Nimbus JOSE+JWT Nimbus JOSE+JWT is a popular open source (Apache 2.0) Java library which implements the Javascript Object Signing and Encryption (JOSE

Jul 1, 2022

Amazon Selling Partner JAVA SDK SP API

amazon-sp-api amazon sp api java sdk 背景: 亚马逊(amazon)在2020年10月推出了新的替代mws的api方案,称为Selling Partner API(SP-API)。sp-api在修改原mws的接口方式的基础上引入了aws的IAM权限管理,增加了开发

Nov 20, 2022

Java bytecode obfuscator with GUI

Java bytecode obfuscator with GUI

Bozar A Java bytecode obfuscator with GUI Usage Download the version you want in releases for your platform Run the executable. Done. Let me know if o

Dec 31, 2022

A java implementation of Enigma, and a modern attack to decrypt it.

Java Enigma This is a Java implementation of an Enigma machine, along with code that attempts to break the encryption. This code is associated with an

Jan 4, 2023

Engin Demiroğun düzenlemiş olduğu (Java & React) Yazılım Geliştirici Yetiştirme Kampında yapmış olduğum ödevleri içermektedir.

Java-React-Yazilim-Gelistirici-Yetistirme-Kampi-Odevler Engin Demiroğun düzenlemiş olduğu (Java & React) Yazılım Geliştirici Yetiştirme Kampında yapmı

Apr 26, 2022

Kodlamaio Yazılım Geliştirici Yetiştirme Kampı (JAVA + REACT) ödev listesidir.

JavaHomeworks Kodlamaio Yazılım Geliştirici Yetiştirme Kampı (JAVA + REACT) ödev listesidir. JavaRecapDemo1 kodlama.io ileri java kampı 2. gün ödevidi

May 10, 2021

Java solutions for LeetCode

leetcode-java Java solutions for LeetCode Environment Intellij IDEA 2021.2 JDK 16.0.1 Gradle 7.1 Junit 5.7 ProblemList # Title Difficulty Link Solutio

Aug 5, 2021

Simple Hospital Managers Project GUI Java

Hospital-Managers-GUI-Java Simple Hospital Managers Project GUI Java To Run Code You just need to run MainClass.java in any IDE I make a YouTube Video

Feb 4, 2022

'Effective Java 3/E' 스터디 저장소입니다.

Effective Java 스터디 Effective Java 3/E 스터디 저장소입니다. 0. 스터디 정보 기간 : 2021/08/19 ~ 참여 인원 : 강동민(@riyenas0925), 김하늬(@kimhanui) 도서 : 이펙티브 자바 Effective Java 3/

Feb 26, 2022
Comments
  • 抽象方法和实现方法的名字被混淆成了不同的字符串

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

    实现类

    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()"
    

    原版没这个问题

    opened by coderstory 4
Releases(7.6.2)
Owner
null
Java Project based on Java and Encryption using Cryptography algorithms

Symmetric-Encryption-Cryptography-in-Java Java Project based on Java and Encryption using Cryptography algorithms Project Aim Develop Java program to

Muhammad Asad 6 Feb 3, 2022
A mitigation for CVE-2021-44228 (log4shell) that works by patching the vulnerability at runtime. (Works with any vulnerable java software, tested with java 6 and newer)

Log4jPatcher A Java Agent based mitigation for Log4j2 JNDI exploits. This agent employs 2 patches: Disabling all Lookup conversions (on supported Log4

null 45 Dec 16, 2022
Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium

kalium - Java binding to the Networking and Cryptography (NaCl) library A Java binding to Networking and Cryptography library by Daniel J. Bernstein.

Bruno Oliveira da Silva 206 Oct 5, 2022
A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Bastiaan Jansen 106 Dec 30, 2022
Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...

pac4j is an easy and powerful security engine for Java to authenticate users, get their profiles and manage authorizations in order to secure web appl

PAC4J 2.2k Dec 30, 2022
Bouncy Castle Java Distribution (Mirror)

The Bouncy Castle Crypto Package For Java The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was developed by t

Legion of the Bouncy Castle Inc 1.8k Dec 30, 2022
An authorization library that supports access control models like ACL, RBAC, ABAC in Java

jCasbin News: still worry about how to write the correct jCasbin policy? Casbin online editor is coming to help! Try it at: http://casbin.org/editor/

Casbin 2k Dec 30, 2022
PicketLink is a security framework for securing Java EE applications.

PicketLink http://picketlink.org Java EE Application Security Identity Management Federation Social REST Security Standard-based Security This reposit

PicketLink 92 Feb 21, 2022
OACC (Object ACcess Control) is an advanced Java Application Security Framework

OACC Java Application Security Framework What is OACC? OACC - pronounced [oak] - is a fully featured API to both enforce and manage your application's

null 103 Nov 24, 2022
okta-auth-java

Okta Java Authentication SDK Release status Need help? Getting started Usage guide Configuration reference Building the SDK Contributing The Okta Auth

Okta, Inc 34 Sep 30, 2022