`
shake863
  • 浏览: 639887 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Amf数据分析

    博客分类:
  • AS
阅读更多

从 【as3 game】小宝游戏 作者:83392943@QQ.com(c)

前段时间分析了一个网页游戏,美术风格类似梦幻西游,是外包的。分析代码得知,客户端资源做了一些特殊处理,是用通过netconnection发过来的 decode的swf来解资源,本地是无缓存,存在内存中,自己如果用模拟的客户端去连服务器, 接受的是只是一个zip压缩的png文件,wpe抓包如下:

看来做了域限制!用原客户端连服务器发的才是真实的decode的swf,一时找不到很好的内存读取工具,.只得用wpe抓包去分析amf3数据了,数据封包图如下:

现RTMP协议,amf0~3数据格式已开源,不难看出找个核心的数据包:

数据包协议头12字节
03表示12字节头,channelid=3,这个是Invoke通道,NetConnection.Call() 是用的找个通道,调用的方法在下面。
00 00 00表示时间戳 Timmer=0
00 31 D9表示数据大小 AMFSize=12761
14表示数据包类型 AMFType=Invoke 方法调用
00 00 00 00 表示StreamID = 0 音视频流的ID
AMF数据
02表示String
0008表示String长度8
6F 6E 42 57 44 6F 6E 65  是String的值onBWDone
00表示Double
40 00 00 00 00 00 00 00 表示double的
05表示 null
0a表示 ARRAY
00 00 05 87 数组长度1415
之后的就是数组里的数据,就是decode的swf数据文件.但这个只是amf序列化字节,还要转化,下面以如何得到arr[0]的值为例分析:
00 表示Double
40 5e 00 00 00 00 00 00 是表示在网络中的字节循序的(符号位在低存储)8字节的IEEE-754双精度浮点数,
那么读的时候就到过来,00 00 00 00 00 00 5e 40。java转换代码如下:
public static void main(String[] args) {
  byte[] b = new byte[8];
  b[0] = 0x00;
  b[1] = 0x00;
  b[2] = 0x00;
  b[3] = 0x00;
  b[4] = 0x00;
  b[5] = 0x00;
  b[6] = 0x5e;
  b[7] = 0x40;
  System.out.println(byteToDouble(b));
}
//bye转double
public static double byteToDouble(byte[] b){
     long l;
     l=b[0];
     l&=0xff;
     l|=((long)b[1]<<8);
     l&=0xffff;
     l|=((long)b[2]<<16);
     l&=0xffffff;
     l|=((long)b[3]<<24);
     l&=0xffffffff;
     l|=((long)b[4]<<32);
     l&=0xffffffffffl;
     l|=((long)b[5]<<40);
     l&=0xffffffffffffl;
     l|=((long)b[6]<<48);
     l|=((long)b[7]<<56);
     return Double.longBitsToDouble(l);
   }

//当然用这个方法也可以验证一下数据
public static byte[] doubleToByte(double d){
     byte[] b=new byte[8];
     long l=Double.doubleToLongBits(d);
     for(int i=0;i<b.length;i++){
       b[i]=new Long(l).byteValue();
       l=l>>8;
     }
     return b;
  }

如此读1415个double数,得到一个byte[]转为bytearray,uncompress之,得到可以解文件的swf .
注意后续的字节,分了很多个包,用wpe封包后,凑一个完整的包,再读!


资料
Amf数据格式
RTMP协议
分享到:
评论

相关推荐

    AMF数据分析器

    用于分析AMF数据分析的工具,使用简单方便,帮助提高AMF分析效率

    PKG解析amf数据分析器_v30.exe

    PKG解析amf数据分析器_v30,可一键读取PKG,解密PKG内容

    AMF数据分析器_V22

    功能: 支持AS3的ByteArray序列化对象的AMF格式编码、解码( readObject、writeObject )。 支持AS3的ByteArray的compress、uncompress压缩算法:...为方便想了解AMF格式及封包的坛友分析解码AMF数据资料使用。

    AMF数据分析器_V22.EXE

    大话自制端 PKG解包工具

    AMF数据分析器_V22.exe

    AMF数据分析器_V22.exe

    易语言amf解析构造

    易语言amf解析构造源码,amf解析构造,分析amf,取短整数_字节集,时间到双精度,到时间_双精度,取整数_字节集,integer_字节集,取双精度_字节集,amf3型数据,十六进制转字节集,分析数据段,解析amf数据,解析amf3数据,Utf8转...

    AMF手把手教程

    AMF类网页游戏的分析,用于数据抓包等 。AMF手把手教程。分析网页游戏的第一步。

    商品数据分析.pptx

    商品数据分析 商品数据分析全文共29页,当前为第1页。 商品分析的主要数据来自销售数据和商品基础数据,从而产生以分析结构为主线的分析思路。主要分析数据有商品的类别结构、品牌结构、价格结构、毛利结构、结算...

    大话PKG解包工具

    功能: 支持AS3的ByteArray序列化对象的AMF格式编码、解码( readObject、writeObject )。 支持AS3的ByteArray的compress、uncompress压缩算法:...为方便想了解AMF格式及封包的坛友分析解码AMF数据资料使用。

    淘宝数据抓取 初学者适用

    request.ContentType = "application/x-amf"; request.Headers[HttpRequestHeader.CacheControl] = "no-cache"; using (var stream = GetResponseStream(request)) { using (var newStream = new ...

    基于自适应中值滤波的大图像数据去噪算法-研究论文

    在这项工作中,开发并评估一种用于噪声消除的新型自适应中值滤波器(AMF),该滤波器致力于在产生高噪声水平时提高图像质量的一致且精通的模型。... 结果分析表明,所提出的AMF算法对于图像数据集是可靠的。

    Charles好用的抓包工具.zip

    可以截取分析SSL的请求。 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息...

    charles4.2.1破解版

    可以截取分析SSL的请求。 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息...

    Charles(mac)4.2.1破解版

    可以自动将json或xml数据格式化,方便查看。 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。 支持重发网络请求,方便后端调试。 支持修改网络请求参数。 检查HTML,CSS和RSS内容...

    Charles证书

    可以截取分析SSL的请求。 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息...

    3GPP-23501-g10(中文版).pdf

    4.2.9 网络分析架构 50 4.2.10 ATSSS 支持的架构参考模型 51 4.3 与 EPC 的互通 52 4.3.1 非漫游架构 52 4.3.2 漫游架构 53 4.3.3 5GC 通过非 3GPP 接入与 E-UTRAN 连接到 EPC 55 之间的互通 4.3.3.1 非漫游架构 55 ...

    Charles-proxy

    可以截取分析SSL的请求。 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息...

    5G行业专网题库答案.xlsx

    AMF,NG-U C. MF,NG-C D. UPF,NG-U 3、 3GPP关于5GC标准的进展,第一阶段完成的时间点是? A. 2017年Q4 B. 2019年Q4 C. 2018年Q2 D. 2017年Q1 4、 以下关于MPLS和LDP描述不正确的是? A. 在DU方式下,无需上有...

    Http Analyzer Full V 7.0(最新版本含注册机)

    一款实时分析 HTTP/HTTPS 数据流的工具。它可以实时捕捉HTTP/HTTPS 协议数据,可以显示许多信息(包括:文件头、内容、Cookie、查询字符窜、提交的数据、重定向的URL地址),可以提供缓冲区信息、清理对话内容、HTTP...

    ThinkPHP 3.1.2 - PHP的开发框架MVC - 含Core,Extend,Example

    只是小小的性能牺牲就能满足调试开发过程中的日志和分析需要,并确保将来的 部署顺利,一旦切换到部署模式则可以迅速提升性能。 ORM :简洁轻巧的ORM实现,配合简单的CURD以及AR模式,让开发效率无处不在。 数据库...

Global site tag (gtag.js) - Google Analytics