我被要求抓取一个flash网站,它似乎通过AMF协议使用了某种服务器端调用。我完全不熟悉这个协议,但是找到了这个库(http://www.pyamf.org/index.html)。
我可以查看发送到服务器的有效负载以及响应。我可以辨别出某些关键元素,但总体上不理解请求或响应。
我想这个库会有所帮助,但我不确定从哪里开始。有没有人知道对AMF调用进行逆向工程的资源或技术,或者有人能解释为什么这不太可能?
发布于 2011-08-10 03:10:44
作为一个构建了可以解析AMF (RocketAMF)的库的人,我建议您使用现有的库中的一个,而不是编写自己的库。下面是一些用于按语言进行AMF解析的库的列表,还有更多库,只需简单搜索即可:
PyAMF
:
至于理解AMF的一般工作原理,它是一种带有远程过程调用(RPC)层的对象序列化格式。所有RPC调用都由一个服务名称、一个在该服务上调用的方法以及一个参数列表组成。如果他们使用的是Flex,那么除了Adobe的开源AMF实现BlazeDS之外,RPC过程中还有一些额外的层没有文档记录,但上面所有的库都支持这些层。
您可能还想看看Charles,它能够对通过它代理的AMF请求进行反序列化,从而使逆向工程变得更容易一些。
发布于 2011-08-09 15:26:55
将发布AMF协议的文档。
您可以在以下网址找到AMF3规范的副本:http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf
AMF0协议是该协议的较旧版本,其规范可在以下位置获得:http://opensource.adobe.com/wiki/download/attachments/1114283/amf0_spec_121207.pdf
这是一个相当长的阅读,但如果您引用实现它的许多库中的一些代码,您应该能够获得它。
还提供了该协议的一个很好的参考列表:http://osflash.org/documentation/amf
https://stackoverflow.com/questions/6992718
复制相似问题