文档章节

Flash网页游戏辅助工具制作简析

simpower
 simpower
发布于 2015/01/15 09:12
字数 960
阅读 231
收藏 5

《热血三国》好像是比较热,玩的人也挺多的,年前一个朋友希望能让我写一个这个游戏的外挂,也出于无聊,所以去玩了一下,谁知道一玩就有点喜欢这个游戏了,当然玩归玩,东西还是要做地,当然还不能算得上是外挂,最多算是一个辅助工具。

三国,是一个全FLASH制作的网页游戏,使用Flex做架构,使用AMF协议做数据通讯。

首先针对一款FLASH网页游戏大家需要了解他的AMF协议调用模式,就三国而言,服务器返回的消息全为AMF0格式,客户端向服务器提交的是AMF3的格式。

刚开始分析这款游戏的时候想着自己建一个AMF协议解析器,但由于做出来的功能局限性比较大时间仓促,因此从网上找到了FluorineFx开源组件,要做好一款功能强大的网页游戏工具我自己觉得应该做到功能脱机,要能在工具中独立完成各种功能调用,做全点就相当于为游戏的客户端。

但做之前最头痛的问题就是分析协议调用参数及返回参数结构,在做这个工具前我对Flash Flex是一无所知,对AS的编写还只是停留在Flash 5的程度上并且已是近十年未用了。。。

为了方便使用了以下几种工具

SWFDecompiler的SWF文件反编译工具

Notepad++文本编辑工具,主要用来整个目录查找指定文本(用WINDOWS的查找功能太让人失望了)

科来网络分析系统,用来获取网络通讯数据

SocketSniff,相对科来系统更轻量级的网络监听工具,对于了解基本通讯流程更为方便

以上几种是通过网络能找到的实用工具,再加一自己做的一个AMF协议半自动分析器,主要功能是解析HEX DATA的AMF协议,及跟踪游戏AMF协议通讯过程,并简单解析体现,为更进一步分析调用过程提供参考。

一个AMF通讯过程的分析:

1.打开网页游戏,并在你需要获取命令的功能前停止操作

2.打开网络嗅探器,并执行嗅探,在此过程中最好能按IP、端口进行过滤

3.执行所需要的命令,并等待命令执行返回

4.停止网络嗅探

5.去除无关网络通讯数据,AMF协议下必定会有一个业务处理的gateway,像三国的地址为:/server/amfphp/gateway.php,并且HTTP头部的内容格式为application/x-amf,因此只需要过滤相关gateway的通讯对话就可以

6.获得通讯的HTTP数据体,并交分析工具进行协议解析

7.查看协议参数结构,并偿试重构协议复本

8.偿试将协议复本发送至服务器(请求协议)

9.调试服务器反馈数据,调试完成后即为游戏的实际AMF协议函数

在三国中,使用三种Flex消息:CommandMessage、RemotingMessage、AcknowledgeMessage

CommandMessage在游戏登录前向服务器发送请求,并返回session等安全信息

RemotingMessage为客户端向服务器提交的消息格式

AcknowledgeMessage服务器向客户端反馈的消息格式

目前工具的游戏界面

登录后主界面(可分脱机跟非脱机登录,下面为非脱机登录,其实只不过显示了一个游戏界面而已,里面的处理都是按脱机模式处理)

游戏辅助信息

地图查询工具


本文转载自:http://www.cnblogs.com/pvistely/archive/2009/02/18/1392842.html

simpower
粉丝 26
博文 611
码字总数 45556
作品 0
海淀
程序员
私信 提问
【成都】某游戏公司诚意招聘PHP开发人员

工作地点:成都天府软件园E区(财智立方) 简历投递:jobs@youkia.com 联系QQ:2426102136 ============================================================= 页游AS3程序员 6人 薪资范围:4...

Youkia
2012/04/19
475
4
Flash 死局已定,有人很伤心

当 HTML5 问世之后,距离实现 Flash 被淘汰的预言又迈近了一大步,尽管 Adobe 在尽可能地通过更新和维护来提升 Flash 的实用性和兼容 性,不过江河日下的处境依旧不改,然而从今年7月开始,M...

oschina
2015/10/01
7.5K
44
Adobe发布HTML5网页动画工具Adobe Edge

来自36氪的报道,Adobe刚刚发布了一个新的工具{Adobe Edge},允许设计师通过HTML5、CSS和JavaScript制作网页动画。无需Flash。 Adboe Edge的目的是帮助专业设计师制作网页动画乃至简单游戏。...

小卒过河
2011/08/03
1K
10
我们一起来游戏 (一)——(AS3零基础做AIR卡牌网游)

庆祝一下大鸡蛋他们乔迁新址,特发此系列。帮助喜欢游戏,又有兴趣自己做游戏,但不知道从何下手的童鞋们。高手们如果发现问题,请及时指出,避免误人子弟。先谢谢大家。   废话不多说了,...

jiumiao
2013/10/29
733
0
开发者视角论述HTML5平台的7大特点

乍看之下,HTML5似乎给在线和手机游戏开发者带来颇多益处。这是个纯网页平台,游戏开发者能够基于HTML5制作自己的游戏,然后在任何兼容设备发行内容,从手机到PC平台。但这是否真的这么简单?...

红薯
2012/01/12
4K
7

没有更多内容

加载失败,请刷新页面

加载更多

【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)

文字检测是文字识别过程中的一个非常重要的环节,文字检测的主要目标是将图片中的文字区域位置检测出来,以便于进行后面的文字识别,只有找到了文本所在区域,才能对其内容进行识别。 文字检...

雪饼
今天
15
0
思维导图XMind 8 Pro 绿化方法(附序列号)

按部就班: Step 1 -全新下载最新版本的 Xmind 8(注必须是英文官方的版本,中文代{过}{滤}理网站的版本修改过,无法使用pj); Step 2 -安装完毕后,点击文末的下载按钮下载pj补丁文件包,将...

一只小青蛙
今天
10
0
数据结构(ER数据库)设计规范

表命名规范 表命名的规则分为3个层级,层级之间通过_分割,例如b_r_identity、d_l_identity。规约为: [leavel]_[type]_[name] [leavel] 表示数据库表的层级和功能,分为: s:业务无关的系统...

随风溜达的向日葵
今天
10
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
14
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部