Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何防止我的类被反编译_Java_Decompiler - Fatal编程技术网

Java 如何防止我的类被反编译

Java 如何防止我的类被反编译,java,decompiler,Java,Decompiler,我不希望我的类被反编译 我浏览了一些文章,发现了一个专利网站 市场上有没有类似的免费工具。您可以对代码进行模糊处理,这样在代码反编译时就不容易阅读了(对于程序员)是最好的免费开源模糊处理工具。混淆器会混淆类、字段和方法名称,因此很难理解反编译代码 Zelix Klassmaster是一款商业模糊器,是商业领域中最好的模糊器之一。此外,它还有一些额外的功能,可以对字符串常量进行加密,以使字符串在反编译时不可见。还有其他一些商业工具,如yguard、DashO pro、Allatori和Smoke

我不希望我的类被反编译

我浏览了一些文章,发现了一个专利网站


市场上有没有类似的免费工具。

您可以对代码进行模糊处理,这样在代码反编译时就不容易阅读了(对于程序员)

是最好的免费开源模糊处理工具。混淆器会混淆类、字段和方法名称,因此很难理解反编译代码


Zelix Klassmaster是一款商业模糊器,是商业领域中最好的模糊器之一。此外,它还有一些额外的功能,可以对字符串常量进行加密,以使字符串在反编译时不可见。还有其他一些商业工具,如yguard、DashO pro、Allatori和Smokescreen等。

您无法阻止java类被反编译。然而,你可以让那些试图理解你的代码的人的生活变得非常艰难。这是所谓的模糊处理者的任务,比如克拉斯马斯特

请参阅以获取开源模糊器


另请参阅我的一个问题:

您不能明确地阻止它被反编译。毕竟,反编译器只需要能够读取字节码就可以将其转换为源代码,而读取字节码也是JVM必须做的事情。因此,如果您想出某种方法来阻止程序读取字节码,JVM将无法运行您的类


正如其他人所指出的,如果你真的需要做这件事,模糊处理是一种方法,但我怀疑你是否真的需要这样做。还值得指出的是,如果您确实使用模糊处理,那么查找错误将更加困难,因为堆栈跟踪也将被模糊处理。

不幸的是,在Java中,就像在JavaScript中一样,获取源代码很容易。 理解它是另一回事。
如果你足够努力,通过几十个函数发送数据,每个函数都做一个小部分,然后传递数据,然后对其进行模糊处理,或者添加一些假函数,那么你可能只会给那些有恶意的人足够的头脑,他们会在成功之前退出。

模糊处理当然是保护代码的一种方法。此外,还有其他工具可以加密类,并提供自定义类加载器,该加载器可以在运行时解密和加载类。这不是一种非常简单的方法,但确实有一些工具可以做到这一点。

据我所知,没有具有相同功能集的免费工具

在我看来,ProGuard和Android的结合是保护Java和Android应用程序的最好也是最便宜的方法


注:我是Licel LLC的首席执行官。Stringer Java模糊处理器的开发人员。

我在我的应用程序中使用Zelix Klassmaster大约两年了。从那时起,没有新的程序“裂缝”发布。因此,它似乎是保护Java应用程序的一个好选择。

也就是说,不可能完全阻止反编译。模糊处理是你能做的最好的方法。此外,模糊处理本身不是很容易实现的,特别是在具有多个相互依赖模块的大型项目中。但是,确实是这样。从我所看到的,Zelix并不是商业混淆器中最好的。但话说回来,他们是在浪费时间和金钱。如果你是斯金格的附属公司,提到这一点是很重要的。