allatori-JAVA代码混淆工具

news2024/11/27 11:42:44

Allatori是第二代Java混淆器,它为您的知识产权提供全方位的保护。

虽然大多数第二代混淆器都能提供值得信赖的保护,但我们在Allatori中开发了一些额外的功能,使代码的反向工程几乎不可能。

Allatori不仅仅是混淆,它还能最大限度地减少应用程序的大小,提高速度,同时除了你和你的团队,任何人都无法读懂你的代码。Allatori和所有现代的Java混淆器一样,具有完整的水印功能,可以为您的软件提供适当的许可!

如果你有必要保护你的软件,如果你想减少它的大小和处理时间,Allatori混淆器是为你准备的。

 官网 https://allatori.com/

上代码

在根目录下创建allatori文件夹,放入配置文件allatori.xml,创建lib文件夹,导入allatori.jar和allatori-annotations.jar。

<config>
    <input>
        <jar in="${project.build.finalName}.jar" out="${project.build.finalName}-obfuscated.jar"/>
    </input>

    <keep-names>
        <class access="protected+">
            <field access="protected+"/>
            <method access="protected+"/>
        </class>
    </keep-names>

    <property name="log-file" value="log.xml"/>
    <ignore-classes>
        <!-- 注意:spring的框架相关的文件需要排除,避免启动报错 -->
        <class template="class *springframework*"/>
        <class template="class org**"/>
    </ignore-classes>
</config>

 pom文件

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.smardec.mousegestures</groupId>
  <artifactId>mouse-gestures</artifactId>
  <packaging>jar</packaging>
  <version>1.2</version>
  <name>mouse-gestures</name>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>

    <plugins>

      <!-- 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-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}/allatori</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>

            <!-- Copy allatori.jar to 'allatori' directory to use the commented line -->
            <argument>${basedir}/allatori/lib/allatori.jar</argument>
            <!-- <argument>${basedir}/allatori/allatori.jar</argument> -->

            <argument>${basedir}/target/allatori.xml</argument>
          </arguments>
        </configuration>
      </plugin>

    </plugins>

  </build>

</project>

执行打包命令 

mvn clean package -U -Dmaven.test.skip=true

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

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

相关文章

为什么你感觉中层管理一直闲着没事干?

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 切记&#xff0c;任何文章不要过度深思&#xff08;任何东西都无法经得起审视&#xff0c;因为这世上没有同样的成长环境&#xff0c;也没有同样的认知水平同时也「没有适用于所…

eNSP的使用

目录 配置路由器 DHCP——动态主机配置协议 工作过程&#xff1a; 第一种场景——PC首次获取IP地址的情况 第二种场景——pc&#xff08;客户都&#xff09;再次获取IP地址的情况 DHCP配置&#xff1a; Telnet 搭建好图后 1.看广播域&#xff08;路由器有几个接口就有几…

在树莓派上搭建web站点并发布互联网上线【无需公网IP】

文章目录 概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS设置 Apache Web 服务器测试 web 站点安装静态样例站点将web站点发布到公网安装 Cpolar内网穿透cpolar进行token认证生成cpolar随机域名网址生成cpolar二级子域名将参数保存到cpolar配置文件中测试修改后配置文件配…

JUC--CompletableFuture下

