网页中flash数据抓取(《热血三国》:使用AMF协议做数据通讯的网页游戏)
优采云 发布时间: 2021-09-28 22:22网页中flash数据抓取(《热血三国》:使用AMF协议做数据通讯的网页游戏)
《三国志》好像比较火,玩的人也不少。一年前,一个朋友要我为这个游戏写一个插件。也是因为无聊,所以就去玩了。谁知道我玩了之后有点喜欢。这个游戏当然是玩玩玩,还有待完善,当然不能算是外挂,顶多算是辅助工具。
三国志是一款完全由FLASH制作的网页游戏,以Flex为框架,采用AMF协议进行数据通信。
首先,对于一款FLASH网页游戏,大家需要了解它的AMF协议调用方式。就三国而言,服务器返回的消息都是AMF0格式的,客户端提交给服务器的则是AMF3格式。
刚开始分析这个游戏的时候,就想到了自己搭建一个AMF协议解析器。不过由于当时功能限制,我从网上找到了FluorineFx开源组件。我们必须做出一个强大的网页游戏。我觉得这个工具应该是离线的。如果可以在工具中独立调用各种功能,做任何事情就相当于游戏的客户端。
但是在做这个之前最麻烦的问题是分析协议调用参数和返回参数结构。在做这个工具之前,我对 Flash Flex 一无所知。AS的写法还在Flash 5的水平,快十了。多年未使用。. .
为了方便以下工具的使用
SWF Decompiler的SWF文件反编译工具
Notepad++文本编辑工具,主要用于在整个目录中查找指定文本(使用WINDOWS搜索功能太让人失望了)
Kolai网络分析系统,用于获取网络通讯数据
SocketSniff,比KELA系统更轻量级的网络监控工具,更方便了解基本通信流程
以上是可以通过网络找到的实用工具,加上我自己制作的一个AMF协议*敏*感*词**敏*感*词*。主要功能是分析HEX DATA的AMF协议,跟踪游戏AMF协议通信过程,简单分析反映。进一步分析调用过程以提供参考。
一个AMF通信过程分析:
1.需要获取命令的功能前打开网页游戏停止运行
2.打开网络嗅探器并进行嗅探。在这个过程中,最好按IP和端口过滤
3.执行需要的命令,等待命令执行返回
4.停止网络嗅探
5. 去除不相关的网络通信数据,必须有AMF协议下业务处理的网关,比如三国地址:/server/amfphp/gateway.php,以及HTTP头的内容格式是application/x-amf,所以只需要过滤网关相关的通信会话即可。