java - 创建不可逆向工程的 Java 程序

标签 java jar compilation

有没有办法以不可逆向工程的格式部署 Java 程序?

我知道如何将我的应用程序转换成可执行的 JAR 文件,但我想确保代码不能被逆向工程,或者至少不能轻易被逆向工程。

源代码的混淆不算数...它使代码更难理解,但不会隐藏它。

一个相关的问题是 How to lock compiled Java classes to prevent decompilation?


完成程序后,我仍然可以访问原始资源,因此维护应用程序不是问题。如果应用程序是分布式的,我不希望任何用户能够反编译它。混淆并不能实现这一点,因为用户仍然能够对其进行反编译,虽然他们很难遵循操作流程,但他们能够看到代码,并可能从中获取信息。

我担心的是代码中是否有任何与远程访问相关的信息。有一个主机,应用程序使用用户提供的用户 ID 和密码连接到该主机。如果主机地址位于源代码中,是否有办法向用户隐藏主机地址?

最佳答案

简短的回答是“不,它不存在”。

逆向工程是一个根本不意味着要查看代码的过程。它基本上是试图了解底层机制,然后模仿它们。例如,这就是 JScript 在 MS 实验室中出现的方式,通过复制 Netscape 的 JavaScript 行为,而无需访问代码。复制的太完美了,连bug都复制过来了。

关于java - 创建不可逆向工程的 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149937/

相关文章:

java - 使用 SpringJMS 设置每条消息的过期时间

java - 如何去掉 Arrays.toString() 返回的大括号和逗号?

java - 将调用类传递给子类,并在子类完成工作时调用其中的方法

java - 在jar的lib文件夹中找不到加载类

python - Vim 无法在 OS X 上使用 python 进行编译

c - 帮助 C 程序可执行 - Linux

java - 导出为 PDF 时如何删除 SmartGWT SelectItem 文本框周围的边框?

java - Java 是否可以在 CLASSPATH 目录中使用星号 (*) 通配多个 JAR 文件?

JavaFX 媒体播放器在 Eclipse 中播放视频,但不在可运行的 jar 中播放

compilation - 对 Intellij 如何编译事物和处理资源感到困惑