首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建非逆向工程的Java程序

创建非逆向工程的Java程序
EN

Stack Overflow用户
提问于 2008-09-29 18:07:53
回答 14查看 9.4K关注 0票数 5

有没有一种方法可以将Java程序部署成一种不是逆向工程的格式?

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

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

一个相关的问题是https://stackoverflow.com/questions/49379/how-to-lock-compiled-java-classes-to-prevent-decompilation

一旦我完成了这个程序,我仍然可以访问原始的源代码,所以维护应用程序就不是问题了。如果应用程序是分布式的,我不希望任何用户能够对其进行反编译。混淆并不能实现这一点,因为用户仍然能够对其进行反编译,虽然他们在跟踪操作流时会有困难,但他们将能够看到代码,并可能从代码中获取信息。

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

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2008-09-29 18:10:33

您可以使用YGuard混淆JAR文件。它不会混淆您的源代码,而是编译好的类,所以以后维护代码没有问题。

如果你想隐藏一些字符串,你可以加密它,使它更难通过查看源代码(如果你混淆JAR文件更好)。

票数 12
EN

Stack Overflow用户

发布于 2008-09-29 18:15:16

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

逆向工程是一个过程,并不意味着要查看所有上的代码。它基本上是试图理解潜在的机制,然后模仿它们。例如,通过复制Netscape的JScript行为,而不需要访问代码,MS实验室就是这样出现的。这个副本太完美了,连虫子都被复制了。

票数 15
EN

Stack Overflow用户

发布于 2008-09-29 18:14:34

如果您知道您的目标是哪个平台,那么可以获得将您的Java编译成本机代码的东西,比如精益喷射机GCJ

否则,您将永远无法隐藏源代码,因为用户总是有您的字节码,并且可以对其进行贾德

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/149937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档