之前,我曾多次因自己的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游戏防作弊、抄袭,非技术渠道更加重要,这里简单说一下两点:
- 游戏内容本身要承载品牌
抄袭者对于一个品牌性很强的应用,很难继续“添油加醋”。例如某娱乐公司做了一款游戏,其中许多游戏人物都来自它旗下的签约艺人,你就很难抹掉这种品牌特征,然而对于那些毫无品牌概念嵌入的Flash,几乎不做修改就能直接用,例如我上面提到的“伸懒腰的时钟”; - 积分排名系统要灵活多变
积分系统的智能化一定要做好,排名可以按照社会关系和时间范围来分。例如,我和好友的排名,24小时之内的排名。即便是这个Flash再容易破解,如果每天数据都更新一次,破坏者也很难有精力耗下去
希望这两点能为您新的Flash游戏开发带来帮助,不过,倒是有一个问题,当所有的游戏都是来自于抄袭渠道时,还有人会自己开发Flash么?
我这么说的原因是,国内某著名SNS社区已经开始官方集体出动破解Flash并以外部应用程序之名义植入到自己的平台下……似乎还有一个规模化的技术破解团队和人肉“助破解”社区:所有不幸遇难(当然,你也可以认为是荣幸被看上)的SWF都被在_root植入了一个LoadVars对象负责提交分数到自己的服务器;而人肉破解社区则负责查看哪些Flash会有外链(有过于强的保护意识),凡是发现外链到作者网站的Flash都会被扣上“弹出广告”的罪名并可“举报”给伟大光荣的“管理员”同学……
当然,这次我也没有必要愤怒了,只是遗憾这些Flash游戏的作者在发布他们的游戏之前并没有看到本文。而我觉得作为一个转型为Blogger的Flash Developer,多少是有点幸运的:)
沙发啊沙发
一沙难求
原来是这么破解的,改天我也试试看。
我最喜欢就是破解Flash游戏,不过不是抄袭,仅仅是为了快速通关而已。
对,如果承载品牌,就不怕破解。品牌是产品的重要属性,相对于功能和品质,品牌的影响更大。
我倒是很好奇某著名的sns是哪个
说的就是校内!AW也太给校内留面子了吧,看看开发者怎么说的:
何直群 2008-09-24 12:50
性格签是一个测试类的应用,很火爆,夺得开发大赛大奖。——在大赛尚未结束的时候,校内出了自己的“测试”;
最近保雷以及其他各个开发者搞的FLASH小游戏,很火爆,前端时间了解的情况,是为数不多的自己能赚些钱的应用。——现在,校内上线了自己的“小游戏中心”
……
如果我说这只是一个巧合,谁相信?
如果校内说因为第三方做的不好,服务不好,所以要自己做,我们能说什么?
我早就说过,第三方开发者,在游戏刚开局的时候,已经注定是处于一个被动的位置。
PS:
我不相信 Facebook 上排名靠前的应用,FB自己没有把握自己能做的比第三方做的更好,或者说,第三方就做的好到了FB都自叹弗如吗?但是为啥 FB 就不自己做呢?
看看回帖:
回复
21楼
陈保雷 2008-09-24 13:44
———–>[回复20楼 何直群]
>>我觉得也是,怎么就不知道我们的艰辛呢
回复
22楼
方野舟 2008-09-24 13:51
———–>[回复20楼 何直群]
>>你查下,我因该也是做应用开发的.
我不觉得抄袭是问题,我了解你们说的意思,抄袭了你们的,你们觉得都白做了是吧.
不要有这样的想法.
做得好做不好,全看自己,你被超级了FLASH游戏,那你就另外做其他的呀,没有人能堵死你.
做应用开发的,你看了那个协议之后,就因该想开点.协议上也说了,随时可以终止你的应用.
也就是说,满意不满意,给你不给做,都是校内自己说了算,你没权告他,因为你在开发之前已经认同这个不平等条约了.
所以说还是想开点吧,没什么好生气的,人家不给你做FLASH游戏,那你做其他的不就得了.
回复
23楼
王秋石 2008-09-24 14:07
校内好像就怕别人利用它赚钱……
回复
24楼
何直群 2008-09-24 14:14
———–>[回复22楼 方野舟]
>>———[回复20楼 何直群]
求你一个事,以后我的帖子,你别回了。我看着你说话,别扭……
回复
25楼
谢刘俊 2008-09-24 14:14
有点任命的nucai逻辑——具有中国特色社会主义的良民逻辑———–>[回复22楼 方野舟]
>>
回复
26楼
李大维 2008-09-24 14:18
呵呵,看来今天又是跟平台吵架的日子,才刚刚在MSN群里围剿51,有人提到校内这里也有热闹看。
好奇的一件事是校内这个小游戏有没有授权?游戏公司去告保雷的话意义不大,不过面对校内这个上市前不用在融资的公司。。。呵呵,告起来过瘾呢。
回复
27楼
何直群 2008-09-24 14:35
http://www.28wish.hk/play-Hexxagon.html
这些游戏是来自这个香港网站,我刚破了一下SWF,发现很容易搞~~~
回复
28楼
赵洪日 2008-09-24 14:45
校内太不专业了
回复
29楼
叶小美 2008-09-24 14:46
呵呵,校内一直在呼悠开发者
回复
30楼
杨阳-大荔 2008-09-24 14:47
不存在绝对的公平么 校内说白了就是为了盈利 只是手段比较高明罢了~
你在这寻求公平 根本就没戏么
不行就搞掉校内
回复
31楼
蓝文 2008-09-24 14:49
———–>[回复29楼 叶小美]
>>挖沙
美女
回复
32楼
李阳 2008-09-24 16:20
校内啊,说句实话,老何说话已经分析得相当深入了~!或者更过分的话我们也都不好意思说。
校内确实非常让人伤心,和几个做应用的朋友讨论了一下,校内的开放平台确实不够成熟,甚至比不上manyou的?而且感觉运作起来的流程也不是很爽,xiaonei老是抢大家的饭碗,大家都感觉委屈得很啊~!
似乎校内的开放根本就是被逼出来的,来自投资压力也好,来自流行趋势也好,但最终我们看到了,整个校内的开放平台似乎都是后妈生的~!地位不高啊~!
难怪好多朋友都在说:校内的开发者大多是冲着那10W的奖金来的,大赛一过,就开始撤了~!我想谁都不愿意看到这样的结果啊~!
大赛之后论坛里的气氛,大家么看出来吗?为什么很多原来的老牛都不怎么说话了?
我不想用对校内以声讨的语气说话,但只是想引起校内的重视~!
毕竟,不能把大家伤得太深了~!
大家也不必找我的应用,俺做事悄悄的,呵呵
简单表达一下
回复
33楼
王文昭 2008-09-24 20:59
———–>[回复20楼 何直群]
>>也不知道该叫你什么。说实话,我作为一个用户来说,我觉的小游戏中心很垃圾,至少里面的游戏都不是自己开发的,我很不喜欢里面的游戏。我玩了十分钟十好几个游戏,如果我不在乎它怎么发展,我会马上卸掉。
回复
34楼
薛小生 2008-09-24 22:06
———–>[回复24楼 何直群]
>>———–
海内?
不是海内。
莫非是 sina ?
不是sina,我也没必要说了,这个圈子里的开发者应该都知道。这事儿也没必要太在意,反正大家都是抄嘛。关键根本不在对抄袭者的管制,而是用户的意识和设计者太缺乏保护。
人工解决为主,技术为辅。
我这两天刚处理了两起出于商业目的抄袭本人文章的事情。
中国人都很怕麻烦,你和他交涉了,他下次就不会抄你的了。
这样下来,抄袭者的数量就越来越少(毕竟有这个习惯的人是少数,解决一个就少一个)。
事实也是这样,我现在处理这种问题花的时间,比一年前已经要少的多,很省心。
所以,我还准备坚持这样的政策。嘿嘿。
潘大真聪明,加油:)
纠错来了,是一系列研究,不是一些列研究,在第七行,就是链接到http://www.awflasher.com/blog/tag/jsfl这个的文字,AW真是错别字大王。嘿嘿。
寒,多谢多谢,呵呵……我这就改!
没事,我要是不经意间看到了就会和你说的,放心吧。
您是hust ei的? 师兄啊
是的,我是HUST EI 02
看了一些,一届俗人,求个到底FLASH怎么个攻法,比如抢车位之类,仅途一乐。请邮箱,谢个,大侠。
文章很有借鉴意义!本想转载!呵呵,后考虑版权免了!
希望百度管进出微博,我好期待啊。嘻嘻。。。看好你啊
弄不 明白,我是在茫然中尽力啊的
游戏还是游戏,标题还是标题
我觉得网民也是其中的关键啊!
欢迎联系~
刘老师似乎跟我提到过你。。
说你博客好厉害来着。。
我之前做过逆向工程
还有其实很多东西可以从服务器来做的。。。
用客户端的程序只是提交数据不能做过多的处理。。。
服务器端的代码不容易被逆向