2013-03-24 57 views
0

我想阻止我的游戏客户端反编译。 有没有一个选项,我可以如何使用.htaccess或任何其他方法保护.jar文件,以便客户端(浏览用户,通过applet加载客户端)将无法获取文件&反编译它。使用.htaccess保护.jar?

我总是想知道是否有解决方案,是吗?也许创建一个crypt代码,并且每当服务器尝试获取客户端jar时,它将通过GET发送crypt代码,如果crypt代码匹配,它将从该页面加载客户端,我不知道,应该有一个办法 ?

谢谢!

回答

1

对于浏览器执行applet,它需要下载包含applet代码的jar文件。如果它下载它,它可用于反编译。为了防止这种情况发生,您可以混淆字节码或根本不使用applet,只需使用传统的Web应用程序,其中的代码位于服务器端,客户端只能看到HTML和JavaScript代码。

+0

这怎么可能?那么用户无法加载客户端? – 2013-03-24 12:44:20

+0

* * *有哪些可能? – 2013-03-24 12:45:12

+0

可以混淆字节码,或者不使用applet的一切,只需使用一个传统的Web应用程序,其中的代码是在服务器端,客户端只能看到HTML和JavaScript代码。 – 2013-03-24 12:45:28

0

不可以。您可以停止浏览器获取文件,但它将无法运行它。

也许创造一个地穴代码,每当服务器试图获取客户端的jar,它会通过GET发送一个地穴的代码,如果隐窝代码匹配,它将从页面加载客户端,

用户可以看到代码并仍然获取该文件。

0

还有没有什么你可以做,以防止用户抓住未加密的字节码。

什么都没有。

用户的机器需要未加密形式的applet的字节码才能执行它们。由于用户(具有足够的知识)完全控制了他的机器的功能,因此可以假定控制将扩展到允许他/她在解密的某个点处截取字节码。

如果用户可以拦截小程序的字节码,那么他/她可以更改他们击败您放入代码的任何聪明的东西。这包括更改字节码以打败您用来检测字节码更改的任何措施。

“只是让它,所以他们必须在浏览器中使用它,然后检查他们是否从我们的URL访问它”可以工作吗?

没有。用户可以修改该小程序以删除该检查。

“你也可以让PHP创建一个会话变量在哈希和检查,如果是哈存在,我们的散列算法匹配”

都能跟得上。用户可以修改该小程序以删除该检查。

我不知道,应该有解决方案吗?

不幸的是,除了运行需要在服务器端保护的所有东西之外,没有可行的解决方案。

顺便说一句,这个问题是不是唯一到Java。具有技术知识和动机的人可以在Javascript中打败任何篡改保护措施,甚至可以在用户安装的本地代码插件(如果他足够愚蠢)中打败任何篡改保护措施。

+0

如何运行所有服务器端,然后通过JavaScript,HTML加载客户端? 会为用户提供'LAG'吗? – 2013-03-24 13:00:29

+0

这取决于应用程序。但是,可能答案是肯定的,用户会遇到“滞后”。 – 2013-03-24 13:02:12