老板要求部署到现场 tomcat 的代码全部加密,防止客户反编译!!
1
micean 2017-11-02 10:31:20 +08:00
应该是命名混淆吧
|
2
zorui 2017-11-02 10:33:57 +08:00
java 代码加密的好像没有吧。。 只有混淆。。 反编译后看不懂。
|
3
liuminghao233 2017-11-02 10:36:50 +08:00 via iPhone
改 jvm 可行
其他的都是一般的混淆 |
4
AlphaIce 2017-11-02 10:43:12 +08:00
没有加密 直接发布的
|
5
sagaxu 2017-11-02 10:45:24 +08:00 via Android
不加密,有时连代码都一起给他们
|
6
sonyxperia 2017-11-02 10:57:16 +08:00
客户要求提供源码
|
7
weics 2017-11-02 11:34:44 +08:00
proguard
|
8
loshine1992 2017-11-02 12:00:28 +08:00 12
+1s |
9
LukeChien 2017-11-02 12:06:23 +08:00 via Android
得用 jni
|
10
zouqiang 2017-11-02 12:43:27 +08:00 via iPhone
license4j
|
13
sunboy911 OP @liuminghao233 你们咋混淆的呢
|
14
sunboy911 OP @loshine1992 大神你们是 咋混淆的呢,用的啥
|
18
chocotan 2017-11-02 12:49:58 +08:00
写个脚本在编译之后把 class 文件加密
然后改 classloader,tomcat 和 spring 的都要改 |
19
notreami 2017-11-02 12:50:42 +08:00
混淆就够了。
|
20
bk201 2017-11-02 12:53:44 +08:00
我觉得与 tomcat 一起打包编译成 exe 可行。
|
21
wdlth 2017-11-02 12:56:52 +08:00 via Android
混淆、改 class loader,再把 JVM 改了……
|
22
kidult 2017-11-02 13:11:18 +08:00
多招两个实习生写写不就完了
|
23
loshine1992 2017-11-02 13:59:27 +08:00
@sunboy911 proguard
|
24
paragon 2017-11-02 14:03:10 +08:00
原则上只能混淆~
|
25
xiaoyu03 2017-11-02 15:20:15 +08:00 1
看到这个帖子还以为是我呢...我们公司软件要产品化接下去我大概要做:
1.USB key + license ; 2.混淆代码(效果不好,因为种种原因很多代码不能混淆 QAQ ); 3.写一个小工具给 Jar 中的 Class 加密。在 ClassLoader 中解密,Spring Boot 的 ClassLoader 需要修改;或者 Jni 方式解密 4.想办法怎么隐藏 ClassLoader,启动时动态生成? |
26
zpf124 2017-11-02 15:46:18 +08:00
我们曾经做过过一个简单粗暴的方法。
1,代码根据 机器的网卡 mac 地址 + 硬盘序列号 用自定义的加密规则算一个 激活码。 2,项目启动如果激活码不正确或者没填激活码,不连接 jdbc,几个关键的 bean 不生成。 3,将许多乱七八糟的类都一起混淆,混淆后连我们自己都看不懂加密那个类里的代码,混淆工具将许多字符串和变量混淆后都转移到其他类了,同理这个类里还包含了一些其他类用的变量。 3,部署之后 客户将机器的 网卡 mac 和 硬盘序列号发给我们,我们这边算出激活码在发给他们,用户要换个机器部署都得联系我们。 |
27
yksg 2017-11-02 16:51:46 +08:00 2
多招两个实习生就 OK 了
|
28
rswl 2017-11-02 16:53:53 +08:00
不是都能反编译的吗
|
29
hsuan 2017-11-02 16:54:35 +08:00 via Android
把关键 jar 加密,运行时揭秘后动态加载
|
30
abcbuzhiming 2017-11-13 21:57:14 +08:00
这纯粹是老板自己折腾;要么你牛逼到改 jvm 本身,要么 jni 用 c++编程搞 dll 的话,其它方式没啥用,你混淆?改 classloader ?我直接 dump 内存,虚拟机语言拿到内存字节码后反编译 class 源码比纯二进制语言容易多了。而且这年头,你以为你的代码是高科技啊,是个人都想要?
|
31
xiner 2020-07-09 16:19:32 +08:00
时隔这么久,不知楼主还是否有 Java 加密需求。
几维安全 Java 代码加密产品能够帮助到你。 Java2C:创新 Dex 和 Jar 源码保护方案。将 Java 代码自动翻译为 C 代码,并实施 Native 层的虚拟化加密保护,比传统加固兼容性更好,安全性更高,防止反编译。 Java2C 是移动端新一代 DEX 加密方案,提交安卓应用包 APK 文件,即可将 DEX 文件中的核心函数翻译成 C 代码,并通过 Native 层的源码加密技术实施代码混淆、代码虚拟化和字符串加密处理,从而提高 Java 层核心代码的安全性。 与传统的 APP 加固方案相比,不涉及到自定义修改 DEX 文件的加载方式,所以其兼容性非常好;其次 Java 函数被完全转化为 C 函数,直接在 Native 层执行,不存在 Java 层解密执行的步骤,其性能和执行效率更优。 ,欢迎查阅,java 源码加密: https://www.kiwisec.com/product/java2c.html |