游戏中的加密内容


45

我一直想使用加密来防止用户在程序本身之外弄清楚程序中的内容。就像用户可能会发现,在游戏数据中浏览时,从未在游戏中使用过的纹理将成为某种复活节彩蛋的一部分。如果在网上发布,这可能会破坏所有人的利益。

想象一下一个秘密房间,玩家必须在游戏室的安全门上按下正确的数字,如果正确,它将生成正确的解密密钥,然后解密该关卡的一部分并打开门。因此,由于实际上并没有存储密钥,因此即使在浏览游戏数据时也无法访问复活节彩蛋,它是根据用户输入生成的。

这是我想象中的另一个例子。我有一个益智游戏,假设有20个关卡,每个关卡都使用不同的密钥加密。我没有在程序中直接存储解密密钥,从而使某人可以反编译该程序并找到它,而是根据上一个难题的解决方案生成了加密/解密密钥。这样,即使在浏览游戏数据时,玩家也必须在获得有关下一关的任何信息之前实际找出难题。

考虑到谜题解决方案的数量可能少于解密密钥的数量,玩家如果知识渊博,就可以“轻松”进行暴力破解。这实际上是难题的复杂性,在这里不是很重要。虽然我确实在这里发布了有关它的答案

今天有没有做过这样的程序/游戏?在他们的游戏中存储加密内容?如果不是,为什么呢?在商店或国家/地区是否有很多法规和规章制度?有人看到我缺少的明显陷阱吗?忽略诸如用户体验之类的东西,这个主意在我看来似乎很合理,让我很好奇为什么以前从未见过。

编辑:可能不清楚我在说什么,所以这是一个更具体的示例。

假设我有一个函数,它接受20个字符的字符串并生成一个对称密钥,我可以使用该密钥对游戏中的某些内容进行加密/解密。用户获取该内容的唯一方法是知道这20个字符并生成相同的密钥。该密钥从不直接存储,而是根据用户输入即时生成的。这些角色将隐藏在游戏中,可能是书籍,与NPC的对话,甚至可能不在游戏盒背面。

因此,尝试使用2 * 10 ^ 28种可能的组合,人们更有可能会以预期的方式找到内容,而不是通过浏览游戏数据来找到内容。

编辑2:在将内容发送给消费者之前,将使用任意密钥对内容进行加密。此键显然不会随游戏一起提供。给定一系列基于钥匙的线索,他或她将不得不以某种方式将钥匙重新拼凑在一起,并且这些线索在整个游戏或其他地方都是隐藏的。但是,该系统对用户是透明的,因为除非您实际浏览游戏数据,否则您将不知道内容是加密的。

很多人提到,这样做的局限性在于它有一个明显的缺点。一旦一个人弄清楚了,他/她就可以与其他人共享它(如果不是密钥/解决方案,则可以是内容本身)。但是,如果您打算保密,以至于一个人无法解决问题,而人们必须共同解决它,或者您担心自己的复活节彩蛋被隐藏(设计使然),以至于无法解决它。更有可能有人会在代码中找到它,而不是通过玩游戏。然后我认为这可能很好。

我个人建议每场游戏只能使用一次,并且仅用于不影响核心游戏玩法的事物,例如复活节彩蛋,秘密结局。任何谜题都必须如此复杂或被很好地隐藏起来,以使人们放慢脚步,以使加密内容值得,如果这个谜题阻碍了人们的进步,那么没人可能会玩得开心。


56
答案注重技术细节,但如果你的目标是隐藏的破坏者,认为这一信息将被变为可用简单地玩游戏,在这一点(如果你的游戏是流行的),它直接进入到Wikia文章,给大家阅读,播放器与否。
Leushenko '16


5
这对娱乐产品来说有点过大了吗?我的意思是,人们可以通过查看演练来获得“关键”,或者让他们玩,或者问已经玩过它的人。同样,由于这种“或多或少的晦涩”的事物处理方式,游戏可能更容易出错。否则,我会喜欢这个主意,这将是一个不错的头,但它仍不会阻止人们进行黑客/作弊,反而会使难度增加
BlueWizard

3
我认为,如果您的用户以入侵您的游戏而闻名,而这个难题真的很难,那将特别酷。您可以在论坛上想象“这是什么奇怪的加密文件”。
PyRulez '16

