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('c4char/Xstr/...')X 是 a、A、h、H 以尝试将“SaleDate”字符串拉出,但我无法让它工作。

可能是完全错误的方法。我需要编写某种自定义解包器吗?

我什至不确定我在这里处理的是什么,它是闪存文件的输出,所以我认为它是一个 Amf“ByteArray”,但我不知道如何解析它。

甚至只是寻找一个方向来开始寻找如何操作/解析/重建这样的东西。最终,我希望能够通过一个函数运行它,获取一个关联数组,更改一些值,重新打包它,然后以快乐的方式发送它。

我认为它是AMF3,这是消息部分中的数据。

我想如果有一个“主要”问题,我该如何简单安全地操作那串数据?

感谢任何线索。

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 回答