当通过使用jad或类似程序轻松检索源代码时,Java程序如何成为闭源?
例如,可以解压缩jar以获取类文件,这些文件可以再次反编译,读取,编辑和编译。 那怎么样?
因为专有许可证不会隐藏代码。
答案 0 :(得分:1)
您最好的选择是在宣传之前模糊代码。
基本思路是取代所有可读的"名称(例如," fetchTaxRate")名称尽可能短(例如," a")。如果您在源中有说明" taxManager.fetchTaxRate(customerClass,countryID);"这可能最终成为" aB.e(zY,Q);"任何试图反编译二进制文件的人都会看到后者而不是前者。
关于混淆的好文章是https://www.excelsior-usa.com/articles/java-obfuscators.html
这篇文章还有一个混淆器列表,我亲自使用的那个(ProGuard)列在其中。
答案 1 :(得分:0)
“封闭源”是指未发布源代码,而不是无法获取代码的表示。
在反编译时,混淆的代码很难读取,但是,随着时间,工具和决定,所有代码的秘密都会下降。
答案 2 :(得分:-2)
嗯,我能提出的最好的建议是Web开发人员做了什么,这使得算法无法读取。您可以从代码中删除每个空格或制表符(当然使用算法),然后将var名称混淆等等。