5
@PyRulez啊,是的!这就是我背后的主要动机。当那些讨厌的政府审阅游戏文件以查找所有复活节彩蛋时,我感到讨厌。这样一来,他们就可以将其发布在敌人的论坛上,并破坏该国的道德观念。
克里斯特

Answers:


90

这个问题问的是,是否有可能(不仅仅是商业上可行或其他解释)迫使至少一个用户解决难题而不是黑客破解某些游戏内容。

据我所知,这绝对是可能的。实际上,对我来说很奇怪的是,即使已经非常明确地声明既不生成也不存储密钥,而只是从游戏状态中读取(可能有可能的googleplex),其他答案却说这是完全不可能的值)。“游戏知道如何解密”这样的论点将不起作用,这意味着任何开源加密/解密软件(例如TrueCrypt)本质上都是不安全的,因为您知道“如何”解密容器(只需输入一个基于键盘输入的字符串,很简单吧?)。

在绝对最简单的情况下,假设游戏本身是一个键盘模拟器,并询问“我的加密文件的密码是什么?”这个问题,显然我们都同意拥有游戏的源代码无济于事。现在想象游戏问的问题是:“地球上最大的动物的名字与最小的动物的名字连在一起是什么?”。尚不清楚即使拥有游戏源代码也无济于事,而您仍然必须解决难题吗?

关于这是否可能,答案是绝对“是”,这是可能的。


9
我认为您的答案是到目前为止唯一似乎可以完全理解我的问题的答案。似乎有太多人自动认为我的问题与某些其他与游戏相关的加密问题一样。我希望他们从哪里来,尽管我希望他们能更好地阅读我的问题。
克里斯特

7
您建议的是,问题的解决方案仅以加密方式存储。肯定有可能确认一个有效的解决方案,但从根本上讲是不可能的。(如何存储密码101)。然而,关于如何隐藏不需要显示用户输入内容的问题的第二部分却无法解决(请注意,当我说不输入用户输入时,我的意思是非常严格的方式)
WorldSEnder '16

3
我认为,主要要点实际上是只能强迫单个用户解决难题,因为第一个可以告知其他所有人。这使得整个加密过程变得毫无意义。
cmaster

4
在源代码(或strings可执行文件上的)中,出现一个诸如“最大动物的名字是什么?”之类的谜语。可能仍需要由玩家/黑客解决,但至少他可以避免危险地旅行到游戏中出现问题的地方。因此,谜语本身也应该被隐藏起来(文字通常可以满足图形要求;更详细地说,我想我记得在一个游戏中,从特定角度看,普通的3d对象从透视角度结合了谜语或其他重要解决方案。资讯...)
哈根·冯·埃岑

4
给定这样的引用:“如果在网上发布,这可能会破坏所有人的利益。” 最初的问题...很抱歉,但是这个答案没有重点。这将是刚刚一样,容易受到破坏给大家,如果答案或解密文件或任何张贴,并且只是作为易受张贴。
内森·塔吉

57

已经尝试过了。很多很多次 有一个完整的子行业专门致力于尝试使用加密来阻止用户访问他们认为合适的程序。而且它永远都行不通。最好的保护方案通常要持续一个月左右才能被破解,而关于Internet的事情是,一旦被破解一次,一旦有人发布,它就会永远被破解。您缺少的一个明显的陷阱是,为了使程序能够使用数据,它必须包含解密数据所需的所有信息,并且如果计算机可以做到这一点,那么有权访问计算机的人可以做到这一点。那。

它被称为“密码学的基本问题”:爱丽丝想向鲍勃发送一条消息,即使查理知道了,查理也无法阅读。 您提出的方法的问题在于,在这种情况下,鲍勃和查理是同一个人

我能理解不破坏用户的愿望,但是如果人们想要破坏者,他们会找到他们,如果不希望,那么他们将倾向于积极避免破坏者。但是,如果您想真正创造出出色的游戏,那就走相反的路:彻底的开放。看诸如《无冬之夜》,《星际争霸》或《上古卷轴》系列之类的游戏,这些游戏在发行后已经流行了很多年。他们之所以这样做,是因为他们在游戏中附带了功能强大的设计工具,使用户可以深入研究一切,弄清其工作原理以及构建和共享自己的内容。一个游戏只是一个游戏,直到它成为一个社区,并且社区持续存在。


