`

allatori混淆技术总结

阅读更多
Allatori混淆技术

一、 混淆器介绍
1、混淆出现的背景
Java是一种跨平台的、解释型语言,Java源代码编译成中间“字节码”存储于class文件中。由于跨平台的需要,Java字节码中包括了很多源代码信息,如变量名、方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成Java源代码。为了防止这种现象,我们可以使用Java混淆器对Java字节码进行混淆。 

2、混淆器的优势
混淆就是对发布出去的程序进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能,而混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义。被混淆过的程序代码,仍然遵照原来的档案格式和指令集,执行结果也与混淆前一样,只是混淆器将代码中的所有变量、函数、类的名称变为简短的英文字母代号,在缺乏相应的函数名和程序注释的况下,即使被反编译,也将难以阅读。同时混淆是不可逆的,在混淆的过程中一些不影响正常运行的信息将永久丢失,这些信息的丢失使程序变得更加难以理解。
混淆器的作用不仅仅是保护代码,它也有精简编译后程序大小的作用。由于以上介绍的缩短变量和函数名以及丢失部分信息的原因, 编译后jar文件体积大约能减少25% ,这对当前费用较贵的无线网络传输是有一定意义的。


二、Allatori混淆技术介绍
Allatori是一个Java 混淆器,它属于第二代的混淆器,因此它能够全方位的保护你的知识产权。 Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。对于教育和非商业项目来说这个混淆器是免费的。新版本支持war和ear文件格式,并且允许对需要混淆代码的应用程序添加有效日期。





三、Allatori使用和操作

从官网下载完成并解压后,会出现一个allatori.jar文件,那么它的混淆技术就是依靠这个包去实现的
1、 文件结构

解压后的目录



混淆时依赖的jar包



下面是官方带的例子,里面有配置文件(config.xml)、运行混淆的命令文件(RunAllatori.bat)、清除产生的新文件的命令文件(Clean.bat)、将要被混淆的jar文件(test.jar、mousegestures-1.2.jar)

示例图

2、文件详细说明
图中各个文件的内容可以从下图中看到:

1、 Clean.bat
就是删除生成的被混淆的文件和log文件

Clean.bat文件内容

2、 RunAllatori
调用Java命令运行allatori.jar文件,并且加载config.xml配置文件

RunAllatori文件内容

3、 config.xml
配置文件,是混淆过程中最重要的文件,需要用户根据实际情况来配置

Config.xml文件内容

4、 配置文件
config标签:这个是配置的根标签。
Jars标签:用来设置将要被混淆的jar(war,ear)文件。应该至少包含一个嵌套的jar标签和dir标签来设置输入和输出文件。我们的例子中可以看到包含了两个jar标签

Jar标签:有两个属性—in、out,分别表示将要被混淆的jar文件和混淆后输出的文件

Keep-names标签:用来设置那些在混淆过程中不需要被重命名的类、方法、变量。如果被混淆的应用是个公共库,那么应该保留所有的公共接口名字不被重命令;如果是个独立的应用程序,那么将至少保留主类的名字不被重命名;当使用到反射的时候,也要保持类名和方法名字不被重命名
Property标签:用来设置不同的混淆特性的,它有两个必备的属性:name和value。Name可以设置为----log文件、字符串加密、控制混淆流程、重命名方式等

详细的配置说明参见http://www.allatori.com/doc.html

2、 混淆效果
混淆前

混淆前的代码



混淆后的反编译效果:

混淆后反编译效果



















四、在项目中实际应用
我们拿定位服务器来进行演示。
1、导出应用为war包


选择war file

选择保存的路径

点击Finish
















2、准备lib包和编写配置文件

准备的文件
Lib目录里面是gmlc运行所需要的jar包



配置文件


运行文件

3、运行开始命令
双击RunAllatori.bat文件

运行窗口






运行完成后会生成两个文件:gmlc.allobf.war、log.xml文件

混淆完成后

Log.xml文件内容:


通过log.xml文件可以查看哪些类、方法、变量被混淆后重命名成什么样的名字

而gmlc.allobf.war就是混淆后的工件了,可以直接发布部署到tomcat的webapps目录下,启动tomcat就可以访问了(当然启动之前修改一下名字,改为gmlc.war)
  • 大小: 56.9 KB
  • 大小: 64.1 KB
  • 大小: 104.1 KB
  • 大小: 15.4 KB
  • 大小: 26.8 KB
  • 大小: 62.1 KB
  • 大小: 96.8 KB
  • 大小: 46.8 KB
  • 大小: 56.1 KB
  • 大小: 89.1 KB
  • 大小: 53.4 KB
  • 大小: 64.1 KB
  • 大小: 38.9 KB
  • 大小: 184.7 KB
  • 大小: 79.2 KB
  • 大小: 16.7 KB
  • 大小: 65.2 KB
  • 大小: 72.5 KB
  • 大小: 69.6 KB
1
2
分享到:
评论
1 楼 masuweng 2018-03-18  
     楼主讲的很详细mark

相关推荐

    Allatori混淆技术使用步骤.zip

    Allatori通过混淆技术,使得原始代码变得难以理解,大大增加了逆向工程的难度。下面,我们将详细介绍Allatori混淆技术的使用步骤。 **步骤1:下载与安装** 首先,你需要访问Allatori的官方网站或第三方平台下载最新...

    Spring Boot + Allatori 代码混淆demo

    Spring Boot作为一个流行的微服务框架,广泛应用于企业级开发,而Allatori则是一个强大的Java代码混淆工具,它能有效地保护Java字节码,使其难以理解和反编译。下面将详细介绍Spring Boot结合Allatori进行代码混淆的...

    allatori 混淆

    Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。对于教育和非商业项目来说这个混淆器是免费的。新版本支持war和ear文件格式,并且允许对需要混淆代码的应用程序添加...

    java代码混淆工具(Allatori)

    Allatori 是第二代 Java 混淆器,可为您的知识产权提供全方位的保护。 尽管大多数第二代混淆器都提供了值得保护的级别,但我们已经在Allatori中开发了许多附加功能,以使对代码进行逆向工程几乎不可能。 Allatori ...

    allatori代码混淆-简单配置

    每种工具都有其特点和优势,开发者可以根据项目需求和技术背景来决定最适合的混淆方案。 总之,Allatori代码混淆是一种有效增强Java应用程序安全性的手段,通过简单的配置,我们可以有针对性地保护关键代码,防止被...

    Allatori java 代码混淆

    4. 类和方法的隐藏:Allatori可以隐藏类和方法,使它们不被反射或动态代理技术轻易访问,增加攻击者利用这些技术的难度。 5. 反调试和反模拟:Allatori包含反调试和反模拟特性,可以检测并阻止调试器的运行,以及...

    allatori第二代Java代码混淆器Maven打包配置,依赖库,以及配置文件

    allatori第二代Java代码混淆器Maven打包配置,依赖库,以及配置文件。示例运行,可行。

    java反编译源码保护-confusion:SpringBoot项目使用Allatori代码混淆技术

    Allatori混淆技术介绍 Allatori是一个Java 混淆器,它属于第二代混淆器,因此它能够全方位的保护你的知识产权。 Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。对于...

    Allatori-7.4去除main方法增加打印信息

    《Allatori-7.4工具在Java代码混淆中的应用与实践》 在Java软件开发过程中,为了保护源代码不被轻易反编译和篡改,开发者通常会...对于想要深入了解代码混淆技术的读者,Allatori-7.4无疑是一个值得研究的实用工具。

    Allatori混淆工具

    Allatori事例 Allatori demo

    Allatori-8.1代码混淆软件

    Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。对于教育和非商业项目来说这个混淆器是免费的。新版本支持war和ear文件格式,并且允许对需要混淆代码的应用程序添加...

    Spring Boot使用Allatori代码混淆的方法

    Allatori 具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。此外,Allatori 还支持 war 和 jar 文件格式,并且允许对需要混淆代码的应用程序添加有效日期。对于教育和非商业项目来...

    Allatori Java 代码混淆

    Allatori Java 代码混淆工具就是这样一个实用的工具,能够有效地混淆Java字节码,使代码逻辑变得难以解析。 Allatori 是一个功能强大的Java代码混淆器,它提供了多种混淆策略,包括变量名、类名、方法名的重命名,...

    Allatori android字符串混淆

    Allatori具有以下几种保护方式:命名混淆,流混淆,调试信息混淆,字符串混淆,以及水印技术。对于教育和非商业项目来说这个混淆器是免费的。新版本支持war和ear文件格式,并且允许对需要混淆代码的应用程序添加...

    Allatori-8.2-Demo.zip

    Allatori是第二代Java混淆器,它为您的知识产权提供了全方位的保护。 虽然大多数第二代混淆器允许有价值的保护级别,但我们已经在Allatori中开发了许多额外的功能,使反向工程代码几乎不可能。 Allatori不仅...

    java混淆器 Allatori-3.2

    Jocky:在生成class文件的过程中(即编译过程),通过修改编译器的代码生成过程,对编译器生成的中间代码进行混淆,最后生成class文件。...Allatori-3.2-Demo\tutorial\step1目录下修改相应的配置文件即可

    allatori-annotations.jar

    allatori混淆用到的jar

    allatori-7.9-完美版.jar

    Allatori-7.9最新版 1.去除main方法增加打印信息 2.修改ALLATORIxDEMO加密方法名称为随机java关键字 3.修改混淆过程的打印日志 4.修改混淆完后的jar包内的注释信息

    JAVA混淆工具Allatori-5.9-Demo帮助文档中文翻译以及工具

    **Java混淆工具Allatori** Allatori是一款强大的Java代码混淆工具,它的主要功能是对Java字节码进行混淆,以增加反编译的难度,保护开发者们的知识产权。混淆过程通常包括重命名类、方法和变量,打乱代码逻辑,以及...

    代码混淆-allatori.jar

    代码混淆-allatori.jar

Global site tag (gtag.js) - Google Analytics