2

私はByteArrayだと思うものを持っています。文字列で使用urlencodeすると、このデータが得られます...

%0A%82%03%01%11SaleDate%0DToYear%0DYardId%15BuyNowOnly%0BState%0BModel%0FStockId%11FromYear%11FullText%13Inventory%11Category%09Make%0FOrderBy%1DOrderDirection%0FPageNum%11PageSize%01%01%06%05-1%02%06%01%01%01%01%06%0F1024187%06%09Sale%01%01%06%13RunNumber%06%07Asc%04%01%04d

PHP関数の unpack を見て、unpack('c4char/Xstr/...')X が a、A、h、H の場合、「SaleDate」文字列を引き出そうとしていますが、うまくいきません。

おそらく完全に間違ったアプローチです。なんらかのカスタム アンパッカーを作成する必要がありますか?

ここで何を扱っているのかもわかりません。フラッシュファイルからの出力なので、Amfの「ByteArray」だと思いますが、解析方法がわかりません。

このようなものを操作/解析/再構築する方法を探し始める方向だけでも探しています。最終的には、関数を使用して実行し、連想配列を取得し、いくつかの値を変更し、再パックして、楽しい方法で送信できるようにしたいと考えています。

AMF3だと思いますが、これがメッセージ部分のデータです。

「主な」質問が 1 つあるとしたら、そのデータの文字列を簡単かつ安全に操作するにはどうすればよいでしょうか。

リードをありがとう。

4

2 に答える 2

1

オープンソースの AMF デシリアライザーはたくさんありますが、AMF3 はかなり単純ですが、簡単にするために、ここで自分で展開しない方がよいでしょう。

有望に見えるgithubでこのリンクに出くわしました:

https://github.com/silexlabs/amfphp-2.0

おそらくフレームワーク全体をロールしたくないでしょうが、おそらくこれをロールすることができます:

/core/amf/Deserializer.php

/core/amf/Serializer.php

于 2012-06-29T20:48:26.687 に答える
0

私が知る限り、これはベンダー固有の独自のエンコード方法のようです。「バイト配列」を使用して、ペイロードの柔軟性を高めます。エンコーディングおよびデコーディング アルゴリズムを完全にリバース エンジニアリングしない限り、これを処理する簡単な方法はありません。

于 2012-07-10T22:28:30.300 に答える