博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flash网页游戏辅助工具制作简析
阅读量:6159 次
发布时间:2019-06-21

本文共 1358 字,大约阅读时间需要 4 分钟。

hot3.png

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

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

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

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

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

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

SWFDecompiler的SWF文件反编译工具

15091233_pyAr.png

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

15091233_pxNc.png

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

15091234_EFVc.png

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

15091234_ppTB.png

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

15091234_nXao.png

一个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服务器向客户端反馈的消息格式

目前工具的游戏界面

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

15091234_2uEQ.png

游戏辅助信息

15091236_r3OF.png

地图查询工具

15091236_H2sp.png

转载于:https://my.oschina.net/u/1777508/blog/367918

你可能感兴趣的文章
Maven编译时跳过Test
查看>>
Spring Boot 整合Spring Security 和Swagger2 遇到的问题小结
查看>>
Apache通过mod_php5支持PHP
查看>>
java学习:jdbc连接示例
查看>>
Silverlight 如何手动打包xap
查看>>
Javascript一些小细节
查看>>
禁用ViewState
查看>>
Android图片压缩(质量压缩和尺寸压缩)
查看>>
nilfs (a continuent snapshot file system) used with PostgreSQL
查看>>
【SICP练习】150 练习4.6
查看>>
HTTP缓存应用
查看>>
KubeEdge向左,K3S向右
查看>>
DTCC2013:基于网络监听数据库安全审计
查看>>
CCNA考试要点大搜集(二)
查看>>
ajax查询数据库时数据无法更新的问题
查看>>
Kickstart 无人职守安装,终于搞定了。
查看>>
linux开源万岁
查看>>
linux/CentOS6忘记root密码解决办法
查看>>
25个常用的Linux iptables规则
查看>>
集中管理系统--puppet
查看>>