您好,欢迎访问三七文档
AMF手动解析教程易语言的AMF资料很少,所以弄个教程,GBB113的支持库要2000RMB,是用不到了有的FLASH页游通信用AMF所以要自己解析了再编码发出去一、AMF解析工具1.CharlesProxy3.5.2这是最新版,百度有XX版需要先安装java运行环境在WIN7下用不了下载地址:不XX也行,就是打开的时候要等10秒,还有时间限制安装方法,解压完打开charles_setup.exe安装完-打开crack目录下的patcher.jar(不是用WINRAR解压)-选目录比如安装在C盘C:\ProgramFiles\Charles\lib下的Charles.jar-点击.patch!XX完毕打开Charles.exe菜单栏的Help里注册,随便写就行2Firefox下的扩展firebug+AMFExplorer建议下载3.6版火狐,4.0版本扩展可能不兼容先到下载两个扩展firebug和AMFExplorer3HttpAnalyzerV5以上的才有AMF解析百度找下载地址吧,4Httpwatch也能抓包,但是没有解析百度找httpwatch7.0.23有汉化版和XX觉得charles最好用,还有一款AMF解析工具,名字忘记了,不好用二.AMF发送数据我试过了WinHttpRequest类和XMLHTTP类都不能发送AMF数据因为发送不了字节集只能用访问网页模块的那种和客户组件访问网页模块里的提交数据要改成字节集AMF里发送的都是AMF3的数据,接收的是AMF0数据源码里已经有Integer、String、Number编码Number就是易语言里的双精度小数型顺序相反AMF数据里还有逻辑性什么的,没去研究,因为我没用到AMF里发送数据全部是用POST的,POST地址只有一个,提交不同数据只需要改提交数据三.关于AMF资料地址AMF3整型分析在8楼10楼这里的AMF学习1数据类型[转]和AMF学习2远程调用的封装[转]梦飞鸟博客里面有明朝时代的源码=25百度文库的AMF3协议中文版,我也看不懂,太复杂了再说明下,易论坛搜索AMF里的=213110&keyword=amf这帖子其实就是梦飞鸟博客里的明朝时代源码不用去下载SWF反编译的东西,就算反编译出来里面的代码也看不懂,除非会AS的四.现在开始手动分析AMF数据登陆的部分看源码吧,很简单AMF数据类型有获得POST数据的方法,现在弄获取人物数据的数据我已经抓好了易语言里字节集数据为{0,3,0,0,0,1,0,16,115,95,105,110,116,101,114,102,97,99,101,46,99,97,108,108,0,3,47,49,55,0,0,0,82,10,0,0,0,1,17,9,5,1,9,5,1,6,57,115,95,109,101,115,115,97,103,101,46,109,101,115,115,97,103,101,95,108,105,115,116,95,112,97,103,101,114,9,5,1,4,6,4,1,9,3,1,6,57,115,95,112,108,97,121,101,114,95,105,110,102,111,109,97,116,105,111,110,46,103,101,116,95,105,110,102,111}十六进制为0003000000010010735f696e746572666163652e63616c6c00032f3137000000520a00000001110905010905010639735f6d6573736167652e6d6573736167655f6c6973745f7061676572090501040604010903010639735f706c617965725f696e666f6d6174696f6e2e6765745f696e666f0003为AMF3版本0000Header个数0个0001AMF主体有1个0010文本长度为16字节十六进制0010转10进制为1673-6C文本内容0003文本长度3字节2f-37文本内容00000052不知道是什么,不过没什么用的0A传入了一个变量,应该是数组00000001内容为1个字节到了s_message.messag,前面2字节是表示长度再前面的06表示文本型04是表示整型这些知道就可以,实际应用用不到拿这个来说这个是页游里移动到X坐标360Y坐标156的POST数据比如我想移动到350156那么先把请求头的数据保存到文件,用十六进制工具查看上图中8268是360不是350写错了我的生成POST数据方法是这样的:用HttpWatch中的数据导出功能或者charles选中数据,右键SaveRequest保存为文件,,导出发送包的数据,然后用十六进制编辑器删去协议头数据,留下POST信息,然后在图片资源里面,选择扩展名为*.*,然后就可以看到导出的文件了,然后打开之,命名,OK制作完成!也可以在易语言资源表-图片或图片组里添加这个文件,调试输出POST数据为{0,3,0,0,0,1,0,16,115,95,105,110,116,101,114,102,97,99,101,46,99,97,108,108,0,3,47,52,50,0,0,0,44,10,0,0,0,1,17,9,3,1,9,5,1,6,39,115,95,109,97,112,122,111,110,103,95,116,97,115,107,46,119,97,108,107,9,7,1,4,130,104,4,129,28,4,1}这里和十六进制工具里对比是差不多的看最后面这4,130,104,4,129,28,4,14为04整型130104为36004整型12928为15604整型1是1现在要把360改成350再发出去{0,3,0,0,0,1,0,16,115,95,105,110,116,101,114,102,97,99,101,46,99,97,108,108,0,3,47,52,50,0,0,0,44,10,0,0,0,1,17,9,3,1,9,5,1,6,39,115,95,109,97,112,122,111,110,103,95,116,97,115,107,46,119,97,108,107,9,7,1,4,130,104,4,129,28,4,1}把红字的拿掉再用Integer编码(350)组合完为:{0,3,0,0,0,1,0,16,115,95,105,110,116,101,114,102,97,99,101,46,99,97,108,108,0,3,47,52,50,0,0,0,44,10,0,0,0,1,17,9,3,1,9,5,1,6,39,115,95,109,97,112,122,111,110,103,95,116,97,115,107,46,119,97,108,107,9,7,1,4}+Integer编码(350)+{4,129,28,4,1}访问网页(POST地址,POST,,,,,上面的数据)整型解码方法AMF3整型编码为:81eb7d将81eb7d转为二进制,是24位:100000011110101101111101去掉最高位,剩下21位:000000111010111111101转10进制为30205AMF3文本型编码为:就是ascii十六进制对应的AMF3Number编码为:[此帖被olivia在2011-04-2403:28重新编辑]描述:源码附件:xdfz.e(104K)下载次数:33
本文标题:解析AMF协议
链接地址:https://www.777doc.com/doc-2096669 .html