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

6 天前
 4ra1n

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

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

支持的混淆内容

一些混淆后的例子

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

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

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

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

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

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

© 2021 V2EX