最新消息:20181230 VPS服务器已从Linode换到腾讯云香港,主题仍用朋友推荐的大前端D8

【已解决】无法捕获从Flash控件中生成的POST数据+【未解决】解析amf格式的数据

Crawl_EmulateLogin crifan 3025浏览 0评论

【问题】

折腾这个的时候,先后操作是:

http://www.cadastur.turismo.gov.br/cadastur/PesquisarEmpresas.mtur -> "Guia de Turismo" -> "Pesquisar" -> 获得9440个搜索到的数据

结果用IE9和Firefox,结果都无法完美的获得对应的POST数据,即:

  • IE9的F12:
    • ie9 f12 post 336
    • data can not be rendered
  • Firefox的FireBug:
    • firefox firebug post 336
    • firefox firebug post 336 messy data

对应的,使用:

Chrome的Ctrl+Shift+I

倒是可以获得对应的,貌似是完美的POST数据:

chrome ctrl shit i post data ok

 

对应的问题来了。

即使是从Chrome中,捕获的,看似完美的POST数据,但是由于其是由网页中的Flash控件所生成的POST数据,

此处即为:

null/6< Oflex.messaging.messages.RemotingMessageoperation sourcetimeToLivedestinationtimestampheaders bodymessageIdclientId!recuperarListaUfservicoUf DSIdIC7ED0E1D-FD1E-0178-2077-76E660ACE7AFDSEndpointcadastur-amf I9230816E-7762-D3A5-AECE-F0D040F419E5IC7ED12F3-C82F-39BC-7730-108173470080

其看似,也基本上是没有规律的,也无法找到内在规律,无法写程序去模拟生成此数据。

【解决过程】

1.目前貌似真的没有好办法,无法写程序模拟生成此POST数据。

2.另外还注意到了,从Chrome中拷贝粘贴出来的数据,放到Notepad++,其可以显示控制字符,效果是这样的:

post data contain many ctrl chars

即,POST数据中,还包含很多控制字符的。

所以,对于写程序模拟来说,更增加了难度了。

3.看到这里:

Data capture from flash application

的解释,其提到了,需要用到WinCap之类的网络分析软件。此处好像即使捕获了,估计结果也还是和Chrome中分析出来的一样。

现在的难点是,即使通过Chrome等工具捕获了post数据,但是还是不知道其数据的规律,无法写程序模拟生成该数据。

4.后来搜:

application/x-amf

而找到:

application/x-amf数据如何解密

提到了可以用charles解密x-amf。

5.搜

decode x-amf

而找到:

Reverse Engineering AMF

得知了:

PyAMF – AMF for Python

6.

另外,关于解码amf,有空也可以参考:

[AMF packet] Decoding AMF binary data

7.从:

Parsing X-amf mime type data

得到更多有效信息,可以用:

  • Firefox+Firebug+Flashbug

  • Charles proxy

  • python + pyamf

  • Java AMF client that comes with BlazeDS

  • 8.先去试试Flashbug

    https://addons.mozilla.org/zh-cn/firefox/addon/flashbug/

    再去找FlashFirebug

    https://addons.mozilla.org/zh-cn/firefox/addon/flashfirebug/

    然后启用后发现还需要下载最新版的Flash Player调试版:

    download latest flash player debugger

    所以去

    http://www.adobe.com/support/flashplayer/downloads.html

    下载到:

    都安装后,再去使用Firefox的Firebug。

    结果是可以通过其查看当前检测出来的flash的:

    use flash bug to debug

    但是很悲催的是,Firebug中捕获的Post数据,还是无法自动解码。

    9.后来,貌似找到一点点眉目。

    open amf in new window

    然后会打开对应地址:

    www.cadastur.turismo.gov.br/cadastur/messagebroker/amf

    然后会让你保存文件:amf

    打开下载下来的amf文件,是:

    onStatus amf

    很明显,不是对应的,从Chrome中拷贝出来的:

    amf 7 from chrome

    所以,还是搞错了。

    10.貌似还只能是从Chrome中拷贝此amf数据出来,然后想办法,看看能否通过PyAMF去解码。

    转载请注明:在路上 » 【已解决】无法捕获从Flash控件中生成的POST数据+【未解决】解析amf格式的数据

    发表我的评论
    取消评论

    表情

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址

    网友最新评论 (5)

    1. 请问你解决了吗?我也遇到这样的问题,我是想在单位的flash网页里面自动填写表单。想了很多办法,最终还要post,但是发现是乱码,用火狐插件,能看到amf的发送和响应的数据,但是我看你本篇的抓图,火狐插件得到的amf文件,却没有amf发送和amf响应文件之类的东西,是不是你的插件版本过低?还有就是如果我得到了amf的详细文件,就可以控制了吗?谢谢。
      mh3年前 (2015-12-27)回复
    2. 【未解决】解析amf格式的数据: 这个可以通过Charles来解析
      imagecad3年前 (2015-10-31)回复
    3. 额,再扯些 PHP有个PHPAMF的框架来处理AMF数据,有兴趣的同学可以看看。
      keen5年前 (2014-02-17)回复
    4. 也是卡在如果模拟POST的问题上。 其实可以直接用fiddler捕获,不用装那些麻烦的东东。 fiddler捕获的数据根本无法直接使用,如果用PHP去模拟生成AMF数据呢?
      keen5年前 (2014-02-13)回复
      • 没试过,你可以自己去试试啊。
        crifan5年前 (2014-02-17)回复
    66 queries in 0.109 seconds, using 10.21MB memory