我通常在我的网站上组织锦标赛(基于flash),这次我增加了一个锦标赛,在这个锦标赛中,用户必须完成一个拼图游戏,谁在最短的时间内完成它,谁就会赢得一些奖品。因为拼图总是产生随机的位置,所以他们很难破解。他们甚至不能直接下载游戏,因为它不能使用flash saver等下载。但我想知道他们是否可以制作一个程序,自动完成拼图游戏。
请告诉我。即使是时间也无法破解,因为我使用的时间在我的服务器端也是滴答滴答的,所以我将游戏提交的时间与服务器中存储的时间进行匹配。
发布于 2010-10-07 02:57:11
那么flash应用程序如何告诉服务器这个难题已经解决了呢?使用TamperData,攻击者可以拦截/修改/重放此请求,即使它是通过HTTPS的。如果你试图嵌入一个秘密,可以通过反编译flash应用程序,甚至在你的应用程序运行时调试flash并在内存中找到秘密来获得它。
通常我会说你想做的事情是不可能的。但是让我们来享受这个元安全难题吧。这是一个拼图游戏,对吧?所以这意味着这个难题只有一个解决方案。所以你可以使用一些密码来解决这个问题,这个解决方案非常类似于Message Authentication Code,但这有一点不同。
当拼图开始时,flash应用程序将请求拼图碎片。为每个拼图块分配一个随机数和一个随机位置,该位置将传输到闪光端。当它被解决时,你根据拼图中碎片的位置连接每个数字。因此,在flash端,总是从左到右然后向下连接数字。当flash客户端得到拼图时,数字的顺序将会打乱,唯一的方法是如果拼图已经被解决,它们的顺序是正确的。当它被解决时,然后对连接的数字进行哈希运算。理想情况下,您应该使用sha256,尽管md5可以工作,因为攻击者不知道散列值,所以冲突不会发生
服务器知道拼图何时开始,因为flash端请求对应于拼图片段的数字。服务器知道难题何时完成,因为闪存端传输了解决方案散列。服务器提前知道解决方案散列是什么,因为它会分配数字。这很像mac,但不同之处在于,秘诀在于拼图的顺序。
发布于 2010-10-06 21:58:01
是的,它是可以被黑的。首先,不要太相信你对“闪存”的保护。一个意志坚定的对手将能够找回代码-毕竟,代码在用户的计算机上,它不能以其他方式运行。
其次,“随机位置”并不一定意味着什么。如果碎片上有任何类型的唯一ID,或者如果在客户端进行了随机化,那么很容易将它们放到正确的位置。你必须至少随机化切割的形状。即使这样,在给定原始图像的情况下,编写快速求解器也不会太难。
哦,这一切都假设你的服务器正在做更多的验证,而不仅仅是当用户完成时被告知。你需要确保他们确实解决了图像-但我远不相信这是一个人工智能难题;似乎即使你的flash代码是不可破解的,如果图像集很小,它也足够简单,可以找出每一块的正确方向和位置。
发布于 2010-10-07 18:07:05
对不起,评论选项不在那里,实际上我已经用xml文件来描述拼图的位置(每个)。时间是隐藏的,使用被篡改的大雅,他只能看到随机的否。这就是你可以说的mysql的s.no。这就像验证时间和游戏时间,每个都有不同的字符串,所以我的问题是,是否有人可以使用我的xm文件来检测拼图的位置,并创建一个应用程序,以便将每一块拼图放在一个剪辑中的正确位置
https://stackoverflow.com/questions/3873156
复制相似问题