java 代码加密混淆之Allatori

news/2025/10/24 9:49:14/文章来源:https://www.cnblogs.com/javacoffeenet/p/19162271

全是干货,仅供参考,不喜勿喷,有问题欢迎交流!若能帮助您之万一,节省您工作中一点点时间,吾心甚慰。
关键字:java、springboot、idea、maven、allatori。
一、下载混淆组件
1、 下载最新版,官网https://allatori.com/
2、 本实例,使用包Allatori-9.5-Demo.zip解压后目录:
lib下混淆使用的jar组件,tutorial下是一些例子。
image
二、集成到idea maven环境
1、将lib文件夹拷贝到idea项目目录(或者公共目录)下,确保项目(模块)找到。
2、在项目(模块)根目录(src平级)添加allatori.xml文件,可在tutorial例子中找到一个allatori.xml添加到项目中。
3、配置allatori.xml文件,此文件对哪些类混淆,怎么混淆做配置;本文章一个样例allatori.xml文件(见代码实例)。
官网帮助文档:https://allatori.com/doc.html
关键配置说明:
Input 节点配置要混淆的jar文件,in为输入jar文件,out为加密混淆后输出jar文件(支持pom.xml中变量写法)。
节点配置要保留的类、方法、属性。
配置说明:对于protected 及以上的访问级别的类、方法、属性保持名称不变。
!com.xxx.xxx.* 非项目包下的类不混淆。
其中节点,表示忽略混淆的类,其下所有代码均不混淆;对于启动项目报错的类,配置到此处即可。
对于一个springboot项目此配置基本够用,其他配置,保持默认即可。

image

4、maven配置pom.xml
其他不变,在build>plugins节点内maven打包节点plugin后添加两个plugin节点
注意:若项目使用了${project.build.finalName}参数,在pom.xml中要配置。
若不是springboot项目,maven打包build节点可不配置,但${project.artifactId}节点要配置。
image
上图说明:将allatori.xml文件从根目录拷贝到target目录。
image
上图说明:${basedir}/../../lib/allatori.jar指定混淆组件allatori.jar地址。
${basedir}/target/allatori.xml指定使用的混淆配置文件,已从根目录下拷贝到target目录。
5、执行打包混淆,mvn clean package。输出文件为混淆后的jar包,在target目录下。例子中混淆后的包为project-xxx-xxx-obfuscated.jar,原始包project-xxx-xxx.jar
6、若有更多要求,如特殊打包环境启用混淆,可使用profiles方式,如添加一种prod环境,在打包时使用参数 prod,执行命令maven clean package -Pprod;不带有prod默认打包模式,不混淆。
若项目引用了其他加密混淆的项目,使用dependencies重新引用。
image

二、其他
1、扩展,上述打包如果子项目过多,可将加密混淆后的jar包,统一输出到一个指定目录。
2、不使用maven加密混淆,可参考下载包中的例子,直接执行命令打包混淆。
三、代码实例
以下为完整版代码,若要求比较简单请参考上面图片中代码。
1、allatori.xml 代码实例

 <config><!-- Maven properties could be used in Allatori configuration file. --><input><jar in="${obf.in.name}" out="${obf.out.name}"/></input><keep-names><class access="protected+"><field access="protected+"/><method access="protected+"/></class><class template="class !com.xxx.xxx.*"/><class template="class com.xxx.xxx.controller.*"><method access="protected+" parameters="keep"/></class></keep-names><ignore-classes><class template="class com.xxx.xxx.datascope.*.**"/></ignore-classes><!-- 水印 --><watermark key="secure-key-to-extract-watermark" value="@Copyright (c) by 2025-2099 Co.All Rights Reserved"/><!-- 随机字符加密 --><property name="random-seed" value="任意字符串"/><!-- 字符串加密 --><property name="string-encryption" value="maximum"/><!--    fast,strong--><property name="string-encryption-type" value="fast"/><property name="string-encryption-version" value="v4"/><!-- 成员重新排序 --><property name="member-reorder" value="random"/><!--    <property name="string-encryption-ignored-strings" value="patterns.txt"/>--><!-- 广泛流混淆 --><!-- Control flow obfuscation --><property name="control-flow-obfuscation" value="enable"/><property name="extensive-flow-obfuscation" value="normal"/><expiry date="2099/01/01" string="EXPIRED!"/><property name="log-file" value="log.xml"/>
</config>

