1

我在 facebook 上有一些小型 Flash 游戏。如何防止作弊引擎作弊?我的 swf 文件通过 php 将分数发送到我的数据库。我只是不希望人们通过使用作弊引擎来破解我的 Flash 游戏中的高分。避免这些问题的最佳方法是什么?

提前致谢..

4

5 回答 5

4

我使用的2种方法如下

SpeedHack 看门狗

http://www.bjoernacker.de/flash/detecting-the-cheat-engines-speedhack-in-as3/

使用这个类来判断用户是否在使用 CheatEngine 来降低帧率

另一种方法是创建一个 vault 类来在代理中存储变量,这个 vault 会将变量存储在不同的命名空间中(作弊引擎无法更改的命名空间);

http://troyworks.com/blog/2007/08/05/introspection-in-as3-use-of-namespace/

于 2012-07-19T10:13:11.913 回答
3

是的你可以:

这是一个非常好的和简单的方法。

http://www.riawolf.com/?p=20

于 2012-07-19T10:48:02.200 回答
1

简短的回答;你不能。

长答案;这是很多工作。一种选择是制作游戏的服务器端端口,确保一切都是确定性的,然后发送所有玩家操作并在服务器端端口上验证它们(并丢弃任何失败的验证)。

于 2012-07-19T09:39:43.793 回答
0

这取决于游戏,因为其中一些您可以在服务器上验证,检查用户步骤,但您也可以记录游戏并将其与分数一起保存,而不是重播高分以检查游戏是否有效。

于 2012-07-19T18:04:19.733 回答
0

我只是在分数中添加一些随机数(比如说 100 ),然后当我在某处显示它时减去它。在此之后,我混淆了 SWF 文件。所以我会有类似的东西:myScores = 100;。如果他有 15 个分数,那么记忆中就会有 115 个数字,他会寻找 15,而不是 115。然后我从 115 中减去 100,得到要显示的真实分数。保护您的 swf 免受反编译很重要(有很多软件会混淆它)。发送到 PHP 时,我还运行自己的加密/解密函数;)

于 2013-07-31T12:59:54.130 回答