Java 开发语言以其安全性高、代码优化、跨平台等特性,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位。特别是近年来大数据、互联网+、云计算技术的不断发展,Java 开发语言更具有不可替代的地位。

不过,Java 最突出的跨平台优势使其要以中间代码的形式运行在虚拟机环境中,因此 Java 代码反编译要比其他开发语言更容易实现,并且反编译的代码经过优化后几乎可与源代码相媲美。为了避免出这种情况,保护软件知识产权,有一种叫做 Java 混淆器的工具被开发出来。

但 Java 混淆器的作用是对编译好的代码进行混淆,使得反编译后的代码混乱难懂,真正起的作用只是增加了逆向工程的难度,最终结果也是治标不治本,对于一些掌握工具的人来说几乎还是透明的。另外由于 Java 程序中会有多重映射关系,因此大多数混淆工具的兼容性会很差。

推荐一种加壳工具保护jar包的方式—Virbox Protector

目前有两个版本可选择。

第一个是带许可版本,加壳时与许可绑定,加密后的软件需要有许可授权才能打开使用。

第二个是独立版加壳,只做加壳的处理,加密后的软件直接可交付使用。

下面是独立版Virbox Protector加壳工具对jar包的加密流程。

1、部署项目并启动服务

项目放在 webapps 目录下,先启动 tomcat 服务确认能正常启动,启动过后该 War 包会自动解压出一个同名的文件夹

 

启动 tomcat 服务

 

找到依赖的解释器

服务启动成功后,进入任务管理器-服务-找到目前运行项目所依赖的 jdk , 进入目录找到对应程序 进行加密。 如下图

 

2、对.jar或者.class文件进行加密

①首先对安装环境 jdk 路径下的 java.exe 进行加密,将 java.exe 拖入到加壳工具Virbox Protector Standalone中。

 

②在加密选项页面将插件的ds按钮打开。

 

③点击“立即加壳”,加壳后会额外生成图示两个文件。

 

java.exe.ssp 是配置文件,在后面对 .class/.jar加密时会用到;java.ssp.exe 是加壳后的 java.exe 文件,将 java.exe 剪切到其他文件夹备份,java.ssp.exe 名字改为java.exe 即可。

④打开“DSProtector.exe”对 .class/.jar进行保护。

 

添加上一步加密 java.exe 生成的 java.exe.ssp 文件。

 

添加要加密的.class/.jar文件。

 

 

点击“保护它”,加密成功。

如需试用Virbox Protector Standalone:http://shell.virbox.com

授权许可版本加壳工具可访问:https://lm.virbox.com

java项目对jar包加密流程,防止反编译的更多相关文章

  1. paip.批处理清理java项目冗余jar的方法

    paip.批处理清理java项目冗余jar的方法 在myeclipse中开发的java项目遇到jar包冗余情况,如何删除项目中的冗余jar包啊?项目很大jar包一百多个. 2010-09-14 14: ...

  2. java项目打jar包的两种情况

    链接地址:http://jingyan.baidu.com/article/6b97984d8a6ddc1ca2b0bfa0.html 本文介绍一下java项目打jar包时的两种情况各怎么操作   方 ...

  3. java 项目得到jar和classes路径

    java 项目得到jar和classes路径 public static String getJarPath(Class clazz) { String path = clazz.getProtect ...

  4. windows下面的java项目打成jar放到XShell终端上面进行远程调试

    前言: java项目打成jar放到linux上面运行,但是linux上面没有eclipse不能进行debug,所以要在windows的eclipse中进行远程调试. 需要注意的是!!!-->在e ...

  5. Eclipse将Java项目打成jar工具包

    jar包:就是别人已经写好的一些类,然后将这些类进行打包,你可以将这些jar包引入你的项目中,然后就可以直接使用这些jar包中的类和属性以及方法. jar包可分为可执行jar包和jar工具包,在这里, ...

  6. java:编写jar包加密工具,防止反编译

    懒人方案 网盘: 链接:https://pan.baidu.com/s/1x4OB1IF2HZGgtLhd1Kr_AQ提取码:glx7 网盘内是已生成可用工具,下载可以直接使用,使用前看一下READ. ...

  7. java项目打成jar包时引用了第三方jar,此时我们该如何解决呢

    Web项目做多了,反而对单纯的java项目陌生了,今天我们在开发项目的过程中,碰到一个这样的需求:需要将java项目放到linux系统上跑起来,当然这个javaSE项目是带main方法的.我们知道在I ...

  8. java项目打jar包

    首先 在工程中,右键项目,有个export,选择JAR File,就能导出jar包. 一.java项目没有导入第三方jar包 1. 首先在Eclipse中打开项目, 右键点击项目,选择“Export” ...

  9. (转)IntelliJ IDEA java项目导入jar包,打jar包

    以下为转载原文:https://www.cnblogs.com/yulia/p/6824058.html 一.导入 1.java项目在没有导入该jar包之前,如图: 2.点击 File ->   ...

随机推荐

  1. javascript中数组的方法

    数组的方法 1.concat():连接两个或多个数组 2.indexOf(arg): ​ 查找数组中的arg元素,如果没有,则返回-1,如果有,则返回该元素的最小下标 ​ lastIndexOf(ar ...

  2. 【深度学习】吴恩达网易公开课练习(class2 week1)

    权重初始化 参考资料: 知乎 CSDN 权重初始化不能全部为0,不能都是同一个值.原因是,如果所有的初始权重是相同的,那么根据前向和反向传播公式,之后每一个权重的迭代过程也是完全相同的.结果就是,无论 ...

  3. SonarLint 代码质量管理

    Below are the instructions of how to install and use SonarLint. Install SonarLint Extensions in VS20 ...

  4. Spring Boot 读取 resource 下文件

    支持linux下读取 import org.springframework.core.io.ClassPathResource; public byte[] getCertStream(String ...

  5. pandas合并merge-【老鱼学pandas】

    本节讲述对于两个数据集按照相同列的值进行合并. 首先定义原始数据: import pandas as pd import numpy as np data0 = pd.DataFrame({'key' ...

  6. 一起学Hive——总结常用的Hive优化技巧

    今天总结本人在使用Hive过程中的一些优化技巧,希望给大家带来帮助.Hive优化最体现程序员的技术能力,面试官在面试时最喜欢问的就是Hive的优化技巧. 技巧1.控制reducer数量 下面的内容是我 ...

  7. Django----admin模块初识

    步骤1:创建管理员用户:在Terminal输入:pythonmanage.py createsuperuser 如下图所示说明创建成功 步骤二:运行项目文件:python manage.py runs ...

  8. Rank of Tetris 拓扑排序+并查集

    Problem Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球. 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子: ...

  9. 20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第二周:整体性总结)

    20175312 2018-2019-2 <Java程序设计>结对编程练习_四则运算(第二周:整体性总结) 结对对象与其博客链接 20175309 刘雨恒:https://www.cnbl ...

  10. Round#534 div.2-B Game with string

    唔,第一次参加,掉了好多分. http://codeforces.com/contest/1104/problem/B 不用考虑太多,string真的好厉害. #include<stdio.h& ...