找回密码
 加入
搜索
查看: 6469|回复: 10

[网络通信] [已解决]POST报文中使用了AMF该怎么处理

  [复制链接]
发表于 2010-10-15 00:15:21 | 显示全部楼层 |阅读模式
本帖最后由 左手猫头鹰 于 2010-10-15 23:47 编辑

要想一个系统发送消息,抓包发现POST Data用了AMF协议,AU3能处理这个吗
本来想直接填写16进制字符串进去,但是16进制的起始位“00”,好像被当成空串截断了,相当于没有填写这个内容
这个是AMF内容的截图

这个是16进制内容的截图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-10-15 00:17:28 | 显示全部楼层
想把报文贴出来的,但是发现POST Data那一段,因为“00”的十六进制编码,没有办法黏贴……
发表于 2010-10-15 07:42:37 | 显示全部楼层
本帖最后由 republican 于 2010-10-15 07:44 编辑

使用二进制传输,我的UDF支持Post二进制内容

如果给出Obj下的语法,我可以帮你改成UDF的格式。
 楼主| 发表于 2010-10-15 08:22:35 | 显示全部楼层
语法还没有完全搞清楚,不过大概报文规则是这个样子的,我把拼装字符串的代码发出来
    ;按照抓包里面内容填的
        $strCatchFishStartLevelAMFHeader = _HexToString("0003000000010021")
        $strCatchFishStartLevelAMFBodyTarget = "amfService.catchFishStartLevelAMF"
        $strCatchFishStartLevelAMFBodyResponse = _HexToString("00022f") & "8"
        $strCatchFishStartLevelAMFBodyContent0 = _HexToString("0000001380a00000002020127") & _
            $bd_sig_session_key & $bd_sig_user & $bd_sig_portrait
        $strCatchFishStartLevelAMFBodyContent1 = _HexToString("004014000000000000")
        ;最后总的内容
        $strCatchFishStartLevelAMF = $strCatchFishStartLevelAMFHeader & _
            $strCatchFishStartLevelAMFBodyTarget & $strCatchFishStartLevelAMFBodyResponse & _
                $strCatchFishStartLevelAMFBodyContent0 & $strCatchFishStartLevelAMFBodyContent1
发表于 2010-10-15 08:29:47 | 显示全部楼层
回复 4# 左手猫头鹰

我觉得你应该用Binary.
 楼主| 发表于 2010-10-15 09:08:08 | 显示全部楼层
感觉不行,_HexToString("0003000000010021")中数字已经是看到的ASCII码了

用Binary的结果打到文件里面,却0x0003000000010021amfService.catchFishStartLevelAMF,跟我想要的不一样
 楼主| 发表于 2010-10-15 23:24:37 | 显示全部楼层
现在成功了,谢谢republican的启发
发现一个系统转换规则,Binary返回的是一个二进制的内存,例如“373839”,对应的内容为“789”的字符串,但是与其他字符串拼接后,就直接变成了“373839”的字符串了。
然后换了一种思考方式,把内容都换成16进制字符串拼装,再最后统一用一次Binary就可了
 楼主| 发表于 2010-10-15 23:25:48 | 显示全部楼层
简单附一下源码,给以后有需要的人用
        $strCatchFishStartLevelAMFHeader = "0003000000010021"
        $strCatchFishStartLevelAMFBodyTarget = _StringToHex("amfService.catchFishStartLevelAMF")
        ;最后总的内容
        $strCatchFishStartLevelAMF = "0x" & $strCatchFishStartLevelAMFHeader 
                
        ;发送消息
        $oHTTP.Send(Binary($strCatchFishStartLevelAMF))
发表于 2010-10-15 23:49:40 | 显示全部楼层
不用说,这个暴强
发表于 2011-1-22 13:22:38 | 显示全部楼层
记录下 ,有需要
发表于 2013-6-28 23:58:58 | 显示全部楼层
做个记号,看下。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 16:22 , Processed in 0.095673 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表