0

我想防止对我的游戏客户端进行反编译。是否有一个选项我可以使用 .htaccess 或任何其他方法保护 .jar 文件,以便客户端(浏览用户,通过小程序加载客户端)将无法获取文件并对其进行反编译。

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

谢谢!

4

3 回答 3

1

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

于 2013-03-24T12:42:26.753 回答
0

您无法阻止用户获取未加密的字节码。

没有什么。

用户的机器需要未加密形式的小程序字节码才能执行它们。由于用户(有足够的知识)可以完全控制他的机器做什么,你可以假设控制将扩展到允许他/她在字节码被解密的某个点截取它们。

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

“只要做到这一点,他们就必须在浏览器中使用它,然后检查他们是否从我们的 url 访问它”这可行吗?

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

“您还可以让 php 创建一个带有哈希的会话变量,并检查该 hah 是否存在并与我们的哈希算法匹配”

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

不知道,应该有解决办法吧?

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

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

于 2013-03-24T12:53:03.763 回答
0

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

也许创建一个加密代码,并且每当服务器尝试获取客户端 jar 时,它会通过 GET 发送一个加密代码,如果加密代码匹配,它将从该页面加载客户端,

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

于 2013-03-24T12:40:24.130 回答