网页类游戏辅助工具一点说明
就网页类游戏的分类,鉴于我的读书比较少,目前知道类型只有以下几种:
1、纯网页打造
html+php+图片
2、Flash类型
php+Flash脚本
3、内嵌Java类型
微软的silverlight再等等看吧,市场份额出来就会有人用了。Java网页游戏我去年体验过欧洲的一个3D大型多人在线游戏,上面人比较多,网速慢,属于一款内涵式游戏,所以体验体验就出来了,不过当时的想法是,既然那个开发商用Java都把3D效果做的这么不错,为啥不做成客户端呢(这个Java游戏经常的场景切换造成的用户体验很不好)。
架构决定的网页游戏天生对于客户端请求的不信任,所以大部分网页游戏的大部分操作都是时间累积和查询操作。所谓时间累积,比如你在线累积时间达到要求就会升级、可以领取特定任务(服务器端一般会在你提交任务完成请求时验证时间差)…;所谓查询操作,常规意义的比如查看用户参数,比如金钱、经验等等,广义的比如开心农场形式的养成类游戏里的偷菜、施肥等等,因为你提交偷菜请求的时候如果服务器端只有10颗白菜,你最多只可以摘10颗而已。这些特性,或者说缺陷也决定了网页类游戏在排除服务器架构和数据处理存在Bug的前提下,大多是提供一种自动化操作,也即模拟操作,表面上这其中不涉及恶性破坏游戏平衡性,实际由于正常玩家的时间和操作的熟练和程序相比已经输在起跑线了,加之有些辅助工具频繁的提交请求,当辅助工具的数量达到一定规模,服务器机房就可能会出现小型的暴风断网门事件,所以一般都在服务端检测请求间隔,或者设置一个动态加密字串,比如开心农场的Farmkey等等。这也提醒我们在写此类辅助工具的时候时间参数的构造不是可有可无的,算法的选择会决定你模拟的真实性。
目前网页游戏架构体系为典型的【客户端<->服务器】类型,因此辅助工具的流程大体如下:
1、验证账号合法性,建立和服务器的对话(Session)。这里的对话你可以理解为相亲,2个人都是陌生的,在媒介(可能是你的同学或者长辈)的认证下,你和相亲对象进入媒介提供的某地点开始谈话:这就是客户端和服务器Session的作用,表示在此时此地,你是作为被认证的相亲人来和相亲对象相亲,这之后的对话都是你们之间的对话。这个相亲的比方看起来像是废话,但客户端<->服务器建立对话的目的就是保证后面的请求和响应时本次对话的内容,所以你不必每次都输入账户密码来认证,只要证明你当前的请求属于本次会话,你的合法请求都是会被响应的。
2、通过向服务器端发送请求,获取初始化用户参数所需数据。包括用户的各种属性和状态,然后更新辅助工具的数据。
3、根据用户指令或者预先设置的规则来发送请求或开始进入循环挂机。这里需要注意的是,会话是有时限的,比如在相亲对象不变的前提下,你可以说我们谈得投机,一天一夜没合眼,但是总有停止的时候,网络会话中为了表示会话的时效性,有个会话生存期,超过这个时间咱们此次会话到此结束,想要再谈,ok,重新建立会话即可。
因为在前面《征求意见》一文中,有人提到说希望讲下网页游戏辅助工具的编写,所以这里捎带讲了些,其实后面的网络教程里面如果对于网游的封包修改学会后,这个很容易上手的。分析请求数据的需要工具:
1、火狐+插件[Live Http headers+Flash down];
2、Http Debuger;
3、抓包工具;
4、swf反编译工具。
可以下载看雪的加密与解密工具新年大礼包,里面也有分析工具,如Http Debuger、swf反编译工具等。

受益匪浅的一个blog 谢谢作者