从未知的八位字节流格式中提取关卡数据

问题描述 投票:0回答:1

概述:

我想尝试从Happy Wheels中提取关卡数据,他们的API都是开放的,可以提取数据。我可以提取关卡列表中显示的数据以及每个单独的关卡 ID(它以 XML 形式返回所有内容),但是当我尝试提取关卡数据本身(障碍物、枪支等)时,它会以八位字节流进行响应。我拉出的所有线程都告诉我将其读取为十六进制,我已经这样做了,但我不知道从这里去哪里。

问题:

发布

https://totaljerkface.com/get_level.hw?level_id=1786343&action=get_record&ip_tracking=53445

Happy Wheels 游戏想要加载新关卡但以未知格式返回时会调用该 API。 我的最终目标是获得 json 或 xml 格式的关卡结构数据,以便我可以通过代码读取它。

其他发现:

我调试此问题的方法是,在浏览应用程序时查看浏览器中的“网络”选项卡,对于任何相关级别,它总是使用

/get_level.hw
和各种参数来确定操作。

此外,当您创建关卡时,您可以通过 UI 获取原始 levelXml,但经过一番修补后,我仍然没有找到一种方法将其应用于其他用户创建的关卡,只有我自己的关卡,而不是通过 API,因为它仍然使用相同的

get_level.hw 
API 具有相同的响应来收集信息。但这是个好消息,因为这意味着所需的所有数据实际上都在该响应中,只是不知道如何解码它,或者即使这是可能的。

问题:

是否可以将 get_level.hw 的响应转换为更具可读性的内容? 我相信最终格式应该是here所描述的。

它似乎正在某个地方的 javascript 中被解码,但遗憾的是源映射文件未包含在内,而且我在 github 上找不到任何地方有人发布解码的源代码。

提前致谢!

使用十六进制查看器时,API 的响应如下所示。

hex output of api response

javascript hex octet-stream
1个回答
0
投票

这个答案照亮了八位字节流,除了

Content-Type
之外,您至少需要
Content-Disposition
来获得如何处理数据的进一步提示。
某些文件(如 PDF 或图像)的十六进制代码在开头或结尾处具有典型的签名,如果可用的话这也可能有所帮助,但看起来数据不包含签名。
因此,本质上您必须了解使用数据的格式或应用程序,并找出应用程序如何处理数据。如果游戏的源代码可用,您可以验证这一点。

© www.soinside.com 2019 - 2024. All rights reserved.