3
在这种情况下,尽管破解加密与编写解决难题的机器人是等价的。比单纯完成游戏并写下答案要困难得多
Ewan 2016年

15
我只想说这个答案并不能真正回答我的问题!我实际上是希望人们“破解代码”,或者解决我的难题。这就是重点,是的,一旦有人弄清楚了我不能阻止他分享解决方案,我就不会尝试。但是,您在说“它必须包含解密它所必需的所有信息”时说错了,因为这是用户提供的全部信息。阅读更新的问题以获取详细信息。
Christer

6
@Christer确实如此,这就是为什么:梅森在说谁在乎他们是否可以进入游戏文件以找出谜题答案,因为只有少数人会这样做 ..
Insane 2016年

9
@JonasDralle这是一个令人反感的愤世嫉俗的观点,也不是事实。围绕MorrowindOblivion建立的强大而持久的社区并没有阻止Skyrim出售;如果有的话,它会更加成功!
梅森惠勒'02

3
@Cronax如果您使用“一次性密码”样式的加密,在这种情况下,密钥是难题解决方案,那么对于密钥空间的大小,攻击者没有比暴力破解更好的选择了。有了正确的谜题,在宇宙的生命周期内解决这个难题可能会非常大。同样,如果说复活节彩蛋是来自开发人员的消息,那么攻击者将无法将真实消息与随机的正确英语消息区分开。
本·亚伦森

10

我已经待了很长时间了,才知道如果有内容,就会有人找到。加倍努力只会吸引更多有决心的人。您的产品越受欢迎,它就会变得越有趣。部分原因是这是一个挑战,部分原因是通过发布此类信息,您可以在许多地方获得“信誉”。

如果密钥是由游戏本地生成的,则可以找到一种方法来欺骗整个游戏,直到生成密钥为止,或者干脆找出正确的代码。如果在完成游戏中的某些步骤时将密钥从服务器发送给您,那么有人会欺骗您的服务器以使其相信自己已经走了足够远。

最终,您将花费大量时间使游戏变得有趣和引人入胜,而这将使您难以发现下一级的颜色,这将使您受益匪浅。


尽管使用本地存储的密钥加密的数据始终可以被黑客入侵。实际上,所有现代应用程序和游戏都在一定程度上使用它。
伊万

看看soomla以及它如何做硬币
Ewan

我相信问题是关于向好奇的玩家隐藏未来的内容,而不是关于如何保护货币和玩家数据免遭篡改
axl

1
由于这是一个复活节彩蛋,因此吸引注意力正是您想要的。
PyRulez '16

6
加大难度只会吸引更多有决心的人,我认为这是一款出色的游戏营销策略:)
sampathsris

9

之所以应该在gamedev.SE上使用,主要是因为进行这种加密会影响游戏性。

您希望一个难题的解决方案成为下一个难题的加密密钥。也就是说,该解决方案的实际数据必须解密下一个难题。这意味着解密密钥在任何地方都不是游戏数据的一部分。它是由玩家生成的。

这就是后果。解密通常是二进制的。您是否具有解密数据所需的确切解密密钥,否则就没有。

结果是,无论您设计哪种游戏,都必须专注于狭that的领域,以至于每个关卡都只有一种可能的解决方案。因此,您的拼图机制必须经过精心设计,以使玩家无法以不同于您的意图的方式来解决拼图。

以Portal(测试室10)为例。您应该向左走,做一些事情,然后向右走,做一些事情,所有这些都是为了降低平台。

或者,当您走进去时,您可以给自己一些速度,然后跳到平台上。

GLaDOS:所以您制作了一个益智游戏。一个益智游戏,惩罚最喜欢益智游戏的人。做得好。但是至少那些黑客不会获得您的宝贵数据。因为喜欢解谜游戏的人是查找在线益智游戏解决方案的确切人。

因此,这完全值得。

因此,诸如Lolo历险记,SpaceCHEM和Portal(数百万其他游戏)之类的益智游戏就很合适。取而代之的是,您必须对游戏进行设计,以致无法创建具有多个解决方案的难题。这需要非常谨慎,并且通常需要充分限制游戏玩法。

GLaDOS:所以您制作了一个益智游戏。一款适合喜欢寻找难题的创意解决方案的人玩的游戏。您制作的游戏没有针对难题的创造性解决方案。*慢拍*

