英雄联盟中的 XMPP 俱乐部

逆向工程 协议 字符串 联网 嗅探
2021-06-29 00:05:53

希望我在正确的地方问这个。英雄联盟最近增加了加入俱乐部的选项。俱乐部仍然像以前一样在他们的公共聊天室中使用XMPP 协议公共房间的 XMPP

对于公共聊天室,您通过“lvl.pvp.net”服务器连接。

对于私人俱乐部的聊天室,服务器现在是“pgc.pvp.net”。

我的问题是我不知道如何找到连接到俱乐部的房间地址。俱乐部是私人房间。只有俱乐部成员才能在俱乐部中查看和聊天。与公共聊天室的地址只是:pu~"Channel name hashed and no大小写字母" 不同,俱乐部地址是一个 UUID,因此,与公共聊天室不同,不可能从俱乐部名称中找出房间地址.

Riot 可以让人们从外部应用程序连接到 XMPP 服务器,但他们没有提供一种简单的方法来查找俱乐部房间的 UUID。

我如何找到适合我的俱乐部的东西?

4个回答

有两种可能:

  1. 英雄联盟客户端使用嵌入式算法将俱乐部名称注入映射到俱乐部 UUID。
  2. 英雄联盟客户端将俱乐部名称发送到服务器并接收俱乐部 UUID 作为响应。

无论哪种方式,您都可以通过嗅探 XMPP 流量来查看英雄联盟客户端最终加入的 UUID 频道,正如@guntram-bloh 所建议的那样。

根据我在搜索聊天机器人时发现的情况,您将很难找到 UUID。使用旧的私人聊天室,您可以通过向房间发送邀请来获取 ID。但是现在,即使是俱乐部的邀请也由 Riot 的 rtmp 服务器处理(afaik 但肯定不是来自 xmpp),并且大多数连接到该服务器的客户端/libs/apis 在 2014 年 Riot 引入他们的 API 并计划时停止开发禁止用于此目的的帐户。

您可以尝试的一种选择是在客户端的日志中进行搜索。如果您在启动时将它们勾选为打开,至少公共聊天室会保存在一个文件中。我想念他们在 2011 年制作的所有内容的大量日志。它包括从聊天室名称到赛前/赛后聊天室名称等的所有内容。

如果您找到解决方案,我会对它感兴趣。

如果您使用 XMPP 连接到 LoL 聊天并从您的俱乐部获取某人的信息,您将看到:

<clubsData>hYmfLrVHS1lU6FAz2BLS4UrbAmcJpH2+HEIYl0rwSQT8m9e3VBMRYLDDNY8Zp4E/LlU8h+27BaWenG7FyL/5I/7yvhy/9CfHoo0rpDuPHs1LwPgHjlwAUUxtvdbGI84h8EU+F+JfYkX8ykl+PyDe89xRBRy7EkDofuDBvzbRVdk=</clubsData>

上面的 clubsData 来自仅在我俱乐部中的某个人。下面的片段是同一家具乐部的某人以及其他 2 家具乐部的:

<clubsData>hfjHs7InQ85+N0x4O66jpcJ+815YE3z9HUuBiaCEwbe9HLN3LYvkZzxEEOFwMJs72UgOiFKh+fjhpyhQCkXd2OP7OKu5GahsHfHCrSfdJB5yut46Je8ech+o4meWHbJsLpbz0G/RCm6XKrcHpWc5n38LlxzqHIBiPd9cGKJxj18=</clubsData>

我实际上不确定如何处理这些信息,但认为它可能对这里的人有所帮助。

我还注意到 IyoIyo 提到的关于 clubsData 的内容(我使用 Pidgin XMPP 客户端连接到 Riot 的聊天服务器),并且一直在尝试确定如何处理这些数据。我一直在尝试加入我自己知道实际名称的俱乐部,但我也被困在 UUID 步骤中。

结果,我没有取得太大进展,但我想知道你们中是否有人在此期间解决了这个问题 - 找到俱乐部的房间名称以加入,假设其服务器是“pgc.pvp.net “正如阿莫斯所说。

——

请原谅我的“回答”帖子,因为我最近也偶然发现了这个问题,并且实际上只是创建了一个 SE 帐户来回复这个帖子,哈哈。