对计算速度进行选用 import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit;public class Test4 {public static void main(String[] args) {CompletableFuture<String> a CompletableFuture.supplyAsync(() -> {try { TimeUnit.SE…

list和vector容器的插入与访问操作区别

文章目录 list插入元素和vector插入元素对比案例vector的做法list优化的做法为什么时间复杂度相同还会有性能差异 std::list和std::vector是C中的两种常见数据结构&#xff0c;它们在不同的使用场景下各有优势。 std::vector的内部实现是动态数组&#xff0c;它在连续的内存块…

weak_ptr 智能指针的使用

目录 一&#xff0c;weak_ptr 变量的定义 二&#xff0c;expired() 成员函数 三&#xff0c;lock() 成员函数 四&#xff0c;use_count() 成员函数 五&#xff0c;为什么要用 weak_ptr 一&#xff0c;weak_ptr 变量的定义 weak_ptr 对象的构造有3种方法&#xff1a; 1&am…

Python基础综合案例-数据可视化(折线图)

今天给大家带来的是Python综合实战开发的数据可视化操作 通过python实现对数据的分析、可视化 数据来源: 系统开发环境&#xff1a; 操作系统&#xff1a;win11 Python解释器版本&#xff1a;python3.10 开发工具&#xff1a;Pychram Python内置模块&#xff1a;pyecharts 1…

HarmonyOS/OpenHarmony应用开发-Stage模型应用/组件级配置

在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。图标和标签通常一起配置&#xff0c;可以分为应用图标、应用标签和入口图标、入口标签&#xff0c;分别对应app.json5配置文件…

二进制算术运算

当两个数码表示数量大小时&#xff0c;可以进行加减乘除等算术运算。 一&#xff1a;两数绝对值之间的运算 加法运算&#xff1a; 二进制的每一位只有0和1两个数&#xff0c;低位向高位的进位关系是“逢二进一”&#xff0c;所以中的每一位的运算规则为&#xff1a; 减法运算&…

【无标题】企业数字化转型需要什么样的生产力工具?

前言 企业的数字化转型是一个很大的话题&#xff0c;从宏观到微观&#xff0c;涉及到目标、战略、方案、路径、计划、组织、流程等方方面面。我们今天聊一个非常落地非常具体的问题——企业数字化转型需要什么样的生产力工具&#xff1f; 需要哪些类型的生产力工具&#xff1…

论文摘要写什么内容

一、引言 论文摘要是我们在学术研究领域当中最常见的一种形式&#xff0c;它扮演着关键的角色&#xff0c;为研究者在学术圈子中传播自己思想提供了重要途径。然而&#xff0c;如何编写一份既简洁而易读&#xff0c;又充满深度和洞察的摘要呢&#xff1f;这篇文章将提供一些基…

Scala特证/特质【6.7 特质(Trait)】

Scala特证/特质【6.7 特质&#xff08;Trait&#xff09;】 6.7 特质&#xff08;Trait&#xff09;Java 的接口接口的作用抽象类的作用 6.7.1 特质声明6.7.2 特质基本语法6.7.3 特质叠加6.7.4 特质叠加执行顺序6.7.5 特质自身类型6.7.6 特质和抽象类的区别 &#xff08;任意内…

Lua学习笔记:面向对象的实现

前言 本篇在讲什么 Lua中的面向对象的实现 本篇适合什么 适合初学Lua的小白 本篇需要什么 对Lua语法有简单认知 依赖Sublime Text编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手 提供全流程的源码内容 ★提高阅读体验★ &…

MySQL数据库基础(三):多表查询,子查询,开窗函数

十一、多表查询&#xff08;重点、难点&#xff09; 表与表之间的关系 在SQL语句中&#xff0c;数据表与数据表之间&#xff0c;如果存在关系&#xff0c;一般一共有3种情况&#xff1a; ① 一对一关系&#xff08;高级&#xff09; 比如有A、B两张表&#xff0c;A表中的每一…

多肽试剂:143120-27-8,Cyclo(-D-Tyr-Arg-Gly-Asp-Cys(carboxymethyl)-OH) sulfoxide

试剂基团反应特点&#xff08;Reagent group reaction characteristics&#xff09;&#xff1a; 环肽试剂Cyclo(-D-Tyr-Arg-Gly-Asp-Cys(carboxymethyl)-OH) sulfoxide&#xff0c;陕西新研博美生物科技有限公司多肽合成、定制多肽、同位素标记肽、人工胰岛素、磷酸肽、生物素…

Python split()函数使用详解,Python分割字符串

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;小白零基础《Python入门到精通》 split 1、不指定分隔符2、分隔符的类型3、指定分隔次数4、分隔的结果 split() 可…

你真的不想知道怎么用ai绘画图片生成图片吗?

亲爱的二次元迷们&#xff0c;你是否曾经梦想过能够画出自己心中的二次元角色&#xff0c;让他们跃然纸上、生动活泼地展现在世人面前&#xff1f;但是&#xff0c;面对空白的画板和一支笔&#xff0c;我们有时会感到无从下手&#xff0c;毫无艺术细胞可言。不要失望&#xff0…

Dlib —— 对视频流进行人脸识别(附C++部分源码、完整源码下载)

照片效果 视频效果 注意&#xff1a;Dlib检测人脸在Release版耗时与CPU有关,本人I7 10代约100ms左右&#xff0c;这里本人将人脸检测用Yolov5对人脸简单抠图训练后 使用yolov5推理检测人脸&#xff0c;之后将检测到的人脸输入给Dlib做特征&#xff0c;发现人脸特征部分耗时也较…

基础实验篇 | uORB消息读写与自定义实验(一)

导读 uORB是PX4/Pixhawk系统中非常重要且关键的模块之一&#xff0c;是用于无人机模块间通信的协议机制。本篇将详细介绍uORB并详细拆解uORB消息读写与自定义实验&#xff08;一&#xff09;。 基础实验篇 | uORB消息读写与自定义实验(一) ect Request Broker&#xff0c;微对…

7、动手学深度学习——卷积神经网络:基础部件+LeNet

1、图像卷积 1. 互相关运算 严格来说&#xff0c;卷积层是个错误的叫法&#xff0c;因为它所表达的运算其实是互相关运算&#xff08;cross-correlation&#xff09;&#xff0c;而不是卷积运算。在卷积层中&#xff0c;输入张量和核张量通过(互相关运算)产生输出张量。 首先…