我并不是说您不能创建这样的游戏。否则,这样的游戏就不好了。只是必须以某种方式设计这样的游戏。

哦,您必须设计这种游戏方式,以便不可能(或非常困难)机械地找到解决方案。

GLaDOS:所以您制作了一个益智游戏。一个益智游戏,这是更有趣的黑客,而不是发挥。做得好。


当然,对此有一个警告:“解决方案”的含义。或更重要的是,您考虑解决方案的哪些要素?

对于任何涉及移动角色的游戏,您可能都不会使用角色的确切动作来构造解密密钥。例如,如果您有一个益智游戏,玩家需要拿起某些物品来“解决”难题,那么您可以根据这些物品的触摸顺序来确定钥匙。

当然,这会遇到上面的问题,玩家会找到一种无序做事的方法。同样,这也意味着您必须设计拼图,以使您只能提取一个订单。

此外,无论用于构造解密密钥的任何元素都需要提供足够的熵,以使蛮力解密变得困难。使用上面的收集顺序机制,每个新项目实际上都是多余的一位。如果一个关卡只有8个项目,则您正在执行8位加密。废话 大多数智能手机都可以在几秒钟内完成处理。

如今,您至少需要128个才能使其更具挑战性。现在,这意味着每个关卡都需要包含很多内容,这又会影响您的游戏设计。


2
@克里斯特:您的示例仅表明您的总体问题无关紧要。根据定义,“任何任务之外的秘密祭坛”的内容与从根本上讲完成任务的任何游戏都不相关。而且,如果您的游戏不是要完成任务,为什么要在其中进行任务?无论哪种方式,总的事实仍然存在:您将大量时间花在与您的游戏或玩家没有实际关联的事情上。你应该把非常有限的时间和精力的事情,此事
Nicol Bolas

2
@Christer:“ 而且由于使用加密的事实对99.9%的用户是透明的,因此这不是一个有效的论点,因为这是一个可怕的想法。 ”如果使复活节彩蛋占用了开发时间,则可能转到真正有用的功能,然后,是的,这是一个可怕的想法。您花了更多的时间来制定问题和回答答案,而这个功能不值得。那时,您可能一直在编写实际的游戏。如果它对99.9%的用户是透明的,那么...如果对它加密,为什么对他们来说很重要?为什么要花0.1%的时间?
Nicol Bolas

2
对不起,但是我希望自己的游戏玩得开心!并非每个人都可以成为游戏制作机器人。另外,让我判断这需要多长时间以及我愿意花多少钱。加密部分本身至少可以直接实现。
克里斯特

1
The consequence here is that whatever game you design must be so narrowly focused that there is only one possible solution to every level.不一定:他可以为每个可能的解决方案加密内容,并为所有可能的解决方案发送重复的加密内容。可以使用两层加密来节省空间- 链接答案中的用户密钥对应于特定的解决方案,文档对应于内容。
mucaho '16

4
@mucaho:这需要事先知道“每种可能的解决方案”。
Nicol Bolas

8

答案很好。我会从另一个角度来看它。您所描述的是一个功能。功能具有成本和收益。这些成本包括创建要素的美元成本和“机会成本”。它们是:在一个拥有有限的资金,有限的时间和有限的程序员的世界中,您所做的每个功能都意味着无限数量的可能功能,而这些功能是它所不能替代的。

因此,问题是:您可以实际说明此功能的成本吗?没有免费功能,因此在费用上要切合实际。您愿意为此功能支付一千美元吗?十万?一百万?您愿意削减哪些功能以拥有此功能?

我认为,一旦您开始考虑错过的成本,收益和机会的优先顺序,您就会意识到,当您本来想让游戏变得更有趣的方式时,您已经花了太多时间在考虑此功能。


5

爱丽丝·鲍勃和夏娃的问题很好地说明了这一点。正如梅森在回答中指出的那样,如果夏娃还是鲍勃,就不能对夏娃保密。

因此,任何解决方案都将由Bob拥有的所有必要信息组成。您将必须将每个级别视为一条单独的消息,并相互单独加密,并为下一个级别提供消息的外部源,以便能够正确地保留消息。

但是最终,这变得毫无意义。如果有人可以自己玩游戏,那么也可以编写一个程序来摄取游戏。因此,您要做的就是强迫它们从您的外部源(可能是某种服务器)来回移动。一旦他们破解了如何将消息发送到您的服务器,这就是同样的故事。

