逆向工程AMF

时间:2011-08-09 07:23:44

标签: flash amf

我被要求抓取一个Flash网站,该网站似乎正在通过AMF协议使用某种服务器端呼叫。我完全不熟悉这个协议,但找到了这个库(http://www.pyamf.org/index.html)。

我可以查看发送到服务器的有效负载以及响应。我可以找出某些关键元素,但总体上不了解请求或响应。​​

我认为图书馆会以某种方式提供帮助,但我不确定从哪里开始。有人知道反向工程AMF电话的资源或技术,还是有人可以解释为什么不可能?

2 个答案:

答案 0 :(得分:7)

作为构建了可以解析AMF(RocketAMF)的库的人,我建议你使用现有的库之一而不是编写自己的库。下面是按语言分析AMF的一些库的列表,还有更多的简单搜索:

至于理解AMF通常如何工作,它是一个带有远程过程调用(RPC)层的对象序列化格式。所有RPC调用都由服务名称和调用该服务的方法以及参数列表组成。如果他们使用Flex,那么除了Adobe的开源AMF实现BlazeDS之外,RPC进程还有一些其他层没有记录,但是所有上述库都支持这些层。

您可能还想查看Charles,它能够反序列化通过它代理的AMF请求,使逆向工程更容易。

答案 1 :(得分:4)

AMF协议的文档已发布。

您可以在http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf

找到AMF 3规范的副本

AMF 0协议是该协议的旧版本,其规格可在以下网址获得:http://opensource.adobe.com/wiki/download/attachments/1114283/amf0_spec_121207.pdf

这是一个很长的阅读,但如果你引用实现它的许多库中的一些库的代码,你应该能够得到它。

http://osflash.org/documentation/amf

上还有一个很好的协议参考列表