我发现我们可以通过反编译软件来读取一个JAR文件的软件源代码。我下载了这样的软件并阅读了很多这样的代码。
我的问题是...
- 我们如何防止反编译 JAR 中的类文件?
- 任何人都可以从其设置文件(不是 JAR)中揭示软件的源代码吗?
我知道互联网上的第一个问题有一些答案。但是,如果您能更明确地解释它,我将不胜感激。但第二个问题对我来说是最重要的。
我发现我们可以通过反编译软件来读取一个JAR文件的软件源代码。我下载了这样的软件并阅读了很多这样的代码。
我的问题是...
我知道互联网上的第一个问题有一些答案。但是,如果您能更明确地解释它,我将不胜感激。但第二个问题对我来说是最重要的。
您不能完全阻止反编译。但是你可以让这变得更加困难。
使用混淆 - 改变你的字节码的过程使它很难理解。有很多 java 字节码混淆器。其中一些是免费的。
但是代码仍然可以反编译。您还可以将课程存储在受密码保护的 zip 文件中。但是java默认不支持这样的文件。但是,您可以开发自己的类加载器并将您的应用程序分成两部分。首先,只是启动应用程序的小型加载器,然后使用自定义类加载器加载大多数类,该加载器从受密码保护的 zip 加载类。
你也可以从互联网上加载你的应用程序的一部分https
,所以很难破解它。
一般来说,你可以使用混淆来让事情变得更难,但我的猜测是,如果数十亿公司开发的照片或办公套件或视频游戏等商业程序可以在盗版网站周围自由破解和重新分发,那么自制的希望不大在这方面的黑客应用。不过,一般来说,这取决于谁是想要破解它的人,所以你可能会通过混淆获得一种方法来让它通过反编译器,但我相信一个严肃的黑客会以其他方式进入代码......