但是您在这里忘记了一个关键要素。游戏而已。如果有人在游戏中作弊,那就大声疾呼。您没有为作弊者编写游戏。任务演练或升级指南也是如此:想要独自解决难题的人会忽略发布的解决方案。即使您能够在不玩游戏的情况下也无法破解游戏(我们知道这在逻辑上是不可能的,但是即使您可以,也可以)只有一个人走过,然后他才能发布击败游戏的所有必要信息。因此,您只是在延迟不可避免的事情。

花时间做一个很棒的游戏。有十件事情每个游戏都需要和最后我看了看,加密是不是其中之一。


2

我相信你的想法是没有意义的。

当某人玩您的游戏时,他们选择玩游戏,不是为了赢得奖励而是为了娱乐。

用户知道,最有趣的是来自扮演您的意思而不会作弊的方式,因为您的客户已经相信您作为讲故事的人。

同样,只要有人找到了难题的解决方案,即您的钥匙,他们就可以将其发布到Internet上的某个位置。
想要作弊的玩家仍然可以做到。


但是,如果您的游戏提供了多种解决方案,例如《超级马里奥大地》的秘密关卡,则对资产进行加密将使您无法轻松访问这些解决方案。

虽然这似乎支持您的想法,但最终并非如此。

即使使用加密,仍然有可能知道存在这样的秘密解决方案。
一旦知道存在秘密解决方案,防止玩家查看秘密资产就没有关系了,因为他们仍然希望通过游戏本身来访问游戏的隐藏部分(是的,即使他们已经看到了所有隐藏的内容,纹理/剪辑/音频/文本)。

您可以通过使用一些过时的技术1来防止秘密解决方案的存在泄漏,但它仍然令人怀疑(如果没有秘密解决方案,为什么要这样做呢?),玩家会失去寻找它们的兴趣,而您的玩家减少了, 不多。
毕竟,在完成一场比赛来触发一些复活节彩蛋之后,我们可以多玩几个小时,但是如果触发它们需要巨大的努力,我们将不会再玩一分钟!


您想要做的就像是一本书,其中下一章用当前章的单词加密,以防止读者破坏结尾。
考虑一下,不是没有意义吗?

1非常类似于VeraCrypt对隐藏卷进行的操作。


1
我实际上很喜欢那本书的主意。我知道这会让很多人感到沮丧,但我也可以想象人们真的想要这样的书。我知道有些人即使跳过尝试也无法通过跳过自己来破坏结局。因此,我想这样的书可能会有所帮助。尽管他们仍然可以在线查找钥匙,除非钥匙是个性化的。即使这样,他们也可以直接查找结尾。即使他们如此绝望,也没必要像你所说的那样进一步阻止他们。
Christer

1

我不会评论商业可行性,但是从纯技术角度来看,这是一个有趣的挑战。


首先请注意,任何未加密的内容都无法得到保护。您无法将进入的门保密,破解者会在闸门周围找到一条路,而您必须将整个秘密设为门本身。就资产而言,这并不一定意味着整个纹理等...仅加密计划,使用的方案以及如何加密,出于性能原因,您希望加密的数据越少越好。


其次,您是正确的,如果密钥包含在软件中,那么它将从软件中获得。许多游戏在保护内容时,都会尝试通过模糊的方式使用安全性或使用确保游戏软件未更改的机制。这些只是拖延战术。

您使用谜题解决方案作为密钥的想法非常有趣,但是,使用直接提供的密钥很容易被蛮力地使用。相反,将用户输入视为密码,并使用最新的密码哈希方案:生成的哈希是密钥。

但是,即使那样,您在游戏中不存在钥匙的假设中仍然存在错误。如果不是这样,您将无法引导您的玩家朝着它前进。因此,与其尝试强行使用保险柜,不如对游戏资产进行反向工程以寻找线索。我可以想到的一个潜在难题是使用纹理编码字形,然后密码将包含键盘上的一些可用密码,如玩家应该访问的位置所揭示的(按顺序):

  • 问题的症结在于,计算机仍然难以识别图像
  • 在此之上,我们对CAPTCHA饼干针对字母和数字(而非自定义字形)进行了调整
  • 最重要的是,我们通过组合多个纹理(具有透明度)来向玩家展示该字形,从而使游戏中没有任何资产包含该字形的外观这一事实
  • 在各处使用其他纹理(带有碎片),但绝不能以生成完整字形的方式使用,除非在隐藏的位置,玩家永远无法触及

