`
shake863
  • 浏览: 664709 次
  • 性别: 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数据而设计的专业工具,旨在提升开发人员对AMF数据的理解和分析效率。 AMF数据分析器的核心功能包括: 1. **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抓取flex页面数据

    - 抓取AMF数据需要特殊工具,如Charles、Wireshark或Fiddler,它们能够解码AMF流量。这些工具可以拦截和查看Flex应用与服务器之间的通信,帮助我们理解数据交换的结构。 4. **模拟登录** - 在抓取Flex页面数据时...

    amf解析构造易语言源码

    解析AMF数据在处理与Adobe相关技术交互的应用中尤为重要,例如通过Flash或Flex与服务器进行数据通信的场景。 首先,你需要理解AMF数据结构。AMF数据由一系列键值对组成,每个键值对包含一个类型标识符和对应的值。...

    易语言amf解析构造

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

    amf解析,json解析 格式化

    在分析AMF数据包时,可能需要使用专门的工具,这些工具可以显示原始二进制数据,并将其转换为可读的JSON或其他文本格式。描述中提到的“amf解析工具”应该就是这样一个工具,它可以辅助开发者查看和理解AMF数据包的...

    AMF格式文件

    此外,AMF数据流也可以通过IDataInput和IDataOutput接口进行读取和写入,这些都是Flash Player的编程接口。 AMF格式文件的优点在于其序列化和反序列化的效率,它允许快速地在客户端和服务器之间传输复杂的数据结构...

    AMF协议源码

    AMF(Action Message Format)协议是Adobe公司开发的一种二进制数据序列化协议,主要用于Flash Player和服务器之间的数据通信。AMF提供了一种高效、快速的方式传输数据,它被广泛应用于Flex应用程序,允许客户端和...

    29518-g00_AMF_5G规范_5G_

    3. "TS29518_Namf_EventExposure.yaml" - 可能涉及AMF如何暴露事件信息,比如用于网络监控、故障检测或数据分析的事件通知机制。 4. "TS29518_Namf_Location.yaml" - 这部分可能涵盖了AMF在用户位置管理上的规范,如...

    AMF手把手教程

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

    RTMP协议中AMF的定义.pdf

    在RTMP协议中,AMF(Action Message Format)是一种用于编码和解码对象的数据格式,它被用来发送和接收所有的音频和视频数据。理解AMF的结构对于深入掌握RTMP通信至关重要。 #### 二、AMF结构概述 在RTMP握手完成后...

    flex与amf

    因为AMF数据是二进制格式,如果不采取措施,可能导致跨站请求伪造(CSRF)或数据篡改。因此,建议使用HTTPS加密传输,并结合服务器端验证来确保安全。 6. 案例分析:在"www.pudn.com.txt"和"easyamf"这两个文件中,...

    GLRT_AMF_ACE程序源码matlab

    在自适应检测领域,GLRT...通过分析和运行这些代码,用户不仅可以学习到这些算法的基本思想,还能评估它们在不同条件下的性能,并根据需求进行定制化修改。这为信号检测和通信系统的研发提供了宝贵的工具和参考。

    AMF移植代码

    在IT行业中,AMF(Action Message Format)是一种高效的数据交换格式,主要被Adobe Flex和Flash Player用于客户端与服务器之间的通信。AMF移植涉及到将使用AMF协议的应用程序从一个环境迁移到另一个环境,例如从一个...

    openamf-1.0.2

    4. 实时数据分析:OpenAMF可以处理大量的实时数据,适用于需要快速响应的Web应用程序。 五、OpenAMF的使用和扩展 OpenAMF的API设计简洁,易于集成到现有的Java应用中。开发者可以自定义消息处理逻辑,支持自定义...

    核心网5GC业务流程培训课件78页.ppt

    2 无线基站可以选择默认AMF,或者根据RAT+NSSAI选择一个AMF; 3 AMF基于IMSI信息选择一个AUSF,为用户执行接入认证; 4 一旦成功认证,AMF向UDM发起位置更新请求,这些信息可以存储在UDR中; 5 AMF从UDM获取用户...

Global site tag (gtag.js) - Google Analytics