2011-08-09 156 views
3

我被要求抓取一個flash網站,該網站似乎正在通過AMF協議使用某種服務器端調用。我完全不熟悉這個協議,但發現這個庫(http://www.pyamf.org/index.html)。反向工程AMF

我可以查看發送到服務器的有效負載以及響應。我可以確定某些關鍵要素,但總體上不理解請求或響應。

我認爲圖書館會有所幫助,但我不確定從哪裏開始。是否有人知道用於反向設計AMF調用的資源或技術,或者有人可以解釋爲什麼不可能?

+0

AMF本身是一個二進制Flash文件。調用本身返回一個AMF文件,不是嗎? – bzlm

+0

AMF是Actionscript消息格式,是向Flash發送數據的協議。它本身不是一個Flash文件。 –

回答

7

正如有人誰已建成,可以解析AMF(RocketAMF)圖書館,我會建議你使用,而不是現有的圖書館之一寫你自己的。以下是通過語言的一些庫AMF解析的列表,還有更多的一個簡單的搜索遠:

至於理解AMF通常如何工作,它是一個帶有遠程過程調用(RPC)層的對象序列化格式。所有RPC調用都由服務名稱和調用該服務的方法以及參數列表組成。如果他們使用Flex,那麼除了Adobe的開源AMF實現BlazeDS之外,還有一些額外的RPC層進程沒有記錄,但是上述所有庫都支持。

您可能還想看看Charles,它能夠對通過它代理的AMF請求進行反序列化,從而使逆向工程變得更容易一些。

4

AMF協議的文檔已發佈。

你可以找到在AMF 3規範的副本:http://opensource.adobe.com/wiki/download/attachments/1114283/amf3_spec_05_05_08.pdf

的AMF 0協議,這是該協議的舊版本,有它的可用規範的:http://opensource.adobe.com/wiki/download/attachments/1114283/amf0_spec_121207.pdf

這是一個非常長時間閱讀,但如果你參考了一些實現它的庫的代碼,你應該能夠得到它。

還有一個在該協議引用的一個很好的列表:http://osflash.org/documentation/amf