使用 IntelliJ IDEA 开发一般 Java 应用程序时通过 Allatori 进行代码混淆非常容易配置,下面总结一下本人经验,介绍一下配置方法。

首先在 IDEA 的 Module 所在硬盘目录内创建一个名为 allatori 的子目录,将 Allatori 自己的 jar 文件都复制到这个子目录下。然后在 IDEA 的 Module 所在目录内创建两个 XML 文件,一个是 Allatori 自己的混淆配置文件,命名为 config-allatori.xml;另一个是用于 Ant 构建的配置文件,命名为 build-allatori.xml。首先看 config-allatori.xml 文件的内容,基本可以作为一个模板:

1 <?xml version="1.0" encoding="UTF-8"?>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

这里我的 Module 中有标准 Java 类,也有接口。含有 main 方法的启动类 Launcher 不应被混淆,接口也不应被混淆,因为涉及到 JNA 的本地方法映射调用,所以这里显示了如何在 Allatori 混淆配置中进行相应设置的方法。同时注意,由于我这个 Module 除了使用自己专有的第三方库以外,还使用了 Module 所在项目的项目全局第三方库,所以在上面的混淆配置的 小节部分可以看到必须指定准确的第三方库相对或绝对路径用于编译混淆。因为开发一般 Java 应用程序,不必像 Android 应用程序那样把第三方库一同打进目标应用程序 jar 文件中,第三方库的 jar 文件编译后也是单独存在的,所以混淆配置中不必指定第三方库的类防止混淆。

下面再来看 build-allatori.xml 文件的内容,也可以作为一个模板:

1 <?xml version="1.0" encoding="UTF-8"?>

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

这里主要是注意,${out.classes.absolute.dir} 以及 ${out.classes.absolute.dir}-obfuscated 所定义的 IDEA 针对项目 Module 编译产生的目标类文件以及 jar 文件所在路径一定要准确。

然后我们就要将 build-allatori.xml 加入到 IDEA 的 Ant Build 系统中,如下图所示:

点击 IDEA 右上部分 Ant Build 那个按钮,在弹出的 Dock 小窗口中点击“+”按钮,然后选择 build-allatori.xml 文件即可将其加入到 IDEA 的 Ant Build 系统中。

接下来,我们进入到 IDEA 的 Project Structure 配置中,创建好 Module 的 Artifacts,在其 Artifacts 的具体属性配置中,需要指定其 Post-processing 使用 build-allatori.xml 中定义的名为“你的module名字-obfuscated”的 target(我这里是 MacCameraCaptureTest-obfuscated),如下图所示:

注意红色区域里面,要把 Run Ant target 前面勾选中,然后点击其右边的“...”按钮,会出现选择窗口,你需要选择 build-allatori.xml 中定义的名为“你的module名字-obfuscated”的 target(我这里是 MacCameraCaptureTest-obfuscated)。

之后,点击 IDEA 菜单“Build”->“Build Artifacts...”菜单项并选择“Build”命令来进行 Module 的编译构建即可。你会在 Module 的 Artifact 生成目录下看到两个 jar 文件,其中一个名为“你的Module名字-obfuscated.jar”的文件(我这里是 MacCameraCaptureTest-obfuscated.jar),那就是混淆以后的 jar 文件了;不带“-obfuscated”后缀的 jar 文件是没有混淆的版本。

另外注意,如果需要清理 Module 已生成的类文件及 jar(包括混淆版本),可以通过 IDEA 的 Ant Build 执行 build-allatori.xml 中定义的“你的module名字-clean” target,就可以彻底清除它们。

