java加密运行(支持window/linux)

张军 6404 12

java加密运行支持【spring+struts+mybatis+hibernate+mysql+oracle+sqlserver+postgresql+springMVC+springboot】源文件下载版本V7.0

jdk所需文件-V7.0.zip

测试项目.zip

安装配置.zip

java加密运行-管理员-V7.0.zip

java加密运行-客户端-V7.0.zip

反编译软件

视频讲解:

https://www.zhangjunbk.com/v/play/zj-3

https://www.zhangjunbk.com/v/play/zj-2

下面这篇文章就是这种实现方案(版本升级V6.0,加密方式改变,为256高强度加密):

非springboot项目总的来说配置就四步(联系QQ:360901061,技术支持):

1、无需安装,运行javaweb加密运行-用户.exe,选择项目路径进行加密。

2、拷贝cover-jdk里的bin和jre目录覆盖至你的jdk(1.6/1.7/1.8)

3.1、Windows配置你的tomcat环境变量,tomcat根目录\bin\setclasspath.bat:

        模板:        

        set JAVA_HOME=加密的jdk根目录

        set "JAVA_OPTS=%JAVA_OPTS% -agentpath:%JAVA_HOME%\bin\jvmlib.dll"  

        示例:

        set JAVA_HOME=E:\must-backup\jdk-cipher\cipher#test\jdk\windows\jdk1.7.0_51_src

        set "JAVA_OPTS=%JAVA_OPTS% -agentpath:%JAVA_HOME%\bin\jvmlib.dll"

3.2、Linux配置你的tomcat环境变量,tomcat根目录/bin/setclasspath.sh

        模板:

        JAVA_HOME=加密的jdk根目录

        JAVA_OPTS="$JAVA_OPTS -agentpath:$JAVA_HOME/bin/jvmlib.so"  

        示例:

        JAVA_HOME=/zhangjun/jdk/jdk1.7.0_51

        JAVA_OPTS="$JAVA_OPTS -agentpath:$JAVA_HOME/bin/jvmlib.so"

4、拷贝加密后的项目到tomcat的webapp中启动项目了就可以了。


注:windows电脑属性环境变量:JAVA_TOOL_OPTIONS=-agentpath:%JAVA_HOME%\bin\jvmlib.dll,这样无需要在setclasspath.bat中配置了。

注:linux环境变量:

JAVA_TOOL_OPTIONS:-agentpath:$JAVA_HOME/bin/jvmlib.so

export JAVA_TOOL_OPTIONS

,这样无需要在setclasspath.bat中配置了。

是springboot项目总的来说配置如下(联系QQ:360901061,技术支持):

springboot支持,建立xxx.bat文件,文件内容如下:

@echo off

set JAVA_HOME=D:\free_soft\Java\cipher.test\jdk1.8.0_20

set path=%JAVA_HOME%\bin;%path%

set CLASSPATH=.;%JAVA_HOME%\lib;%CLASSPATH%

%JAVA_HOME%\bin\java -agentpath:%JAVA_HOME%\bin\jvmlib.dll -jar zjweb.min.jar

pause


可替换默认版权输出的内容哦,请在%JAVA_HOME%/banner.txt,写上您公司的版权内容哦

【需要加密的反编译的一些场景】

更常用的是在开发中加密自己的jar包,提供给第三方使用

做法是比如已经加密的AAA.jar包要提供给第三使用

1、把AAA.jar里面的所有实现全部删除,只保留空方法供在开发中调用

2、编译这些空方法无实现打包成ZZZ.jar,核心代码都在已经加密的AAA.jar,而ZZZ.jar只是供调用,方便在eclipse中编译通过

3、把AAA.jar和ZZZ.jar给第三方就可以了

如果大家有此需求,可心联系我,QQ:360901061,谢谢大家支持

张军大致想到以下几种方式:

1. 混淆器,将jar包混淆后反编译出来的东西看起来就很眼花,但如果耐心一点的高级程序员也是可以看出来的,方案不可行。

2. 对jar包进行加密,然后在jvm层重写类加载器对其进行解密,以达到对jar包的加密保护。包括用对称加密算法和非对称加密算法。不管用什么算法,在jvm层面的类加载器实现的话,其实也作用不大,因为类加载器本身被反编译出来后就基本暴露无遗了,方案不可行。

3. 可以修改java编译后的class文件的某些属性,以让反编译软件分析不了,但它也不可靠,只要按照class格式深入分析下也能反编译出来,方案不可行。

4. 修改JDK源码,定制JDK就涉及到JVM的整体改动,用户不会用别人写的JDK的,而且还要求外部使用,这种方案不太可行。 