任何自动提取获胜字形组合的程序都将陷入困境。


第三,下一个困难是分享。一旦找到了秘密解决方案,它将被揭示。理想情况下,每个人都应获得略有不同的软件版本:密钥是其游戏版本所独有的。为了使它实用,我猜想将游戏(及其资产)与“秘密”(加密)和“秘密驱动程序”(密钥生成器)分开会更容易,后者会在许多不同的地方放置很多纹理片段,其中一些是密码)。

显而易见的攻击媒介是在欺骗生成器时始终选择相同的密码,或者在欺骗验证器中始终接受相同的密码(例如,通过下载其他人的机密文件)。

在这里,一种潜在的解决方案是将文件链接到用户帐户,并按照通常建议的方式对密码加盐:

  • 当用户请求一组文件时,随机生成一个盐和与机密一样多的密码,然后创建机密资产(例如,您可能希望将此过程限制为每天一次/用户一次,以避免服务器超载)
  • 将生成和时间戳的时间戳存储到用户的帐户信息中
  • 发回时间戳和个性化的机密文件给用户

然后,当用户准备提交密码时:

  • 让用户登录(如果尚未登录)
  • 让软件发送时间戳和字形密码
  • 如果时间戳与存储的时间戳不同,请告知用户她正在使用一组过时的秘密文件
  • 如果已经多次尝试输入密码,请告知用户她正在使用一组过时的秘密文件
  • 否则,对salt + password进行哈希处理以生成密钥
  • 否则,将密钥发送回用户,以便她可以查看她的个性化文件
  • 增加此帐户尝试此密码的次数

这里的目标是尽可能阻止帐户共享:

  • 共享一个帐户以生成秘密文件是受(a)限制的,因为每天只能生成一个帐户,并且(b)无效,因为最新生成的内容使另一个已过时
  • 共享帐户并分发关联的机密文件是没有用的,因为给定的密码只能使用N次,然后再不再产生密钥

我们快到了。


最终,即使在那儿,破解者也可以发布游戏的修改版本,其中秘密资产被解密并直接集成(绕过您仔细的验证方案)。

该解决方案很简单(几乎使所有超过过时的1):不要信任客户端。

在您的网站上创建排行榜,并跟踪玩家帐户中的进度。玩家可以声称自己已经完成了所有想要的游戏,但是除非他们的帐户反映了这一点,否则所有人都知道他们一直在作弊...

...这就是所谓的社会压力;)

1 除了纹理定位文件,我们使用纹理定位文件来防止程序猜测密钥,但仍使用户可以获取它。


感谢您的周到答复。你说的好点。虽然我想补充一点,但不需要像您说的那样将密钥/解决方案存储在游戏中。例如,它可能隐藏在游戏网页的html中,也许您想奖励那些浏览此类内容的人。但是,即使在游戏中,您也可能更具创造力,例如使用谜语作为解决方案,从某个角度查看时可以显示信息的几何形状,使用与上下文相关的东西,除非您已经阅读了很多相关知识,否则可能无法获得。游戏。就像Skyrim如何在计算机终端上读书或登录。
克里斯特

我没有在问题中提到这一点,所以不用担心。我的想象是,您会玩整个游戏,感觉就像是一个完整的游戏。但是,这扇隐藏的门上有一个奇怪的锁,您永远也不会过去。希望它可以使人们好奇和交谈,甚至可以使人们一起努力解决这个问题。由于没有人弄清楚,所以弄清楚这也是一种荣耀。也许如果经过了足够的时间,门的难以捉摸的秘密将催生传奇!只是通过浏览游戏资产而被破坏的糟糕透顶。
克里斯特

@Christer:有人只是通过浏览游戏资产而毁了,真是太糟糕了。=>通过使用秘密文件来描述位置确实可以解决此问题(主要是重复使用现有的纹理),但是一旦秘密被发现,它就已经消失了
Matthieu

0

这是一个有趣的想法;拼图光盘上的一种变体,可以手动输入单词的版权保护系统。我认为某些“ ARG”游戏的工作方式是这样的,可以理解,玩家是在集体对抗游戏设计师。

