首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java混淆器,它从不在反编译时给出纯文本

Java混淆器,它从不在反编译时给出纯文本
EN

Stack Overflow用户
提问于 2016-03-24 00:26:21
回答 2查看 610关注 0票数 0

我遇到过许多Java混淆器,它们只是重命名类名,并且可以由在线java反编译器查看。但是我想要一个能够生成不能使用任何工具反编译的输出的混淆器。(我们可以用这种方式混淆.net项目)。

请给我推荐这样的java混淆器?

EN

回答 2

Stack Overflow用户

发布于 2016-03-24 01:10:58

搜索"flow obfuscation“。

反编译总是可能的。然而,许多反编译器期望字节码由常规编译器(如javac )生成,并且很难从流混淆的类中恢复可编译的Java源代码。结果经常被破坏,以至于人类很难识别原始的(Java高级)控制流。这造成了一个额外的障碍,只有在字节码分析上投入更多的时间才能克服这个障碍。

然而,请注意,这是一场竞赛:反编译器在这方面也变得更好。因此,你应该总是针对所有的反编译器测试混淆后的结果,你可能会得到延迟。

我们已经在一个项目中使用了一个名为"allatori“的混淆器(以及第二个主要基于名称的混淆器),并取得了令人满意的结果。

票数 2
EN

Stack Overflow用户

发布于 2016-03-29 06:45:05

正如Stefan提到的,流混淆是一种简单的处理老旧反编译器的方法。对于现代的反编译器来说,你必须投入更多的精力。以下是您可以搜索的一些功能:

加密合成修饰符(JD- members)

  • Opaque不显示合成谓词)(将其视为无法解析的垃圾代码statically)

一切都是可逆的,但这会让它变得更痛苦。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36183608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档