如题, 求老哥们推荐个Java代码混淆工具
编译成class,只给class
只用过proguard
反编译不就暴露了
听说Allatori不错
写个执行器,从你的云服务器动态拉代码编译执行,本地代码只有解析器
Proguard这玩意儿是不是只能改类名啊?
不太行。。。jar包要给别人本地部署不能联网,如果能联网就好了,核心代码都放服务器上只提供接口也就不需要混淆了
问问gpt,但是java的加密好像不太多,不如其他语言很成熟
那种本地部署密钥授权是怎么实现的
类名、方法名、变量名
Allatori看了下是收费的 没用过
现在加密基本上都可以解。
害 没办法, 但总是要限制一下下制造些破解难度
肯定需要联网的吧? 要不然随便改改系统时间岂不是永不过期
如果你有足够的时间和技术能力 可以将核心代码改写为C封装到so中 再使用诸如JNI的技术用java调用so
印象里 java 层几乎没有有效混淆的方法, 我了解的是安卓这边, 安全性要求高的全都要放到 native 层然后 ollvm 混淆然后搭配着加壳, 把反编译的难度提高到极致(虽然对于经验丰富的从业者也没用, 时间问题), 再混着 dex 动态下发来(pdd就是那么干来隐藏恶意代码的)…
所以, 相对简单但有效的方法还是回到加强服务端验证, native 层代码里的核心逻辑以各种形式花样验证, 一旦验证失败立即 panic 退出, 让逆向难度提高; 如果不是纯本地运行的, 搭配楼上说的, 动态分发密钥每次请求都要携带上(类似登录了), 这招无解…
emmm, 关键业务代码 dex 下发, 需要联网 “激活” 才能拉取? (但是防不了把下发的 dex 逆向) 动态下发 .so 也一样也动态下发…
zelix下的zkm,java中的前两名
这种最简单破解,直接跳过验证阶段。
可以把一部分计算逻辑放在服务端,必须联网验证携带有效token才给计算结果
这样稳得很