文章目录

  • 1.封装Jar包
  • 2.使用Allatori混淆Jar包



最近经常有将Java代码封装成Jar包并且混淆的需求,之前也使用过Android Studio自带的封装和混淆功能,但是过程比较繁琐。而且在IDEA中似乎没有相同的工具(可能是没找到…)。因此,使用考虑使用IDEA对代码进行打包,使用第三方软件来实现对Jar包的混淆。

1.封装Jar包

  1. 在IDEA项目中新建一个模块(或者新建一个项目),将需要封装的包或者.java文件放在该模块(项目)中。
  2. 点击File --> Project Structure(Ctrl+Alt+Shift+S) --> Artifacts --> “+” --> JAR --> From modules with…,打开生成所Jar的配置页面
  3. 在Module处选择要封装代码所在的模块名,如果存在主类,还可以指定主类名,也可以为空。主类就是实现了main()函数的一个类,这里应该是用于可运行Jar包的生成的。但是笔者暂时用不到存在main()函数的类,因此不做多的探究,空置即可。然后点击下方OK
  4. 在打开的如下页面中,指定生成Jar包的信息(示例类名为JarTest)。Output directory为最终生成Jar包的路径(建议不要使用模块下的src路径,否则可能会创建Jar包失败),下方为最终生成Jar包的文件名,可以右键Rename修改。无误后点击下方的Apply即可。
  5. 点击菜单栏中Build --> Build Artifacts,在Buid结束后,即可在指定的输出文件夹下看到生成的jar包了。

2.使用Allatori混淆Jar包

在通过上述方式获得Jar包后,即可通过Allatori软件对该Jar包进行混淆。Allatori 7.1百度云下载,提取码:jjey。

下载好后,直接将文件解压即可,打开\Allatori-7.3-Demo\tutorial文件夹,文件夹内容如下图所示:

idea安装java代码混淆器 idea 代码混淆_idea安装java代码混淆器


根据笔者个人的理解和测试结果来看(没有阅读官方说明,仅仅为了快速应用,以下均为个人理解):每一个step文件夹代表了一种混淆规则,笔者简单测试了step01-step05这5中混淆方式,发现只有step01不会混淆包名、类名、public的方法名和变量名。因此,在需要使用混淆后的jar包来代替源码而不修改测试代码的情况下建议使用step01文件夹进行混淆。下面简要说明step01混淆规则的使用方式:

  1. 打开step01/files文件夹,如下图所示:
  2. idea安装java代码混淆器 idea 代码混淆_java_02

  3. 将刚刚生成的Jar包移动到该目录下。
  4. 打开配置文件config.xml,修改input标签下的第一个jar标签
<jar in="混淆前的jar包名" out="混淆后的jar包名"/>
# 如下,即为将JarTest.jar混淆后生成:JarTest_Obf.jar文件
<jar in="JarTest.jar" out="JarTest_Obf.jar"/>
  1. 双击运行RunAllatori.bat文件,即开始混淆。运行结束后,即可看到生成的Jar包,将其导入IDEA中即可查看代码的混淆结果。