显然,一旦第一人解密,他们就会将其发布到互联网上。

生成内容或过程内容的工作方式相同:除非您共享“种子”,否则您不会看到与其他玩家相同的世界。

我看不到任何法律问题,尽管Apple可能会从其App Store拒绝它,并且您可能必须提供解决方案才能在游戏机上获得批准。


0

考虑采取额外的安全措施很有趣,但这并没有为您的产品增加具体的价值,而是向遇到产品的饼干展示了您的聪明才智。原则上,您的对手会追上您。

与富有创造力的开发人员相反,cracker是分析人员-他们可以直观地利用您的程序。当开发人员倾向于采取过多的安全措施时,他们会否认–破解者可能会再次破坏其保护方案。

无论您是否想参加这次背景竞争,这都是您的电话–但不要让它分散您的最终产品的注意力,这必须取悦客户。将游戏变成encryption弹的古怪加密方案无济于事。


0

梅森·惠勒(Mason Wheeler)正确:您做不到。如果有人愿意,总是可以对游戏进行反向工程。

无论如何,您都无需以描述的方式“保护”您的游戏。一旦一个人找到了复活节彩蛋,这个秘密就不存在了。如果游戏的每个副本都具有不同的复活节彩蛋,则只有黑客副本才会为人所知。您是否真的在乎千分之一的黑客在没有玩游戏的情况下找到了复活节彩蛋?

版权法规定,任何人都可以在不冒严重诉讼风险的情况下从游戏中获利,因此版权可以保护您。

至于随机用户将您的纹理放在他们的论坛头像上,那又如何呢?考虑一下它是基层广告。

痴迷于“保护”东西只会使您从困难的现实中分散注意力,例如:制作游戏

当我看到没有产品的人谈论他们甚至不存在的IP保护方案时,这对我来说是一个遥不可及的时刻,因为它在整个项目中引发了巨大的废话。


-1

一些可能性:

  • 普通的旧代码混淆。它不会使代码无法解码,但至少会很难。

  • 服务器端解决方案。您向服务器发送一些特殊命令,服务器可以向您发送代码...甚至下载DLC。

  • 您可以使用隐写术在其他内容中隐藏可执行代码。

这不会使您的秘密百分百安全,但是,如果秘密被泄露,似乎没人甚至不会放过钱。


-1

就像在客户端上存储密钥和算法的任何其他模式一样,它是无用的。如果您问“关键在哪里,我依靠用户的输入而自己不存储吗?”,请记住,您的难题具有通过其定义定义的规则和资源-它是通过​​某种算法而不是通过强行解决的。这种精确的算法及其资源是您刚刚以混淆状态将其硬编码到游戏中的密钥生成算法。任何人都可以通过编写一个小程序来检索您的“不存在”键,该程序可以根据您的规则解决难题。


1
但是,并非每个难题都能通过计算机轻松解决,就像以前从未做过的谜一样。计算机也很难阅读游戏中的所有对话框并处理所有纹理。即使是这样,它怎么会知道何时出现与此谜题有关的东西?完整密钥甚至不需要存储在游戏中,也许有一个线索可以读取盒子背面的钥匙,而计算机则无法做到这一点。即使难题是计算机可以解决的问题(例如Sudoku),至少也可以解决难题而不绕开难题。
克里斯特

@Christer,弄清楚其他任何“默默无闻的安全性”自制加密也没什么不同。“包装盒上” -你只是写钥匙“纸壳”的资源,你给用户,而不是“文件”的资源,你给用户。大事了
Oleg V. Volkov,

@Chriser,即解决“以前没有做过的谜语”,就等于 “解决了以前没有做过的自制加密算法”。
Oleg V. Volkov

您没有看到如何根据用户输入生成解密密钥吗?您看不到这个用户输入可能是什么吗?您要求的生成正确解密密钥的正确用户输入是什么?谁知道,它以各种有趣的方式隐藏在整个游戏中。希望您能找到它,因为这就是重点!否则,祝您好运。
克里斯特

它与阅读源到底有何不同?您按照设置的规则执行任务->您会得到密钥。就这样。除非您可以通过从其他游戏资源中读取“线索”来获取捷径,而不是实际玩游戏。
Oleg V. Volkov,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.