5. 利用JDK中JVM的某些类似钩子机制和事件监听机制,监听加载class事件,使用本地方式完成class的解密。C/C++被编译后想要反编译就很麻烦了,另外还能加壳,方案不可行。

6. 对JDK运行机制进行拦截,这样对使用者来说就可以放心使用了,方案可行。

7. 比较实用的是对某特定的jar包实现加密保护,并且jar包需要提供给外部使用,在eclipse中开发,但核心逻辑部分需要保护以免被简单反编译即能看到,如大家需要此帮助,请联系QQ:360901061。



下面讲解详细每个步骤说明:

1、公司开发的java web要项目打包成war包往外卖,怎么对war包进行处理,防止其自己拷贝后往外出售呢,如果不通过加密的方式,还有其他方式防止其出售呢.

2、大家都知道的,class很好反编译。出于对知识产权和自身软件的保护,不希望任何人都可以看到源代码或者被反编译工具进行解密。

【java web发布运行在tomcat 大概加密与反编译过程如下】

对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以。遗憾的是,Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很容易被窃取。

    有几种技术可以“模糊”Java类文件,使得反编译器处理类文件的效果大打折扣。然而,修改反编译器使之能够处理这些经过模糊处理的类文件并不是什么难事,所以不能简单地依赖模糊技术来保证源代码的安全。

    我们可以用流行的加密工具加密应用,比如java-web加密解密工具。这时,最终用户在运行应用之前必须先进行解密。但解密之后,最终用户就有了一份不加密的类文件,这和事先不进行加密没有什么差别。

    再说硬件加密锁,大多数厂商提供的加密锁只能进行dll的连接或简单的api调用,只要简单地反编译,就很容易把api去掉,这样加密锁根本起不了作用,那到底是否还有更好的解决办法呢?

现提供以下解决办法:

一、打开软件:javaweb加密运行-用户.exe

管理员软件

张军博客

用户软件

张军博客

张军博客

张军博客

Linux项目注册

张军博客

张军博客

项目注册码生成器注册(用于生成每个加密项目的注册码)

 张军博客

张军博客

注册项目注册码生成器(购买请联系QQ:360901061)

张军博客

张军博客

此时项目注册码生成器即可永久使用,项目机器码指每个项目项目所在机器上的机器码

张军博客

张军博客


客户端软件

张军博客


二、准备需要加密的项目:smvc-cipher

张军博客

三、验证未加密的WEB-INF/class下的.class文件,可以反编译

张军博客

四、验证未加密的WEB-INF/lib下的.jar文件,可以反编译

张军博客

五、启动项目,肯定可以启动

普通tomcat7为例

张军博客

张军博客

设置java_home,如果你本机配置通用环境变量可不用设置 

set JAVA_HOME=E:\must-backup\jdk-cipher\cipher#test\jdk\windows\jdk1.7.0_51_src

张军博客

点击启动

张军博客

启动成功,没有问题张军博客

张军博客

六、访问项目

张军博客

点击提交后台

张军博客

七、下面演示重点啦,加密项目

打开软件:javaweb加密运行-用户.exe

张军博客

选择项目目录和输出目录,这个目录到你的项目名

张军博客

张军博客

张军博客

提交加密

张军博客

查看加密的文件

张军博客


张军博客

测试加密的文件.class/.jar文件是否可以反编译

张军博客

张军博客

拷贝加密的项目至tomcat中

张军博客

启动项目,项目启动超来用不了,启动也会报错

set JAVA_HOME=E:\must-backup\jdk-cipher\cipher#test\jdk\windows\jdk1.7.0_51_src

张军博客

点击startup文件

张军博客

张军博客

张军博客

浏览器中浏览项目,首页显示没有问题,因为首页不调用后台。

张军博客

点击提交后台就不行了,由于加密原因,无法使用

张军博客

如何正常启动并使用呢

覆盖您本地的jdk

张军博客

张军博客

张军博客

张军博客

复制E:\must-backup\jdk-cipher\cipher#test\cover-jdk\windows\jdk1.7粘贴到E:\must-backup\jdk-cipher\cipher#test\jdk\windows\jdk1.7.0_51_src

张军博客


配置tomcat的setclasspath.bat文件

set JAVA_HOME=E:\must-backup\jdk-cipher\cipher#test\jdk\windows\jdk1.7.0_51_src

set "JAVA_OPTS=%JAVA_OPTS% -agentpath:%JAVA_HOME%\bin\jvmlib.dll"

张军博客

