分享下花了一段时间开发的 Java 字节码混淆加密工具

173 天前
 4ra1n

https://github.com/jar-analyzer/jar-obfuscator

Jar Obfuscator 是一个 JAR/CLASS 文件混淆工具

支持的混淆内容

一些混淆后的例子

在混淆之外,提供了一种字节码加密的功能,在 JVM 启动时通过 -agentpath:decrypter.dll 参数指定解密密钥等信息,动态解密字节码运行(如果仅拿到 jar/class 文件无法被任何工具反编译)

1565 次点击
所在节点    分享创造
7 条回复
medivh
172 天前
提个建议吧,这种混淆力度太小了,反编译之后一眼就能看出这个方法是做什么的。 是否考虑增加“控制流”混淆?把 if else for where 等改成 goto ?
4ra1n
172 天前
嗯,控制流混淆会麻烦一些,我之后研究下怎么做
eleganceoo
172 天前
支持
ninjaJ
172 天前
混淆只能提高反编译阅读的成本,并不能完全断绝,这是一个前提。
实际上大部分混淆工作做到 OP 这一步就已经足够了,大部分有心反编译的人看到这一堆东西就会望而却步了。如果需要让安全更上一层,一般的做法是定制虚拟机,在虚拟机内存中再做 goto 。
4ra1n
172 天前
嗯,我最后支持的一种 JVMTI 字节码加密是这样的,提供一个 NATIVE 库,启动时候输入密码,进行解密
96368a
138 天前
大佬,你害苦我了,
hvv 一天被人打穿了 3 次,传的马全是用你这个工具混淆过的,我都认不出来是不是马子了😭,

(开个玩笑,无恶意,其实被穿的是群友🤣
kapaseker
6 天前
老实说,我觉得做的很不错了,变量面用 0O1li 全量混淆,其实看起来很难看就够了

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

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

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

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

© 2021 V2EX