有没有 Java 代码混淆工具,不是混淆 jar 包,是混淆代码!

2017-01-10 23:10:19 +08:00
 paranoiagu
客户要求提供源代码,实在没办法了,能不能混淆源代码,编译不影响,运行不影响,但是就是美观方面差点。

求工具。
12512 次点击
所在节点    Java
35 条回复
Monstercat
2017-01-10 23:13:11 +08:00
Proguard+JD
Valyrian
2017-01-10 23:13:13 +08:00
客户看了你给混淆了再问你要不混淆的代码怎么办?
可以考虑多要点钱。。
paranoiagu
2017-01-10 23:13:53 +08:00
@Valyrian 不给,关键就是不能给阿
paranoiagu
2017-01-10 23:14:21 +08:00
@Monstercat 关键还能编译过吗?
rockyou12
2017-01-10 23:20:09 +08:00
看来是最开始没谈好坑爹了吧(σ-`д・´)
wdlth
2017-01-10 23:29:48 +08:00
如果原来没谈好,现在你混淆了对你也没好处,客户可以此为把柄来坑你,毕竟你不能说混淆后的代码是开发时的源代码……
ihuotui
2017-01-11 00:40:20 +08:00
java 注定不行,从 class 规定就确定了可以反编译
slixurd
2017-01-11 00:55:36 +08:00
那你就发个反编译后的代码给客户就好了= =......
wmhx
2017-01-11 00:57:43 +08:00
简单点,关键点给整成一个复杂的内部类, 这样可以编译运行,但反编译出来的代码会有少量的语法错误,
hellojinjie
2017-01-11 08:38:49 +08:00
自己写这一个变量替换工具啊,把变量都提换成 a b c d
mritd
2017-01-11 08:56:10 +08:00
混希手段还是有的……不要说从 class 就注定了不能混希……我只是提供个思路,也是前两天反编译别人代码看到的,所有类名变量名全部替换成超长的 0O0O000OO0O000O 这种玩意……其他还有 1I1II1I 这种玩意……我成功反编译……然后就看傻了
wyntergreg
2017-01-11 08:58:48 +08:00
注释全删了, JS 混淆一下就行了
depress
2017-01-11 09:21:39 +08:00
①注释全删
②类名、方法名、变量名写的乱七八糟
③每个类里弄 N 多个没用的方法,在有用的方法里偶尔调用一下没用的方法,实际上调用那行什么意义都没有
④如果后续不用维护了,把方法都合并,一个方法四五千行
混淆不了还不能恶心人么~
814084764
2017-01-11 09:30:56 +08:00
@mritd 我之前看别人混淆后的代码,全是 _ 这个玩意。。。长短还不一样。。妈蛋!
顺便问一下,哪里可以修改 proguard 的混淆的字母?
scnace
2017-01-11 09:42:29 +08:00
我记得逼乎上有一个 怎样编写不可维护代码 的问答 楼主可以去看看啊(逃
baoguok
2017-01-11 09:59:00 +08:00
给就是了,代码不值钱。

合同没约定代码版权问题,那就只能给
leloext
2017-01-11 10:01:57 +08:00
@hellojinjie proguard 就可以做到这个的
Chrisplus
2017-01-11 10:26:16 +08:00
手动使用 proguard shrink & obfuscate
AlisaDestiny
2017-01-11 10:52:08 +08:00
@mritd 哈哈。这 TM 谁想出来的。真是高。 abc 还将就着能分清楚变量。要是 0O 这玩意。看的真是头疼。
mritd
2017-01-11 11:43:55 +08:00
@AlisaDestiny 不是头疼的问题……是根本没法看

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

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

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

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

© 2021 V2EX