登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. Platforms
  3. WINDOWS
  4. JAVA
  5. 正文

Allatori Java Obfuscator混淆Spring代码

2025-03-24

一、需求

想混淆Java Spring boot代码,所以用了allatori

二、使用体验

最基础的配置:

<config>
    <input>
      <jar in="spring-api.jar" out="obf-spring-api.jar">
            <nested in="BOOT-INF/lib/iios-*.jar"/>
        </jar>
    </input>
    <classpath >
		<!--  -->
    </classpath>

    <!-- Keeping names of all public and protected classes, methods and fields. -->
    <keep-names>
        <class access="protected+">
            <field access="protected+"/>
            <method access="protected+"/>
        </class>
    </keep-names>

    <!-- Create obfuscation log file. It contains renaming mapping and is needed to restore stack traces. -->
    <!--<property name="log-file" value="allatori-log.xml"/>
	<property name="control-flow-obfuscation" value="enable"/>
	<property name="default-package" value=""/>
	<property name="classes-naming" value="abc"/>
	<property name="methods-naming" value="keywords"/>
	<property name="fields-naming" value="keywords"/>
	<property name="classes-naming-prefix" value="c_"/>
	<property name="methods-naming-prefix" value="m_"/>
	<property name="fields-naming-prefix" value="f_"/>
	<property name="local-variables-naming" value="single-name"/>
	<property name="update-resource-names" value="enable"/>
	<property name="update-resource-contents" value="enable"/>
	<property name="synthetize-methods" value="all"/>-->
</config>

使用体验良好,总结:

  • 可以实现字符串加密;
  • 可以实现字段名缩短;
  • 可以实现内嵌的第三方java包混淆加密;

三、最佳实现

混淆技巧

  • 常量字符串不会被混淆,因此,想要被混淆的,不要写final String,也不要定义变量,直接放在String.format()里面用;
  • 字符串用concat()、+拼接不会被混淆,想要混淆用string.format()拼接;
  • public 函数通常不会被混淆、隐藏,因此不需要public的函数,尽量全部private掉;
标签: 暂无
最后更新:2025-04-01

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号