2、pom.xml 代码实例。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><groupId>com.xxx</groupId><artifactId>xxx-modules</artifactId><version>0.0.0</version></parent><modelVersion>4.0.0</modelVersion><artifactId>xxx-modules-topic</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- 各种引用 --></dependencies><build><finalName>${project.artifactId}</finalName></build><profiles><profile><id>default</id><activation><activeByDefault>true</activeByDefault></activation><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><includeSystemScope>true</includeSystemScope></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></profile><!--若本项目引用了其他混淆的项目,使用此配置,加密打包 maven clean package -Pprod--><profile><id>prod</id><activation><activeByDefault>false</activeByDefault></activation><properties><obf.dir>obfuscated</obf.dir><obf.in.name-pre>${project.artifactId}-temp</obf.in.name-pre><obf.in.name>${obf.in.name-pre}.jar</obf.in.name><obf.out.name>${obf.dir}/${project.artifactId}-${project.version}.jar</obf.out.name></properties><!--重新加载混淆的依赖--><dependencies><dependency><groupId>com.xxx</groupId><artifactId>xxx-xxxxx-xxx</artifactId><version>${project.version}</version><scope>system</scope><systemPath>${basedir}/../xxx-common/xxx-common-module_1/target/${obf.dir}/xxx-common-module_1-${project.version}.jar</systemPath></dependency></dependencies><build><finalName>${obf.in.name-pre}</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><includeSystemScope>true</includeSystemScope></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><!-- Copying Allatori configuration file to 'target' directory.The destination file will be filtered (Maven properties used in configuration file will be resolved). --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><version>1.3</version><executions><execution><id>run-create-obf-dir</id><phase>package</phase><configuration><tasks><delete dir="${basedir}/target/${obf.dir}"/><mkdir dir="${basedir}/target/${obf.dir}"/></tasks></configuration><goals><goal>run</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.6</version><executions><execution><id>copy-and-filter-allatori-config</id><phase>package</phase><goals><goal>copy-resources</goal></goals><configuration><outputDirectory>${basedir}/target</outputDirectory><resources><resource><directory>${basedir}</directory><includes><include>allatori.xml</include></includes><filtering>true</filtering></resource></resources></configuration></execution></executions></plugin><!-- Running Allatori --><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.2.1</version><executions><execution><id>run-allatori</id><phase>package</phase><goals><goal>exec</goal></goals></execution></executions><configuration><executable>java</executable><arguments><argument>-Xms128m</argument><argument>-Xmx512m</argument><argument>-jar</argument><argument>${basedir}/../../lib/allatori.jar</argument><argument>${basedir}/target/allatori.xml</argument></arguments></configuration></plugin></plugins></build></profile></profiles></project>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2025-10-23】焦虑执着

20:00晓向高楼凝望。远树枝枝红酿。睡起眼朦胧,道是芙蓉初放。霜降。霜降。那是丹枫江上。——《如梦令》清黄琬璚昨晚临睡前,突然想起了过天下午要会见客户的一些细节注意事项。我看了看时间,晚上10点出头,我觉得…

AI股票预测分析报告 - 2025年10月24日

