逆向工程任天堂Switch App REST API

2020-05-21 09:36:50

这是用于任天堂交换机应用程序和嵌入式Splatoon 2网络应用程序的REST API的文档。

所有的测试都是在运行iOS10.3.3的iPhone7上进行的,使用的是任天堂交换机应用程序的1.0.4版,时间是17年7月30日。我使用Mitmproxy进行了反向工程。这相当简单,因为这个应用程序根本不使用证书钉住。我根本没有使用Android应用程序进行测试,但我会假设一切都是一样的(除了明显的用户代理差异)。我使用的是语言设置为英语的美国帐户。其他地区的情况可能会略有不同。

为MacOS用户提供了一个PAW项目,该项目应该有助于对API进行修补。我强烈建议您先试一试,弄清楚API是如何工作的。看一下环境变量,看看您需要填写什么。一旦您填写了客户端ID、登录页面令牌码、登录页面令牌码验证器和生日,您就可以按顺序执行身份验证请求了,您应该可以开始了。

注意:我建议将对Splatoon 2API的所有请求的User-Agent设置为以下字符串,以便混合使用。似乎没有对此进行任何检查,但比道歉更安全。Mozilla/5.0(iPhone;CPU iPhone OS 10_3_3,如Mac OS X)AppleWebKit/603.3.8(KHTML,如Gecko)Mobile/14G60。

如果你对应用程序中使用的开源组件感兴趣,我在这里汇编了它们。

该页面是一个HTML页面,它加载您通常在登录应用程序时首先看到的授权流。通过使用帐户登录来完成流程。

我目前不知道这个URL是如何生成的。我建议注销Switch应用程序,然后重新登录并在Safari中打开Sign Flow链接。然后,您可以在您的计算机上打开它,并从那里进行操作。

使用您的访问令牌从GET/v1/Game/ListWebServices检索游戏列表。使用4中的webApiServerCredential[";accesstoken";]。

请求获取/v1/Game/GetWebServiceToken。使用5中的Splatoon 2的ID和4中的webApiServerCredential[";accesstoken";]。

您现在可以使用从7检索到的cookie从Splatoon 2API发出任何请求。祝您玩得开心!