【问题标题】:Libgdx: Obfuscate game assetsLibgdx:混淆游戏资产
【发布时间】:2016-11-09 17:49:56
【问题描述】:

我正在尝试找到一种方法来混淆我的 libgdx 资产。 我想用一个私钥短语来做。

不知道如何使用 AssetManager 类进行这项工作。

加载我的文件的方式是:

dynamicManager = new AssetManager();
game.dynamicManager.load("loadingscreen/loadingscreen0.jpg", Texture.class);
    game.dynamicManager.load("sounds/levelup.ogg", Sound.class);
    game.dynamicManager.load("sounds/bow.ogg", Sound.class);

我找到了一种加密/解密字符串的方法:

Java string encrypt

但在混淆 libgdx 游戏资产文件夹时需要一些帮助。 有没有人实现过这样的事情?请帮忙!

【问题讨论】:

  • 为什么要使用私钥加密?
  • 好吧,我愿意接受任何想法。我认为这是一个好方法:1)使用算法和密钥加密资产 2)在使用 libgdx 读取资产时解密资产。你认为什么是最好的?
  • 您将把密钥存储在哪里?硬编码?
  • 不是私钥加密。您应该使用对称加密。要记住的另一件事是,如果加密和解密发生在同一设备上,那么资产并没有真正受到保护。可以从应用程序中检索解密密钥。
  • 反编译jar并获取源代码非常容易。如果有人真的想要你的资产,他们就会得到它们。你可以混淆你的代码和你的资产并使用你想要的所有加密,但最终你只是为自己创造了很多工作。你害怕谁会偷走你的资产,你认为​​他们会用它们做什么?

标签: java android encryption libgdx


【解决方案1】:

有很多方法可以混淆或保护您的资产。他们都不会真正阻止任何决心获得您的资产的人。如果游戏包含资产和解锁它们的密钥,那么它们就没有真正受到保护。提取只是需要更多的工作。

假设您按照您的建议使用私钥加密您的资产。没有人能够读取您的文件。到目前为止,一切都很好。当您存储密钥以解密源中的文件时,问题就出现了。您的 jar 可以很容易地被反编译,并且源代码就在您编写的时候。

您可以尝试通过大量的圈套来阻止随意的黑客攻击/窃取您的资产,但最终您真的应该担心这些随意的黑客吗? 我找到了一个链接,其中包含一些想法的一些最小努力的想法来阻止临时黑客:scirra.com

如果您担心某些中国克隆开发者窃取您的游戏,那么有时他们所做的只是更改代码中的包名称并以自己的方式出售。 这就是版权和商标的用途。

【讨论】:

  • 您好 IronMoney,感谢您的回答。我明白你的意思,但是有很多随意的破解者可以简单地进入 .apk 并窃取资产文件夹,这就是我必须说的大多数。我的目标是让他们更难,并劝阻他们。我怎样才能做到这一点?
  • 你知道我的意思吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
相关资源
最近更新 更多