SpringBoot 打成的 jar 包如何做代码混淆防止反编译

2024 年 11 月 7 日
 zhangshaohan

目前的项目解压 jar 包放到 IDEA 里面就能看到完整的代码,希望增加安全措施,如混淆代码,当下有什么好的办法或工具可以实现吗?让打包后的 jar 包无法反编译出源码

2117 次点击
所在节点    问与答
10 条回复
cJ8SxGOWRH0LSelC
2024 年 11 月 7 日
只要还是打包 jar 就没有办法, 就算混淆了, 也只是难看一点, 代码还是一览无余。 也没办法阻止反编译。
murmur
2024 年 11 月 7 日
java 那个混淆跟没有一样,只能加垃圾代码和扩大项目规模,比如那些商业 OA 几百 m 的包,给你源码都头大
COOOOOOde
2024 年 11 月 7 日
aspose 不就是卖 jar 包的, 他的 jar 就是混淆了成了一堆垃圾编码, 但是花些时间还是能破解。
Tiller
2024 年 11 月 7 日
没有作用。因为我还真的反编译过一个商业代码。把混淆的部分重写了。基本上能够看的七七八八
zhangshaohan
2024 年 11 月 7 日
@StinkyTofus
@murmur
@COOOOOOde
@Tiller

卧槽,那岂不是拿到 Jar 包基本上就裸奔了( Ĭ ^ Ĭ )
Bingchunmoli
2024 年 11 月 7 日
@Geekerstar 客户端就是不安全。
KagurazakaNyaa
2024 年 11 月 7 日
你可以把大量的逻辑都写成二进制,然后打包的时候交叉编译到所有常见架构上实现跨平台,Java 的部分用来做调用和调度以及兼容层
git00ll
2024 年 11 月 7 日
核心放在网络上,运行时加载呢
iseki
2024 年 11 月 7 日
首先,不严谨地说,东西只要在客户端就可以被破解。其次,Java 这边你要想尽量提高逆向工程难度,看看 GraalVM Native Image 吧
Tiller
2024 年 11 月 11 日
@Geekerstar 那到不至于,混淆还是比不混淆的要好的。但是鉴于 Java 的语言特性,确实没办法做到像 go 、c++这种程度

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

https://v2ex.ih06.com/t/1087473

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

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

© 2021 V2EX