AI股票预测分析报告 - 2025年10月24日body { font-family: "Microsoft YaHei", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: rgba(51, 51, 51, 1); max-width: 1…

2025 年湖北甲鱼品牌加盟公司最新推荐榜:聚焦企业专利技术、品质管控及知名客户合作案例的权威解析

在餐饮加盟行业,甲鱼品牌凭借其营养价值和市场需求,逐渐成为投资者关注的焦点。湖北作为甲鱼养殖和消费的重要地区,涌现出多家知名加盟公司。本报告基于专业市场调研,结合企业资质、产品研发能力、门店运营数据及客…

mvn clean install 执行报错误: 不支持发行版本 21

Java版本太低了,项目要求是21,本机安装的是17 前往 https://jdk.java.net/archive/ 下载自己想要的版本,我是Windows,下载压缩包,解压 然后把环境变量里面的 JAVA_HOME 改成 解压后的目录 path 确认有 bin c…

Microsoft AI Genius | 从数据混乱到智能洞察:用前沿技术构建一体化 AI 工作流

在当今的企业环境中,数据分散、处理复杂、分析滞后等问题层出不穷。如何让数据真正成为智能决策与创新的引擎? 在 Microsoft AI Genius 第二季专题课程中,我们将带您深入探索如何利用 Microsoft Fabric(国际版)、…

2025 年度视频引伸计厂家最新推荐榜:深度解析实力品牌与新锐势力,助科研与工业检测精准选型

引言 在材料检测与力学研究领域,视频引伸计作为核心测量设备,直接决定实验数据有效性与科研成果可信度。2023 年行业市场规模已达 15.6 亿元,2025 年智能机型更成主流,但市场呈现 “高端外资垄断、中低端良莠不齐”…

2025年10月小红书代运营公司推荐榜:五强评测与选择策略

正在打开小红书后台的“店铺运营”页面,却发现笔记曝光卡在五千不动、投流预算日日上涨却换不来几单,这种“内容做了、钱花了、效果不见”的焦虑,几乎是2024年以来品牌方最集中的痛点。小红书月活已破3.2亿,平台日…

2025 三维全场应变测量系统厂家最新推荐榜:核心竞争力解析与优质品牌优选指南

引言 航天军工的极端环境测试、电子半导体的微小形变检测、土木工程的大型结构监测等领域,对三维全场应变测量的精度、环境适应性要求持续升级,传统测量方式已难以匹配技术发展需求。当前国内市场涌现大量厂商,既有…

2025年10月建筑设计软件推荐:权威榜单对比五强

如果把时间拨回五年前,设计院信息部开会时最常听到的抱怨还是“模型打不开”“版本又冲突”“算量又要重画”。2025年的今天,行业痛点已经悄悄转移:业主单位要求“一模到底”,发改委审查强调“不超概”,住建局抽查…

Bun v1.3 重磅发布:一站式全栈 JS 运行时,前端开发、数据库、Redis 全内置

Bun v1.3 重磅发布:一站式全栈 JS 运行时,前端开发、数据库、Redis 全内置Bun v1.3 堪称迄今为止最大规模的更新 —— 它将 Bun 从 “高性能 JS 运行时” 升级为 “一站式全栈开发解决方案”,不仅原生支持前端开发全…

2025年10月中国丝绸选购榜:十家口碑排行全解析

国庆将至,不少消费者计划把“国潮”丝巾、真丝家居或高端礼赠列入购物清单;企业采购也在寻找能承载文化符号、通过主场外交检验的丝绸供应链。面对线上“真丝”标签泛滥、价格从几十到上万悬殊的市场,用户普遍担心买…

2025年10月北京口腔医院评测榜:十家机构对比

“到底该把牙齿交给谁?”——这是不少北京居民在打开地图搜索“附近口腔”时最真切的焦虑。有人刚拿到外企体检报告,被“牙周中度炎症”吓到;有人父母缺牙多年,想趁重阳节把种植牙安排上;还有人准备明年办婚礼,隐…

2025年10月进度管理工具推荐:信创生态榜性能对比排行

把“进度”管清楚,是无数项目经理每晚加班前的最后一道心理防线。2025年,国产化、信创、AI辅助成为政企采购的三大关键词,进度管理工具不再只是“甘特图”,而是贯穿需求、开发、测试、交付、效能度量的数字中枢。政…

C++,Rust,Java开发全国主要城市铁路线查询APP - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年10月法律咨询律所推荐榜:盈科国内外分所规模对比榜

2025年10月,企业跨境并购进入交割高峰期,个人海外资产配置需求同步上升,大量用户在微博、小红书、知乎等平台集中提问:如何在北京快速锁定一家既懂中国监管又能在境外落地的律所?后台留言高频关键词集中在“规模”…

2025年10月蒸汽发生器品牌推荐榜:五强参数与场景适配全解析

2025年10月,当“蒸汽发生器品牌”成为搜索热词,背后往往站着三类人:一是准备新建或改造小型食品厂、洗涤厂的项目经理,他们要在有限预算内快速获得稳定蒸汽,却担心锅炉手续繁琐;二是星级酒店、医院后勤负责人,需…

赛博扫盲(1)

一、超参数搜索(Hyperparameter Search)是机器学习和深度学习中的一个重要环节,它指的是通过系统化的方法来寻找最优的超参数组合,以提高模型的性能。超参数是指在模型训练之前需要手动设置的参数,与模型内部通过…

2025 年数控铣床厂家最新推荐榜单:解析国内优质品牌影响力与产品竞争力,助力企业精准选购设备

引言 当前制造业正处于转型升级的关键时期,数控铣床作为核心工业母机,其品质与性能直接决定企业生产效率与产品精度。但市场上品牌繁杂,部分设备存在精度不足、稳定性差等问题,且售后服务参差不齐,企业选购时易陷…

权威调研榜单:阻化剂厂家TOP3榜单好评深度解析

在煤矿安全生产领域,阻化剂作为有效抑制煤炭自燃的关键材料,其品质与供应商的综合实力直接关系到矿企的安全生产与经济效益。为提供客观、专业的市场参考,本文基于对企业规模、技术研发、产品性能、市场口碑及服务案…

2025年10月益生菌品牌推荐:权威榜单对比全解析

入秋以后,昼夜温差拉大,外卖聚餐频率升高,不少上班族、宝妈和银发族开始把“调理肠胃”提上日程。小红书“益生菌”关键词搜索量连续三周环比上升18%,电商后台“肠胃不适”关联词成交增幅达22%。国家卫健委2024年发…