JAVA SDK防反编译处理(原创)
一、前言
网上找的资料是加密Jar包,运行时需要输入密码才能运行,这种方式的加密仅仅能于有main函数入口的加密,而不能满足对外提供SDK。我们的需求是对class文件加密防反编译,但又不影响别人二次开发调用你的接口。该方法使用到第三方技术ClassFinal,其项目地址:https://gitee.com/roseboy/classfinal#%E5%8A%A0%E5%AF%86 。但为什么说是原创呢?原因是ClassFinal并未针对SDK提供加密防反编译的方案,我对其原理了解后,将其应用到SDK加密上。先看看SDK加密后用IDEA反编译后的效果,如下图。

可以看到对接口的内容全部进行了隐藏,返回值统一返回null,但是在执行时是按未加密前的代码逻辑处理的。
二、加密步骤
1.通过ClassFinal对要加密的SDK进行加密,并设置好密码;
2.建立一个springboot项目,不用写任何业务逻辑,只需要用ClassFInal进行加密即可,秘密和步骤一设置成一样的密码。并打好包,将其命名为Decode.jar(名字随意),然后放至一固定目录。
3.将sdk存放至maven仓库中,然后通过pom文件引用;
4.引入解译Jar包。
4.1)本文中为Decod.jar。在业务工程中点击“Run”-“Configurations..”,在弹出的界面中点击“Modfity options”,弹出界面勾选“Add VM options”,效果如下图所示。

4.2)在“Build and run”一栏中加入"-javaagent:D:\decode\Decode.jar=-pwd 设置的密码",效果如下图所示。注意:1)其中""要加上;2)D:\decode为存储Decode.jar的路径,效果如下图。

完成上述操作后可以用IDEA对业务代码进行调试,运行了。
三、代码运行
将业务工程代码找包进行业务Jar包,然后将业务Jar与Decode.jar包上传至服务器中(需要安装jdk1.8或以上)并保持在同一目录下,然后执行运行jar包命令:
java –javaagent:Decode.jar=’-pwd htht’ –jar untitled-1.0-SNAPSHOT.jar
注意:其中红色为固定写法,后面的jar包根据业务jar包进行更换即可。
JAVA SDK防反编译处理(原创)的更多相关文章
- Android: apk反编译 及 AS代码混淆防反编译
一.工具下载: 1.apktool(资源文件获取,如提取出图片文件和布局文件) 反编译apk:apktool d file.apk –o path 回编译apk:apktool b path –o f ...
- 防反编译、混淆文件proguard.cfg与proguard-project.txt详解
在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt. 如果需要对项目进行全局混码,只需要进行一步操 ...
- 防反编译的加壳工具-Virbox Protector
通过Virbox Protector可快速对您的软件进行加壳,可防调试,防挂钩,防反编译. 首先,你要有一个云平台(www.sense.com.cn)的帐号,登录后,只需将你的dll或者exe拖入到加 ...
- 一个.Net的混淆防反编译工具ConfuserEx
给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...
- Java 7 中的Switch 谈 Java版本更新和反编译知识
Java 7 中的Switch 谈 Java版本更新和反编译知识 学习编程,享受生活,大家好,我是追寻梦的飞飞.今天主要讲述的是Java7中的更新Switch实现内部原理和JAD反编 ...
- APK防反编译技术
APK防反编译技术 下载地址:地址 我们的APK实际上就是一个ZIP压缩文件,里面包括有一个classes.dex.我们编译后生成的程序代码就所有在那里了, 通过apktool等工具能够轻松地将它们反 ...
- .Net的混淆防反编译工具ConfuserEx--2(转)
给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...
- 给大家推荐一个.Net的混淆防反编译工具ConfuserEx
给大家推荐一个.Net的混淆防反编译工具ConfuserEx. 由于项目中要用到.Net的混淆防反编译工具. 在网上找了很多.Net混淆或混淆防反编译工具,如.NET Reactor.Dotfusca ...
- java如何防止反编译(转)
出处: java如何防止反编译 一些防止java代码被反编译的方法 综述(写在前面的废话) Java从诞生以来,其基因就是开放精神,也正因此,其可以得到广泛爱好者的支持和奉献,最终很快发展壮大,以至于 ...
- java如何防止反编译
综述(写在前面的废话) Java从诞生以来,其基因就是开放精神,也正因此,其可以得到广泛爱好者的支持和奉献,最终很快发展壮大,以至于有今天之风光!但随着java的应用领域越来越广,特别是一些功能要发布 ...
随机推荐
- 高通lk:配置与使用i2c
高通lk:配置与使用i2c 以msm8909为例. 背景 在lk中要去驱动一个aw9523的ic来控制指示灯. 但是现在对应的i2c没有打开.因此需要进行处理. 步骤 找到I2C对应的ID与句柄 参考 ...
- arm 移植 lighttpd + CGI 配置
--- title: arm 移植 lighttpd + CGI 配置 EntryName: porting-lighttpd-on-arm-and-make-cgi-config date: 202 ...
- NXP i.MX 6ULL工业开发板规格书( ARM Cortex-A7,主频792MHz)
1 评估板简介 创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成.核心板经过专业的PCB Layou ...
- 如何应对红帽不再维护 CentOS
CentOS(Community Enterprise Operating System,社区企业操作系统)是一种开源的.免费的操作系统.由 Lance Davis 发起,通过社区驱动,目标是创建一个 ...
- 2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1、0和1。 一个子数组nums[i.
2024-07-13:用go语言,给定一个从0开始的长度为n的整数数组nums和一个从0开始的长度为m的整数数组pattern,其中pattern数组仅包含整数-1.0和1. 一个子数组nums[i. ...
- 推荐一款功能强大、界面优美的开源SSH跨平台终端软件WindTerm
WindTerm是一款开源免费且功能强大的终端软件,相比 MobaXterm自带中文支持.无论是在Windows.macOS还是Linux操作系统上,WindTerm都能提供出色的性能和稳定性.Win ...
- oeasy教您玩转vim - 16 - # 行内贴靠
行头行尾 回忆上节课内容 跳跃 向前跳跃是 f 向后跳跃是 F 继续 保持方向是 ; 改变方向是 , 可以加上 [count] 来加速 还有什么好玩的吗? 动手 #这次还是用无配置的方式启动 vi - ...
- oeasy教您玩转vim - 79 - # 编码格式encoding
- `help encoding-name` : var1 = 456 print(var1) func() #456 print(var1) #123 ============= ...
- 【TypeScript】Re01
参考视频: https://www.bilibili.com/video/BV14Z4y1u7pi JS已有类型: 基础类型 number / string / boolean / null / un ...