我正在使用Java开发应用程序,但是我不会发布代码。问题是,我测试了其中的一个jar反编译器,它几乎可以完美地从我的jar文件中获取代码!我的问题是如何在不提取代码的情况下分发jar文件?
由于Java在编译过程中保留了大多数“元数据”(允许动态加载和反射),因此直接编译(不仅反汇编)已编译的类文件是一种直接的方法。这就是为什么恢复的代码与原始代码非常相似的原因。
虽然不是很完美,但您可能唯一的选择是使用混淆器,例如ProGuard。
问题内容: 众所周知,有很多Java反编译器工具可以将.class转换为.java文件。 因此,我们需要保护.java文件免于反编译。我知道这是一个大话题,也许没有止境。 通常,有两种方法:混淆器和定制的类加载器。 是否有将这两种方式结合在一起的成熟解决方案或开源框架? 另一个方面与exe4j有关,它将jars打包到exe文件中,似乎可以保护java代码,因为我们看到的是exe文件而不是jar
问题内容: 我是Java初学者。我正在开发可解密某些数据的应用程序。解密密钥被硬编码到软件中,因此可以通过分析字节码看到。 我知道不能完全防止逆向工程,所以我想做的就是使过程尽可能地艰巨。 我的想法不是直接将密钥放入代码中,而是将其进行某种转换。例如,我可以写- 这样,查看字节码的人无法立即读取它。但是将必须遵循逻辑并对其进行转换,这在字节级别上不会那么容易。 那么你们怎么看?这有用吗?除了十六进
问题内容: 我正在编写我的第一个使用OAuth的应用程序。这是针对桌面应用程序的,而不是网站或移动设备,在这些应用程序上访问二进制文件会更加困难,因此我关注如何保护应用程序的密钥和机密。我觉得查看编译后的文件并找到存储密钥的字符串很简单。 我是否反应过度,或者这是桌面应用程序的真正问题(使用已知解决方案)? 该项目正在用Java进行编码,但是我也是C#开发人员,因此任何用于.NET的解决方案也将不
问题内容: public static bool TruncateTable(string dbAlias, string tableName) { string sqlStatement = string.Format(“TRUNCATE TABLE {0}”, tableName); return ExecuteNonQuery(dbAlias, sqlStatement) > 0; } 问题
我们不允许对书籍、工具、软件库等寻求建议的问题。您可以编辑问题,以便用事实和引文来回答。 有谁知道一个免费的反编译器可以反编译整个Jar文件而不是单个类?我对name$1这样的子类有问题。类名$2。类名。班