idea java 代码混淆加密_使用 IntelliJ IDEA 开发一般 Java 应用程序时配置 Allatori 进行代码混淆...相关推荐

  1. java 微信 接收消息_微信公众平台开发教程Java版(三) 消息接收和发送

    https://www.iteye.com/blog/tuposky-2017429 前面两章已经介绍了如何接入微信公众平台,这一章说说消息的接收和发送 可以先了解公众平台的消息api接口(接收消息, ...

  2. Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名

    原文:Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名 源代码下载地址:http://www.zuidaima.com/share/1550463397874 ...

  3. 微信公众号开发java流程_微信公众号开发教程java 编程语言的特点及选择

    微信公众号开发教程java 编程语言的特点及选择 微信公众号为用户提供了相关的工具,来对微信公众号进行一个简单的开发.但是如果想实现一些复杂的功能,其实还是要借助于一些编程语言的使用.所以要了解,在微 ...

  4. win10c语言弹出框,win10系统启动程序时弹出异常代码c0000005的解决技巧

    我们在操作win10 64位系统电脑的时候,常常会遇到win10系统启动程序时弹出异常代码c0000005的问题,非常不方便.有什么办法可以永久解决win10系统启动程序时弹出异常代码c0000005 ...

  5. java python rsa加密_实现Java加密,Python解密的RSA非对称加密算法功能

    摘要 因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端 ...

  6. java设置pdf加密_如何使用Java对PDF进行加密,密码保护和设置受限权限

    java设置pdf加密 Today we will be looking at the document workhorse that is PDF, and how to programmatica ...

  7. 华为云IOT的应用侧开发Java Demo使用详细教程(IntelliJ IDEA 开发)

    第0章 简介         最近有很多小伙伴在使用华为云IOT的应用侧开发的Java Demo时遇到一些问题,本期就教大家如何使用这个基于华为云官方提供的Java Demo,本期教程带大家做的是查询 ...

  8. java 的 exe脱壳_[已解决]求教如何使用java编写加壳程序对PE文件进行加壳

    20 2017-5-8 15:15 这个问题就需要来谈谈壳的架构问题了. 壳的三大架构 1.最早的壳几乎都是virus演化来的,大部分都是汇编直接写的. 好处就是直接可以把汇编代码复制出来当作壳的lo ...

  9. 【Java语言基础】2.1 IntelliJ IDEA开发工具概述

    IntelliJ IDEA开发工具概述 1. 之前的开发工具 文本编辑工具:记事本.UltraEdit.EditPlus.TextPad.NotePad++.sublime- 存在的问题:编写代码时没 ...

最新文章

  1. 不用任何软件,让电脑不中***
  2. Android Material Design按钮样式
  3. WP7-网络-读取网页源码
  4. tableau必知必会之学做时尚的环状条形图(跑道图)
  5. 课堂作业_什么是图灵测试
  6. iPhone将NSString转换编码集为gb2312或者gbk的方法
  7. vue 移动端头像裁剪_使用vue-cropper裁剪正方形上传头像-阿里云开发者社区
  8. android系统功耗优化(1)---高通平台功耗优化的基础知识
  9. SDCMS 1.1sp1的XSS漏洞的挖掘与利用
  10. Web Worker——js的多线程,实现统计博客园总阅读量
  11. request.getRequestDispatcher(url).forward(request, response)
  12. Android基础之AutoCompleteTextView的使用
  13. java筛选excel数据_Excel中的筛选技巧有哪些,总结四种筛选技巧分享给大家
  14. 飞机大战python素材_python飞机大战源码和素材
  15. Android Camera动态人脸识别+人脸检测基于OpenCV(无需OpenCVManager)
  16. 关于MSOCache
  17. 1024happyCTF
  18. 【NOIP普及组】1919:【02NOIP普及组】选数
  19. [LuoguU41039]PION后缀自动机 树链剖分+动态开点线段树
  20. 硬实时RTLinux安装配置详解 (一):准备工作

热门文章

  1. TensorLayer的安装
  2. TensorFlow前向传播
  3. 谷歌TPU优化新进展:数据吞吐提升15倍、每瓦特性能猛增
  4. 分析redis中大key的几种办法
  5. Kafka的常见错误分析
  6. Cloudera maneger登录页面后的操作是什么?
  7. JavaSE各阶段练习题----Map
  8. leetcode 563. 二叉树的坡度(Java版)
  9. leetcode 121. 买卖股票的最佳时机
  10. 【Spring】JSP 九大内置对象、作用域复习