network.md 2.5 KB

Network 1.1.0 Analysis

Headings are ordered by stage of the game.

Avoid IP addresses. Censor domain names after the second full stop (ex. static.google.* (just in case).

Input data:

1 Launcher

Connection type: entirely TCP / TLSv1.2

DNS requests:

  • sdk-os-static.mihoyo.*
  • log-upload-os.mihoyo.*
  • api-static.mihoyo.* Game update information (trigger by launcher button)
  • webstatic.mihoyo.*
  • genshin.mihoyo.*

2 Startup & login

Connection type: TCP/TLSv1.2 and TCP/HTTP

DNS requests, sorted by appearance:

  • dispatchosglobal.* Server listing (required, error 4201)
  • osasiadispatch.* Asia server
  • oseurodispatch.* Europa server
  • osusadispatch.* USA server
  • webstatic-sea.mihoyo.* In-game news (optional)
  • log-upload-os.mihoyo.* Log server (optional)
  • hk4e-sdk-os.mihoyo.* Central login server (required)
  • hk4e-api-os.mihoyo.* Accessed after entering the door
  • sdk-os-static.mihoyo.* Accessed at late game / exit

In addition to a few unity3d hosts which have no effect when blacklisted in /etc/hosts.

Weird sanity check

GET /perf/config/verify?device_id=MIHOYOSDK_DEVICE_ID&platform=2&name=PC_NAME:

  • Host: log-upload-os.mihoyo.*

Answer, for Windows and Linux:

{
  "code": -1,
  "message": "not matched"
}

3 Game data loader

Connection type: UDP

Yet unclear.

4 Crash reporter

Connection type: TCP/HTTP

POST request to /log:

  • Host: overseauspider.yuanshen.*
  • Data:

{
  "userName": "Test",    /* Constant */
  "time": "YYYY-MM-DD hh:mm:ss.0000",
  "frame": "",           /* Unclear, perhaps game frame count */
  "stackTrace": "Log::Logger() ....", /* Partially readable backtrace */
  "logStr": "[Login] OnPlayerLoginRsp: 31", /* Error 31-4302 */
  "logType": "Error",
  "deviceName": "NX",    /* Unclear */
  "deviceModel": "Wine (The Wine Project)",
  "operatingSystem": "Windows 10  (10.0...",
   /* ^ Data from HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion  */
  "version": "1.0_rel OSRELWin1.0.1_...", /* Game version (bottom left) */
  "exceptionSerialNum": "0",
  "pos": "",             /* Unclear, perhaps position on the map */
  "guid": "sha256 hash",
  /* ^ Data from HKEY_CURRENT_USER\Software\miHoYoSDK\ MIHOYOSDK_DEVICE_ID */
  "errorCode": "Default",
  "errorCodeToPlatform": 4302, /* Error 31-4302 */
  "serverName": "os_euro"  /* European server */
}

Answer, status 200 OK:

{
  "code": 0
}