首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保护Java jar文件以进行分发

保护Java jar文件以进行分发
EN

Stack Overflow用户
提问于 2009-08-14 23:43:38
回答 7查看 20.6K关注 0票数 9

我正在开发一个应用程序,很快就会公开发布。我愿意做任何我力所能及的事情,以确保那些下载我程序的人不会对它进行反向工程。我知道分发.jar文件是非常不安全的。

有人能推荐一种独立于平台的方式来分发我的Java应用程序吗?此外,我想将其作为服务安装在任何平台上(Windows、Linux、Mac OSX)。

谢谢!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-08-14 23:52:20

您可以使用yGuard或其他java字节码模糊加密器对字节码进行加扰/混淆。

独立于操作系统的分发可能很困难。我想最好的解决方案是一个包含几个程序脚本(.bat/.cmd用于windows,.sh用于linux /OSX)的普通归档文件-在程序支持的操作系统下启动。

将java程序作为服务运行可能更加困难:在Linux下很容易,你只需要写一个合适的启动脚本就可以在后台运行它。我知道FireDaemon在将java程序作为服务运行时存在问题,所以在Windows上将其作为服务运行可能很困难(或不可能)。对不起,我对Linux一无所知。它可以像MacOS一样简单,也可以像Windows一样不可能。

票数 8
EN

Stack Overflow用户

发布于 2009-08-15 04:05:38

正如其他人所说,你可以混淆你的代码。这将使逆向工程变得不那么简单。您还可以使用(例如) GCJ将Java编译为本机代码。这将使逆向工程变得更加困难,但这也意味着您必须为每个支持的硬件/OS平台创建不同的发行包。

我知道分发.jar文件是非常不安全的。

您必须了解,如果您以任何形式分发软件,以便在您无法完全控制的平台上运行,那么在技术上,您无法阻止反向工程。没什么。

最终,你必须权衡分发软件的好处和有人对其进行逆向工程的风险。人们采取的一种方法是找出收益是否大于风险*成本,并使用法律保障措施(例如适当的软件许可证)来阻止反向工程。另一种方法是对潜在的反向工程师说“祝你好运”,并通过提供服务而不是软件许可来赚钱。

票数 4
EN

Stack Overflow用户

发布于 2009-08-15 03:44:15

通过模糊处理程序运行应用程序会使逆向工程变得更加困难和昂贵。

看看Java Service Wrapper,了解一种在多个平台上作为服务安装和运行java应用程序的相对简单的方法。

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

https://stackoverflow.com/questions/1280702

复制
相关文章

相似问题

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