求一款可以混淆或加密 jar 的工具及说明文档

310 天前
 24Arise

帮客户实施的时候不交付产品源码,想通过混淆或者加密的方式对我们产品的 jar 进行保护,避免客户多渠道分发,

请教各位见多识广的 V 友,有木有对这块有经验的望提点一二

有哪些开源的工具,顺便告知下相关文档,跪谢 ~

1667 次点击
所在节点    Java
19 条回复
GitTao
310 天前
OutOfMemoryError
310 天前
allatori
virusdefender
310 天前
1. 混淆是指将变量改成 a b c d 这样的,这个建议用 proguard

2. 加密是用户解压你的 jar 之后也无法直接看 a b c d 的代码,这个楼上 xjar 可以,加密字节码,但是 xjar 也非常容易破解。

3. 防止用户多渠道分发,这个混淆或者加密无法解决吧。得考虑 license 的方案,比如绑定机器码、在线验证之类的,当然也只是提高成本,无法彻底解决。
LeegoYih
310 天前
murmur
310 天前
光 jar 不行,jni 里得走起,一堆业务扔 c 里,c 能干的更多,必要的时候还可以考虑 lua 虚拟机或者其他的自编虚拟机这种老传统
Kipp
310 天前
Java 估计挺麻烦,我们之前公司也有类似的需求。被我 arthas 上去反编译加热更新跳过了
24Arise
309 天前
@GitTao 感谢 🙏 ~
24Arise
309 天前
@OutOfMemoryError 你这名字让我很难过 今儿临近下班客户一个服务 GC 了 又得通宵 😭 ~
24Arise
309 天前
@virusdefender 感谢感谢 其实 license 也考虑搞 准备双管齐下 ~
24Arise
309 天前
@LeegoYih 感谢 🙏 ~
24Arise
309 天前
@murmur 你这成本不可控啊~
OutOfMemoryError
309 天前
@24Arise 哈哈哈哈 笑死

强烈建议 allatori 很成熟的商用方案
另外就是 jni 了
maokabc
309 天前
可以尝试用安卓上一些加固改改,需要保护的 class 到 dex ,dex 再转成 c 或者自定义 vm ,只是依赖 jni 接口兼容性没大问题。又或者像 pdd 那样直接虚拟化 java 字节码。
murmur
309 天前
@24Arise 正版化本身就是律师的活,光靠技术是搞不定的
flyqie
309 天前
toB 业务?

toB 在混淆或者加密这边得适度,有些混淆或者加密可能会影响可用性。

toB 真要想防止客户多渠道分发,最关键的还是得靠法务,技术上不是最优解。
mijindu1
308 天前
https://gitee.com/roseboy/classfinal
xjar 还有这个都是开源的,不过两者用的原理不一样
ffLoveJava
308 天前
license 有开源的解决方案吗?
jni 有开源的参考吗?
没搜到啊
ABAndC
303 天前
最近有类似需求,但是有些项目都不更新了
impanghu
259 天前
protector4j

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/954013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX