背景 最近针对公司框架进行关键业务代码进行加密处理,防止通过jd-gui等反编译工具能够轻松还原工程代码,相关混淆方案配置使用比较复杂且针对springboot项目问题较多,所以针对class文件加密再通过自定义的classloder进行解密加载,此方案并不是绝对安全,只是加大反编译的困难程度,防君子不防小人,整体加密保护流程图如下图所示 maven插件加密 使用自定义maven插件对编译后指定的class文件进行加密,加密后的class文件拷贝到指定路径,这里是保存到resource/core…
class很好反编译,所以需要对class文件先进行加密,然后使用自己的classloader进行解密并加载. [步骤] 大概分两步: 1.对class文件进行加密 2.写解密class文件并加载的classloader 3.将这个classloader加入到tomcat中,也就是使tomcat可以调用到这个classloader [加密] 1.思路 字节流读取class文件,进行简单的移位 2.实现 做了一个小程序,实现了对某文件夹下所有class文件字节流读取,并+2位的加密方式 3.说明…
package com.yd.wmsc.util; public class Test { public void say(){ System.out.println("Say Hello"); } } import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io…
利用 JNI 对bytecode 加密.不影响java程序员的正常开发.09年的时候写的,现在拿出来晒晒————————————————————————————混淆才是王道,如果混淆再加密就更酷了....———————————————————————————— 一.环境a)  Windows_xp_Sp2_Enb)  JavaSe_1.6c)  Eeclipse.buildId_M20090917-0800d)  Tomcat_6.02e)  VS2008_Sp1二.JAVA 程序加密关键点:1…
Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密 二.利用加密算法DES实现java代码加密 传统的C/C++自动带有保护机制,但java不同,只要使用反编译工具,代码很容易被暴露,这里需要了解的就是Java的]; String algorithm = "DES"; // 生成密匙 SecureRandom sr = new SecureRandom(); KeyGenerator kg = KeyGenerator.getInsta…
1. DRM介绍: DRM,英文全称Digital Rights Management, 可以翻译为:内容数字版权加密保护技术. DRM技术的工作原理是,首先建立数字节目授权中心.编码压缩后的数字节目内容,可以利用密钥(Key)进行加密保护(lock),加密的数字节目头部存放着KeyID和节目授权中心的URL.用户在点播时,根据节目头部的KeyID和URL信息,就可以通过数字节目授权中心的验证授权后送出相关的密钥解密(unlock),节目方可播放. 需要保护的节目被加密,即使被用户下载保存,没有…
1.问题 springboot开发时候,一般将文件放在resources目录,但是发布后想修订文件或是开发时候修改了文件内容一般需重新打包或者重启动才能达到效果: 2.原因 将资源文件打包入jar包,访问的是编译的结果,所以运行后访问的不是源码目录中的文件.致使修改效果要重新编译才能生效.一般可以妥协采用自定编译来解决,但是仍然有发布后无法修改资源的困扰. 3.解决 使用springboot重新定义静态资源的目录,达到访问jar包外部目录的效果,加上user.dir的使用,可以让jar包访问运行…
@上篇博客中探讨了web项目利用自定义classloader进行解密,利用的是编译后的文件直接运行程序一切正常 今天博主在探讨加密后进行混淆时,打包程序报程序包org.apache.catalina.loader找不到错误 想到自定义classloader在tomcat/lib下可以正常运行,于是到该目录下找到了该程序包所在的jar包catalina.jar 结合tomcat版本,mvnrepository中找到了Catalina.jar的maven依赖, <!-- https://mvnrep…
详细的原理就不多说了,网上一大把, 但是, 看了很多很多, 即使看了jdk 源码, 说了罗里吧嗦, 还是不很明白: 到底如何正确自定义ClassLoader, 需要注意什么 ExtClassLoader 是什么鬼 自定义ClassLoader具体是如何加载 类的.. 直接上代码: import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; i…
本文主要介绍一些dotNet加密保护工具的原理以及就其脱壳进行简单探讨. remotesoft protector.maxtocode..Net Reactor.Cliprotector.themida .Net.xenocode native compiler.DNGuard. remotesoft protector 应该是一款比较老的.net加密保护工具了,看其官方网站似乎还是06年更新过.该软件没有提供试用版下载,相关资料比较少.去年接触过一 个该软件保护的.Net程序.加密后的程序发布…