老哥们,求一个Java代码混淆工具啊

如题, 求老哥们推荐个Java代码混淆工具

22 Likes

编译成class,只给class

2 Likes

只用过proguard

1 Like

反编译不就暴露了

2 Likes

听说Allatori不错

1 Like

写个执行器,从你的云服务器动态拉代码编译执行,本地代码只有解析器

2 Likes

Proguard这玩意儿是不是只能改类名啊?

2 Likes

不太行。。。jar包要给别人本地部署不能联网,如果能联网就好了,核心代码都放服务器上只提供接口也就不需要混淆了

2 Likes

问问gpt,但是java的加密好像不太多,不如其他语言很成熟

1 Like

那种本地部署密钥授权是怎么实现的

1 Like

类名、方法名、变量名

Allatori看了下是收费的 没用过

1 Like

现在加密基本上都可以解。

害 没办法, 但总是要限制一下下制造些破解难度

肯定需要联网的吧? 要不然随便改改系统时间岂不是永不过期 :rofl:

如果你有足够的时间和技术能力 可以将核心代码改写为C封装到so中 再使用诸如JNI的技术用java调用so

3 Likes

一次性授权那种。在v站看到过一个

2 Likes

印象里 java 层几乎没有有效混淆的方法, 我了解的是安卓这边, 安全性要求高的全都要放到 native 层然后 ollvm 混淆然后搭配着加壳, 把反编译的难度提高到极致(虽然对于经验丰富的从业者也没用, 时间问题), 再混着 dex 动态下发来(pdd就是那么干来隐藏恶意代码的)…
所以, 相对简单但有效的方法还是回到加强服务端验证, native 层代码里的核心逻辑以各种形式花样验证, 一旦验证失败立即 panic 退出, 让逆向难度提高; 如果不是纯本地运行的, 搭配楼上说的, 动态分发密钥每次请求都要携带上(类似登录了), 这招无解…

emmm, 关键业务代码 dex 下发, 需要联网 “激活” 才能拉取? (但是防不了把下发的 dex 逆向) 动态下发 .so 也一样也动态下发…

2 Likes

zelix下的zkm,java中的前两名

2 Likes

这种最简单破解,直接跳过验证阶段。

1 Like

可以把一部分计算逻辑放在服务端,必须联网验证携带有效token才给计算结果

这样稳得很

3 Likes