如何混淆JavaWeb代码

最近在公司项目打包过程中要求要对项目中的代码进行混淆,
使反编译之后看到的代码的类的名称,成员变量,函数名称都变成无意义的a,b,c...
造成阅读代码的障碍,这也是核心技术保护的一种方法,
java中比较常用代码混淆工具就是proguard,自己在使用过程中也遇到了一些问题,
所以将使用过程记录下来,以作备忘。

主要步骤如下:

  1. 将web项目中的源码导出为jar,eclipse中可以很容易做到
  2. 下载proguard,地址:https://www.guardsquare.com/en/products/proguard
  3. 打开proguard中的bin下proguardgui.bat,启动gui工具,这里使用的proguard6.0.3
  4. 添加需要混淆的jar,图中1表示jar的数据路径,2表示jar输出路径,3表示项目使用到的所有jar,这里讲项目lib下的所有jar都添加了进来。
    在这里插入图片描述
  5. 添加不需要混淆的类,可以设置类中的成员变量及方法,web项目中尤为需要注意的controller层的代码不能够被混淆,否则前端调用时可能会出现问题,我这里测试是这样的。
    在这里插入图片描述
  6. 如果混淆之后运行服务在tomcat中出现java.lang.ClassFormatError类型的错误,可以在Optimizations位置添加!code/allocation/variable设置
    在这里插入图片描述
  7. 执行混淆程序,为了方便下次使用,可以保存配置Save configuration,成功的执行没有任何warning信息和错误提示,提示Processing completed successfully表示混淆执行成功
    在这里插入图片描述
  8. 通过解压工具打开jar,将混淆的代码拷贝没有混淆的项目的WEB-INF/classes下,具体根据你的项目情况替换掉,如果有提示duplicate的类之类的信息,根据提示重复的jar,可以返回第4步,移除掉重复jar,在重新执行混淆
  9. 启动tomcat服务验证是否能够正常执行,出现问题可以搜索相关问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值