{"id":13843229,"url":"https://github.com/lqs1848/AllatoriCrack","last_synced_at":"2025-07-11T18:31:04.209Z","repository":{"id":44469915,"uuid":"330850104","full_name":"lqs1848/AllatoriCrack","owner":"lqs1848","description":"破解 Java 混淆工具 Allatori","archived":false,"fork":false,"pushed_at":"2022-04-19T03:56:36.000Z","size":9424,"stargazers_count":251,"open_issues_count":8,"forks_count":87,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-08-05T17:36:43.461Z","etag":null,"topics":["allatori","crack","decrypt","jar","java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lqs1848.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-19T03:12:36.000Z","updated_at":"2024-07-01T05:59:57.000Z","dependencies_parsed_at":"2022-07-16T18:46:14.058Z","dependency_job_id":null,"html_url":"https://github.com/lqs1848/AllatoriCrack","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lqs1848%2FAllatoriCrack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lqs1848%2FAllatoriCrack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lqs1848%2FAllatoriCrack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lqs1848%2FAllatoriCrack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lqs1848","download_url":"https://codeload.github.com/lqs1848/AllatoriCrack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225745522,"owners_count":17517658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["allatori","crack","decrypt","jar","java"],"created_at":"2024-08-04T17:01:57.765Z","updated_at":"2024-11-21T14:30:54.614Z","avatar_url":"https://github.com/lqs1848.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# AllatoriCrack\n\n\n\n\n#### 基于 7.6 版本  \n\n为啥没更新最新的版本？\u003cbr\u003e\n粗略的测试了下 8.1 版本也能使用 \u003cbr\u003e\n替换 目录下的allatori.jar 即可 \u003cbr\u003e\n\n\n\n**简介:**\n\n​\t破解 Java 混淆工具 [Allatori](http://www.allatori.com/)\t并进行了部分加密功能的小修改\n\n\n\nallatori  本身使用方法特别简单\n\n命令行输入\n\n\u003e java -Xms128m -Xmx512m -jar allatori.jar config.xml\n\nconfig.xml 就是本次加密的配置文件\n\n```xml\n\u003cconfig\u003e\n    \u003cinput\u003e\n        \u003cjar in=\"test.jar\" out=\"obf-test.jar\"/\u003e   \u003c-- 需要加密的jar包 -- \u003e\n        \u003cjar in=\"test2.jar\" out=\"obf-test2.jar\"/\u003e\n    \u003c/input\u003e\n    \u003ckeep-names\u003e\t\t\t\t\t\u003c-- 哪些东西不加密  这个示例是类名和 public 方法还有变量不加密 -- \u003e\n        \u003cclass access=\"protected+\"\u003e\n            \u003cfield access=\"protected+\"/\u003e\n            \u003cmethod access=\"protected+\"/\u003e\n        \u003c/class\u003e\n    \u003c/keep-names\u003e\n    \n        \u003c-- 需要忽略的Class -- \u003e\n    \u003cignore-classes\u003e\n\t\t\u003cclass template=\"class *springframework*\" /\u003e\n\t\t\u003cclass template=\"class *shardingjdbc*\" /\u003e\n\t\t\u003cclass template=\"class *jni*\" /\u003e\n\t\t\u003cclass template=\"class *alibaba*\"/\u003e\n\t\t\u003cclass template=\"class *persistence*\"/\u003e\n\t\u003c/ignore-classes\u003e\n        \n    \u003cproperty name=\"log-file\" value=\"log.xml\"/\u003e\t\u003c-- 加密后输出日志文件 -- \u003e\n\u003c/config\u003e\n```\n\n调用即可加密 test.jar \n\n官方的DEMO 里有更多的更详细的说明 而且是 .bat 的 双击运行就把 jar 加密混淆了 \n\n并且搭配Maven插件可以完全不影响原有的编译逻辑\n\n官方DEMO **step12-maven** 文件夹中就有搭配Maven的例子 搭配 我写的 [发布工具](https://github.com/lqs1848/PublishTools) 可以实现 java SpringBoot项目 一键编译后加密混淆并发布到Linux服务器上运行\n\n还能自动加水印 官方DEMO里也有栗子\n\n\n\n\n\n**破解方法:**\n\n1. 导入项目\n\n2. 添加 lib里面 jar 的引用 和 根目录中待破解的 allatori.jar 的引用\n3. 在 Main.java 右键运行即可\n\n4. 根目录下会生成 allatori_crack.jar 就是破解后的jar包\n\n*只保证 7.6 可使用 懒得破解也可以直接用我生成的 allatori_crack.jar 就在根目录*\n\n\n\ndemo目录下有示例 并附有7.6原版\n\n  \t运行 cracked.bat 就会使用 破解版的加密 test.jar 和 test2.jar\n\n  \t运行 unmodified.bat 会用官方 原版加密 test.jar 和 test2.jar\n\n  \t加密后的文件为 obf-test.jar 和 obf-test2.jar\n\n\n\n**破解内容:**\n\n1. 破解前 Allatori 生成的 加密 jar 在运行时会输出\n\n```\n    ################################################\n    #                                              #\n    #        ## #   #    ## ### ### ##  ###        #\n    #       # # #   #   # #  #  # # # #  #         #\n    #       ### #   #   ###  #  # # ##   #         #\n    #       # # ### ### # #  #  ### # # ###        #\n    #                                              #\n    # Obfuscation by Allatori Obfuscator v7.6 DEMO #\n    #                                              #\n    #           http://www.allatori.com            #\n    #                                              #\n    ################################################\n```\n\n破解后可自定义输出内容\n\n\n\n2. 加密后的方法名称或变量名称为 ALLATORIxDEMO 替换为 随机字母\n\n \n\n\n\n**修改内容:**\n\n1. serialVersionUID 原版Allatori 会把 serialVersionUID 给加密掉 现在默认不加密 (原版可以用xml配置标示不加密这个)\n\n2. 修复 Allatori 原版的 BUG 加密某些类 有时会出现多个方法加密成同一个名称的问题 (方法名称不同 但是参数相同 被加密成同一个方法名 ALLATORIxDEMO 导致加密后的jar无法使用)\n\n3. 原版加密class时会把所有的Class名字修改成随机大小写的单个字母 不同包路径下类的名称会重复 在Spring下 这样加密就会出错\n\n   ```xml\n   \u003ckeep-names\u003e\n       \u003cclass access=\"protected+\"\u003e\n           \u003cfield access=\"protected+\"/\u003e\n           \u003cmethod access=\"protected+\"/\u003e\n       \u003c/class\u003e\n   \u003c/keep-names\u003e\n   ```\n\n   原版需要 忽略类名加密才能兼容 Spring\n\n   修改后 类名会加密成不重复的随机字母 兼容 不允许 Bean 重复的框架\n\n\n\n**更新内容:**\n\n​\t\t2021/02/05 :  **添加功能**  修改内容中的第3点\n\n​\t\t2021/02/04 :  **Bug Repair** 修复继承的变量被加密成与父变量名称不相同的问题\n\n​\t\t2021/02/23 :  **Bug Repair** 修复继承的方法名称被加密成与父类方法名不相同的问题 修复忽略加密却还是被加密的问题\n\n​\t\t2021/07/15 :  **Bug Repair** 修复加密后的jar包中的 注释(zip压缩包注释 ZipOutputStream.setComment(\"这个注释\")) 没有被破解的Bug\n\n**Ps:**\n\n​\t\t这玩意真不好破解 全部都是类似 IiIiii.class 的文件看的脑壳疼 w(ﾟДﾟ)w\n\n​\t\t相比之下 Charles 真的是太好破解了  ヾ(≧∇≦*)ゝ\n\n\n\n\n\n[^会随时修复Bug 可以偶尔看一下是否有修改]: \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flqs1848%2FAllatoriCrack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flqs1848%2FAllatoriCrack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flqs1848%2FAllatoriCrack/lists"}