再次启动项目,可以见证奇迹发生了


张军博客

在浏览器中打开浏览

张军博客

张军博客

正常访问啦,Linux同样配置的哦。

如果是windows操作系统的方案

把一个核心的东西放到dll里面,这样dll是反编译不了的

目前能解决的就是这个方式了。想一劳永逸是不可能的。win都能破解,何况java

建议方案:根本的方法是凡是拷贝的副本,在运行时,程序自动连接在jvm内核中做正版验证。至少解决大部分问题。


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请请扫描上面二维码支持博主1元、2元、5元等您想捐的金额吧,狠狠点击下面给点支持吧

发表我的评论
最新评论 总共12条评论
  1. 13731168262@139.com
    博主技术很强,服务周到,购买授权很放心,大家多多支持
    13731168262@139.com2020-06-11 11:06:17 回复
    • 360901061@qq.com
      谢谢支持,您的支持是我最大的动力!!!
      360901061@qq.com回复13731168262@139.com2020-06-11 17:55:09 回复
  2. 623834439@qq.com
    感谢博主分享,我的项目是struts2.5.20 我的项目是机器码:582f97f94d8f3f793b0cb7ca558e9402 请授权一下
    623834439@qq.com2020-06-11 10:32:18 回复
    • 360901061@qq.com
      现在请大家购买注册码生成器授权,购买一次可以永久使用,并且可以对多个项目进行授权!可以管理多个项目的加密到期日期! 请联系QQ:360901061,远程技术支持服务!谢谢
      360901061@qq.com回复623834439@qq.com2020-06-11 17:57:09 回复
  3. 568809464@qq.com
    可以提供源码吗?想学习下
    568809464@qq.com2020-04-13 17:24:42 回复
    • 360901061@qq.com
      大家可以交流方法,源码不重要,知道方法即可
      360901061@qq.com回复568809464@qq.com2020-04-14 08:45:09 回复
    • 568809464@qq.com
      在.so文件中重写了classloader,在springboot项目启动时报错Caused by: java.lang.IllegalStateException: Unable to determine code source archive at org.springframework.boot.loader.Launcher.createArchive(Launcher.java:122) 这个是为什么?
      568809464@qq.com回复360901061@qq.com2020-04-15 17:03:08 回复
    • 360901061@qq.com
      可以看下我的网站视频讲解哦 https://www.zhangjunbk.com/v/index
      360901061@qq.com回复568809464@qq.com2020-04-18 19:32:58 回复
  4. leilvlin@163.com
    多谢博主那么慷慨,机器码:083e2b021c26cb138514fe3e4a8bdb44 请授权一下,谢谢,顺便问下博主有微信公众号没,感觉那个挺方便的
    leilvlin@163.com2020-04-13 00:10:43 回复
    • 360901061@qq.com
      20991231qq360901061599253ea211710404a051cb1747e17c6 微信群“张军网站共享资料群”
      360901061@qq.com回复leilvlin@163.com2020-04-13 08:58:50 回复
    • leilvlin@163.com
      谢谢
      leilvlin@163.com回复360901061@qq.com2020-04-13 09:07:26 回复
  5. angel_lin_in@163.com
    博主你好!请问支持非web在非tomcat容器下运行的项目吗? 还有替换了jdk的两个文件夹后,可以同时运行非加密的项目和加密后的项目吗? 另外我的机器码:9263bd3ab4955b6eeb565733ceef58b1, 麻烦给我个注册码.谢谢!
    angel_lin_in@163.com2020-03-25 12:18:46 回复
    • 360901061@qq.com
      可以同时运行的,注册码是20991231qq36090106187511b59df2a363d7d998a0a5760df2e
      360901061@qq.com回复angel_lin_in@163.com2020-03-25 16:07:02 回复
  6. 511406437@qq.com
    时代变了,害加密什么几把,提供服务就完事,害分享jar包
    511406437@qq.com2020-03-19 16:41:40 回复
    • 360901061@qq.com
      感谢评论,可能你写的项目都不是核心项目吧,如果是核心项目,还是有必要加密的哦
      360901061@qq.com回复511406437@qq.com2020-03-19 17:00:30 回复
  7. zhanglei_hb@qq.com
    博主您好!请问Tomcat使用Spring后支持吗? 另外,我的机器码:00f74d5415ea8f2ef36e4c7b5cfcf30f,麻烦给个注册码 QQQ
    zhanglei_hb@qq.com2020-03-12 18:45:58 回复
    • zhanglei_hb@qq.com
      谢谢博主!博主您好!今天试了下我的项目,发现有个问题:启动时加载lib下非加密的jar包里的.properties文件会报错,以ehcache-core.jar为例,会提示 Could not load [ehcache-version.properties],放classes目录下也是。当然,其他jar中有加载properties文件也是一样类似的错误。(环境:JDK1.8+TOMCAT8.0)
      zhanglei_hb@qq.com回复zhanglei_hb@qq.com2020-03-21 21:59:43 回复
    • 360901061@qq.com
      今天有时间我帮你远程看下吧
      360901061@qq.com回复zhanglei_hb@qq.com2020-03-22 00:51:30 回复
    • 360901061@qq.com
      ???可以加我微信,截图给我一下
      360901061@qq.com回复zhanglei_hb@qq.com2020-03-22 00:53:41 回复
    • zhanglei_hb@qq.com
      辛苦了,这么晚了还没睡,我加你QQ
      zhanglei_hb@qq.com回复360901061@qq.com2020-03-22 08:21:35 回复
    • 360901061@qq.com
      已解决,原因是因为原先struts版本2.3.37太高,降低到稳定版本2.3.16即可,谢谢使用
      360901061@qq.com回复zhanglei_hb@qq.com2020-03-22 14:30:07 回复
    • 360901061@qq.com
      多谢使用,永久注册码是:20991231qq3609010612f47dc3f6cbae4b8b5d7d33e47f10d8a
      360901061@qq.com回复zhanglei_hb@qq.com2020-03-13 19:06:25 回复
    • zhanglei_hb@qq.com
      谢谢博主!博主您好!今天试了下我的项目,发现有个问题:启动时加载lib下非加密的jar包里的.properties文件会报错,以ehcache-core.jar为例,会提示 Could not load [ehcache-version.properties],放classes目录下也是。当然,其他jar中有加载properties文件也是一样类似的错误。(环境:JDK1.8+TOMCAT8.0)
      zhanglei_hb@qq.com回复360901061@qq.com2020-03-21 22:00:44 回复
  8. 1076585014@qq.com
    楼主你好,这是我的机器码00f74d5415ea8f2ef36e4c7b5cfcf30f,麻烦给个注册码
    1076585014@qq.com2020-03-08 20:47:15 回复
    • 360901061@qq.com
      多谢使用,永久注册码:20991231qq3609010612f47dc3f6cbae4b8b5d7d33e47f10d8a
      360901061@qq.com回复1076585014@qq.com2020-03-08 20:48:42 回复
  9. 893947048@qq.com
    您好,我在使用的过程中发现tomcat抛出异常 没有找到jcbyte.JCByte 麻烦您提供下支撑 感谢
    893947048@qq.com2020-03-07 23:37:05 回复
    • 360901061@qq.com
      已经远程帮您解决了哦,感谢支持
      360901061@qq.com回复893947048@qq.com2020-03-08 12:55:30 回复
    • 893947048@qq.com
      感谢您的细心指导,不仅解决了问题还分析了前因后果,十分感谢
      893947048@qq.com回复360901061@qq.com2020-03-08 14:11:42 回复
  10. wgwang1994@163.com
    你好,目前这个jdk的新增文件有到期时间限制,这个是需要向您购买是吗?
    wgwang1994@163.com2019-11-21 20:54:00 回复
    • 360901061@qq.com
      此加密工具免费使用,支持远程支持,目前没有考虑收费哦
      360901061@qq.com回复wgwang1994@163.com2019-11-21 21:34:14 回复
  11. 437908704@qq.com
    麻烦问下,1,该jdk是否收费,收费标准是什么?看到视频里面说到有到期时间。 2,该加密方式大致思想是什么?
    437908704@qq.com2019-11-15 15:41:21 回复
    • 360901061@qq.com
      您好 1.该JDK免费使用,目前没有考虑收费。 2.对JDK运行机制进行拦截,不修改原JDK的源码,这样对使用者来说就可以放心使用了 感谢您的关注,谢谢
      360901061@qq.com回复437908704@qq.com2019-11-15 21:39:33 回复
    • 360901061@qq.com
      此加密工具免费使用,支持远程支持,目前没有考虑收费哦
      360901061@qq.com回复437908704@qq.com2019-11-15 22:14:33 回复
    • 360901061@qq.com
      支持远程技术支持,教你怎么使用哦
      360901061@qq.com回复437908704@qq.com2019-11-15 22:15:15 回复
  12. 360901061@qq.com
    如需技术帮助?请联系qq 360901061 感谢大家支持?
    360901061@qq.com2019-11-14 08:22:33 回复