SNS中的Flash游戏“防作弊”、“防抄袭”远不仅是技术问题

之前,我曾多次因自己的Flash被人破解而愤怒。前段时间有人在母校论坛白云黄鹤问及Flash反破解技术的可能时,我突然觉得,靠技术,实在只是一种被动的防御。尤其是基于SNS API的游戏类Flash应用防作弊的问题,是有很多新的思路可寻的。今天就来简单分享一下我的看法:

首先,Flash作为客户端技术,想要完全保证它的安全,是非常困难的。如果把破解视为“攻”,反破解视为“防”,我认为在“攻”这一块,各种技术还是非常强的。

首当其冲的是ActionScript Viewer(ASV)软件。目前ASV6已经可以直接查看AS2、AS3的源码,并能根据SWF生成一个JSFL(JavaScript Flash,Flash IDE提供的一种JavaScript API技术,我曾在本科三年级时做过一系列研究)命令序列和资源库。利用一段JSFL命令,我们可以操纵IDE,而利用ASV6生成的JSFL,我们甚至可以还原一个FLA文件出来!

很多时候,对一个Flash游戏进行作弊,仅需要弄清楚游戏分数的提交目的地址和参数名称即可。比如你玩一款赛车游戏,用40.56秒跑完全程,这时候可能Flash会提交一个t=40.56到某目标地址,比如mygame.com/myscore.php,这些参数,直接用Firebug就能看到,根本不需要生成FLA源文件。即便在提交表单时,做一些简单的混淆,仍然容易被ASV识破具体算法。

的确,我们把保护自己的手段过度地依赖于技术了,这会让我们失去很多机会

其实,Flash游戏防作弊、抄袭,非技术渠道更加重要,这里简单说一下两点:

  1. 游戏内容本身要承载品牌
    抄袭者对于一个品牌性很强的应用,很难继续“添油加醋”。例如某娱乐公司做了一款游戏,其中许多游戏人物都来自它旗下的签约艺人,你就很难抹掉这种品牌特征,然而对于那些毫无品牌概念嵌入的Flash,几乎不做修改就能直接用,例如我上面提到的“伸懒腰的时钟”;
  2. 积分排名系统要灵活多变
    积分系统的智能化一定要做好,排名可以按照社会关系和时间范围来分。例如,我和好友的排名,24小时之内的排名。即便是这个Flash再容易破解,如果每天数据都更新一次,破坏者也很难有精力耗下去

希望这两点能为您新的Flash游戏开发带来帮助,不过,倒是有一个问题,当所有的游戏都是来自于抄袭渠道时,还有人会自己开发Flash么?

我这么说的原因是,国内某著名SNS社区已经开始官方集体出动破解Flash并以外部应用程序之名义植入到自己的平台下……似乎还有一个规模化的技术破解团队和人肉“助破解”社区:所有不幸遇难(当然,你也可以认为是荣幸被看上)的SWF都被在_root植入了一个LoadVars对象负责提交分数到自己的服务器;而人肉破解社区则负责查看哪些Flash会有外链(有过于强的保护意识),凡是发现外链到作者网站的Flash都会被扣上“弹出广告”的罪名并可“举报”给伟大光荣的“管理员”同学……

当然,这次我也没有必要愤怒了,只是遗憾这些Flash游戏的作者在发布他们的游戏之前并没有看到本文。而我觉得作为一个转型为Blogger的Flash Developer,多少是有点幸运的:)

iLiberty(Windows)- 替代ziphone3.0的iPod Touch解决方案

演示环境:Windows Vista Utimate、iLiberty+1.3.0.113

当iPod Touch在ziphone进行jailbreak时可能会遇到麻烦(例如不小心点了某个按钮等等),这时候会重复显示:

BSD root: md0, major 2, minor 0

“场面”甚是可怕。我自己的iPod Touch出现这个问题之后我也吓了一跳。

不过去Google搜“BSD root: md0, major 2, minor 0”,发现youtube的这段视频说的很清楚:

然而,恢复之后,继续反复用ziphone我仍然无法完成破解,最终总是卡在“Please wait 1’10″”这个地方。于是继续寻找其他的解决方案。

主要操作:

  1. 按住开机键(上方)和Home键(下面中间的大按钮)不动(注意,黑屏后不要放开直到出现你第一次开机的那个画面为止,我因为黑屏后放开而失败了数次……)
  2. 打开iTunes进行Restore,回复到1.1.4(可以在本地架设一个服务器然后修改HOST来下载1.1.4那个100多M的大文件,如果你认为这样比iTunes下载更稳妥)
  3. 注意,ziphone.exe来破解iPod Touch似乎遇到很多问题,原因是这个软件可能更适合破解iPhone。因此有人推荐用“iLiberty”,可惜这个“iLiberty”是for Mac的,这里我找到一个Windows版
  4. 不需要担心是否关闭了iTunes的那些进程,直接运行iLiberty+即可。这就是iLiberty+的好处:)
  5. 如果是Mac选择Jailbreak,然后点“Free my Ipod Touch”即可
  6. 如果是Win,可能会有Update,记住一定要关闭iLiberty+远程再作Update(不太负责任的设计-。-)
  7. 看我自己拍的一段视频(由于我也是第一次,所以操作可能不太利索,但是足够真实,中间还出现了“Windows Live Writer”撰写这篇Post的NG画面~此外,由于我安装了Cydia取代Installer,因此等待时间比较久恩)

视频较大,点击这里

此外,发现root的默认密码是alpine

[原创翻译]如何保护swf文件不被反编译软件破解?

How to protect SWFs from decompilers?
如何保护swf文件不被反编译软件破解?
[ April 24, 2004 ] by Eric Lin
原作:EricLin
翻译:aw(www.awflasher.com,转载中文部分请注明出处,谢谢)
后面有点虎头蛇尾的感觉,但是大致意思出来了,如果有错误,忘指正。

A deep explanation of the techniques used to protect and crack SWF files.
一个有关“保护SWF文件与破解SWF文件技术”的比较详细的解释

——————————————————————————–

The answer to the question in the title of this article is: "no way". At least no way to me. By proper tools, I can decompile any SWF.
其实,对于如何保护swf不被破解,答案是并不存在的。至少我无法做到!我可以用一些相应的工具破解任何SWF文件
So, do not incorporate important information in the SWF. Do not include your personal account or password in the SWF.
所以,不要在swf文件中放置任何重要的信息,不要把你的个人账户或密码放在swf中。
I will briefly discuss the history Continue reading “[原创翻译]如何保护swf文件不被反编译软件破解?”