Skip to content

Gamestats2 protocol

sepalani edited this page Jun 29, 2017 · 3 revisions

Gamestats2

Reverse engineering based on Mario Strikers Charged Football (PAL) dumps and debug messages.

DWC_RnkPutScoreAsync

DWC_RnkPutScoreAsync(uint32_t category, uint32_t region, uint32_t score, void* data, uint32_t len)
// category: 0, 1, 2, ...
// region: 1, 2, 4
// score: user score
// data: user data
// len: data length (0x80)
GET /mschargedwii/web/client/put2.asp?pid=355776439 HTTP/1.1
Host: gamestats2.gs.nintendowifi.net
User-Agent: GameSpyHTTP/1.0
Connection: close

HTTP/1.1 200 OK
Date: Sun, 18 May 2014 11:44:50 GMT
Server: Microsoft-IIS/6.0
p3p: CP='NOI ADMa OUR STP'
cluster-server: gstprdweb13.las1.colo.ignops.com
X-Powered-By: ASP.NET
Content-Length: 32
Content-Type: text/html
Set-Cookie: ASPSESSIONIDCATBCDCD=PHKJJNEAEICIGKFNNMFMECDD; path=/
Cache-control: private

yTeitsg1L1AD5u8bmx5T8VpS9QK7vNGX

GET /mschargedwii/web/client/put2.asp?pid=355776439&hash=a991ad96336e6ebcbdef5676f140a300a2a7b5de&data=QttED7e3NBWQAAAABAAAAAIAAAAQAAAAgAAAABIFB94AAAABAAAAAgACAHMAZQBiAAD_Vf3I-8MAqv9V_cj746hWAHMAZQBiAAAAAAAAAAAAAAAAAAB_UYB2N3fCXLmQIAxmAAGWCKIIjAhANEiYjTCKAIolBQAAAAAAAAAAAAAAAAAAAAAAAAAAlveDTEEndGCCEhX5wMekPim2 HTTP/1.1
Host: gamestats2.gs.nintendowifi.net
User-Agent: GameSpyHTTP/1.0
Connection: close

HTTP/1.1 200 OK
Date: Sun, 18 May 2014 11:44:51 GMT
Server: Microsoft-IIS/6.0
p3p: CP='NOI ADMa OUR STP'
cluster-server: gstprdweb15.las1.colo.ignops.com
X-Powered-By: ASP.NET
Content-Length: 44
Content-Type: text/html
Set-Cookie: ASPSESSIONIDSASRSATD=PIJLNNEAAAOKNLBLLBDAGGMP; path=/
Cache-control: private

done15a5ff3d835a9e893af615959c78552ac0f02909
// Data base64 urlsafe decoded
00000000  42 db 44 0f b7 b7 34 15  90 00 00 00 04 00 00 00  |B.D...4.........|
00000010  02 00 00 00 10 00 00 00  80 00 00 00 12 05 07 de  |................|
00000020  00 00 00 01 00 00 00 02  00 02 00 73 00 65 00 62  |...........s.e.b|
00000030  00 00 ff 55 fd c8 fb c3  00 aa ff 55 fd c8 fb e3  |...U.......U....|
00000040  a8 56 00 73 00 65 00 62  00 00 00 00 00 00 00 00  |.V.s.e.b........|
00000050  00 00 00 00 00 00 7f 51  80 76 37 77 c2 5c b9 90  |.......Q.v7w.\..|
00000060  20 0c 66 00 01 96 08 a2  08 8c 08 40 34 48 98 8d  | .f........@4H..|
00000070  30 8a 00 8a 25 05 00 00  00 00 00 00 00 00 00 00  |0...%...........|
00000080  00 00 00 00 00 00 00 00  00 00 96 f7 83 4c 41 27  |.............LA'|
00000090  74 60 82 12 15 f9 c0 c7  a4 3e 29 b6              |t`.......>).|
0000009c
// Data base64 urlsafe decoded (earlier ones)
00000000  42 db 44 5e b7 b7 34 15  90 00 00 00 04 00 00 00  |B.D^..4.........|
00000010  00 00 00 00 00 00 00 00  80 00 00 00 12 05 07 de  |................|
00000020  00 00 00 00 00 00 00 01  00 02 00 73 00 65 00 62  |...........s.e.b|
00000030  00 00 ff 55 fd c8 fb c3  00 aa ff 55 fd c8 fb e3  |...U.......U....|
00000040  a8 56 00 73 00 65 00 62  00 00 00 00 00 00 00 00  |.V.s.e.b........|
00000050  00 00 00 00 00 00 7f 51  80 76 37 77 c2 5c b9 90  |.......Q.v7w.\..|
00000060  20 0c 66 00 01 96 08 a2  08 8c 08 40 34 48 98 8d  | .f........@4H..|
00000070  30 8a 00 8a 25 05 00 00  00 00 00 00 00 00 00 00  |0...%...........|
00000080  00 00 00 00 00 00 00 00  00 00 96 f7 3e a1 1f 8a  |............>...|
00000090  7f 95 91 dd b9 97 0e 6b  ae 21 2c 0a              |.......k.!,.|
0000009c

00000000  42 db 44 5f b7 b7 34 15  90 00 00 00 04 00 00 00  |B.D_..4.........|
00000010  01 00 00 00 00 00 00 00  80 00 00 00 12 05 07 de  |................|
00000020  00 00 00 00 00 00 00 01  00 02 00 73 00 65 00 62  |...........s.e.b|
00000030  00 00 ff 55 fd c8 fb c3  00 aa ff 55 fd c8 fb e3  |...U.......U....|
00000040  a8 56 00 73 00 65 00 62  00 00 00 00 00 00 00 00  |.V.s.e.b........|
00000050  00 00 00 00 00 00 7f 51  80 76 37 77 c2 5c b9 90  |.......Q.v7w.\..|
00000060  20 0c 66 00 01 96 08 a2  08 8c 08 40 34 48 98 8d  | .f........@4H..|
00000070  30 8a 00 8a 25 05 00 00  00 00 00 00 00 00 00 00  |0...%...........|
00000080  00 00 00 00 00 00 00 00  00 00 96 f7 3e a1 1f 8a  |............>...|
00000090  7f 95 91 dd b9 97 0e 6b  ae 21 2c 0a              |.......k.!,.|
0000009c

00000000  42 db 44 58 b7 b7 34 15  90 00 00 00 04 00 00 00  |B.DX..4.........|
00000010  02 00 00 00 00 00 00 00  80 00 00 00 12 05 07 de  |................|
00000020  00 00 00 00 00 00 00 01  00 02 00 73 00 65 00 62  |...........s.e.b|
00000030  00 00 ff 55 fd c8 fb c3  00 aa ff 55 fd c8 fb e3  |...U.......U....|
00000040  a8 56 00 73 00 65 00 62  00 00 00 00 00 00 00 00  |.V.s.e.b........|
00000050  00 00 00 00 00 00 7f 51  80 76 37 77 c2 5c b9 90  |.......Q.v7w.\..|
00000060  20 0c 66 00 01 96 08 a2  08 8c 08 40 34 48 98 8d  | .f........@4H..|
00000070  30 8a 00 8a 25 05 00 00  00 00 00 00 00 00 00 00  |0...%...........|
00000080  00 00 00 00 00 00 00 00  00 00 96 f7 3e a1 1f 8a  |............>...|
00000090  7f 95 91 dd b9 97 0e 6b  ae 21 2c 0a              |.......k.!,.|
0000009c
// Data Structure
struct put2_data
{
  uint32_le checksum;
  uint32_le pid;
  uint32_le packet_len;
  uint32_le region;
  uint32_le category;
  uint32_le score;
  uint32_le data_len;
  uint8_t data[0];
};

DWC_RnkGetScoreAsync

DWC_RnkGetScoreAsync(uint32_t mode, uint32_t category, uint32_t region, void* options)
// mode: 0 (own ranking), 1 (top), 2 (nearby stats), 3 (friends stats)
// category: 0, 1, 2
// region: 1, 2, 4
// struct options
// {
//    uint32_be unk_0x00;  // 0x0000010C // size?
//    uint32_be unk_0x04;  // 0x00000001 // filter?
//    uint32_be unk_0x08;  // 0x00000041 // limit?
//    uint32_be unk_0x0C;  // 0x00000000 // update time?
//    ???
// }
//
// First call:
// DWC_RnkGetScoreAsync(3, 2, 4, &options)
// 51:08:895 HLE\HLE_OS.cpp:82 N[OSREPORT]: 8012d798->8012d770| Error 16 from DWC_RnkResGetRowCount cat 2 filter 1
// 51:08:896 HLE\HLE_OS.cpp:82 N[OSREPORT]: 8012f72c->8012f6a0| Unavailable Leaderboard Stats cat 2 filter 1
// 51:08:896 HLE\HLE_OS.cpp:82 N[OSREPORT]: 8012017c->80120168| Error getting friends stats at login
GET /mschargedwii/web/client/get2.asp?pid=355776439 HTTP/1.1
Host: gamestats2.gs.nintendowifi.net
User-Agent: GameSpyHTTP/1.0
Connection: close

HTTP/1.1 200 OK
Date: Sun, 18 May 2014 11:45:32 GMT
Server: Microsoft-IIS/6.0
p3p: CP='NOI ADMa OUR STP'
cluster-server: gstprdweb13.las1.colo.ignops.com
X-Powered-By: ASP.NET
Content-Length: 32
Content-Type: text/html
Set-Cookie: ASPSESSIONIDSQQQSRAS=JKPKFMEAIPJAJGJFBLPFKIIC; path=/
Cache-control: private

ZccwFoIeKe3E3GbI5xtADduDRxkCQ6Hk

GET /mschargedwii/web/client/get2.asp?pid=355776439&hash=cf6b615962175f24cc3b2a6214bcbae05f498b84&data=Qttjmbe3NBUcAQAABAAAAAIAAAADAAAADAEAAAEAAABBAAAAAAAAAEm3NBUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= HTTP/1.1
Host: gamestats2.gs.nintendowifi.net
User-Agent: GameSpyHTTP/1.0
Connection: close

// Data base64 urlsafe decoded
00000000  42 db 63 99 b7 b7 34 15  1c 01 00 00 04 00 00 00  |B.c...4.........|
00000010  02 00 00 00 03 00 00 00  0c 01 00 00 01 00 00 00  |................|
00000020  41 00 00 00 00 00 00 00  49 b7 34 15 00 00 00 00  |A.......I.4.....|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00                           |........|
00000128

HTTP/1.1 200 OK
Date: Sun, 18 May 2014 11:45:32 GMT
Server: Microsoft-IIS/6.0
p3p: CP='NOI ADMa OUR STP'
cluster-server: gstprdweb13.las1.colo.ignops.com
X-Powered-By: ASP.NET
Content-Length: 356
Content-Type: text/html
Set-Cookie: ASPSESSIONIDCATBCDCD=DHLJJNEAGJKOGGPBBJIOMACO; path=/
Cache-control: private

0000   03 00 00 00 02 00 00 00 01 00 00 00 01 00 00 00  ................
0010   b7 b7 34 15 10 00 00 00 04 00 00 00 00 00 00 00  ..4.............
0020   80 00 00 00 12 05 07 de 00 00 00 01 00 00 00 02  ................
0030   00 02 00 73 00 65 00 62 00 00 ff 55 fd c8 fb c3  ...s.e.b...U....
0040   00 aa ff 55 fd c8 fb e3 a8 56 00 73 00 65 00 62  ...U.....V.s.e.b
0050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f 51  ...............Q
0060   80 76 37 77 c2 5c b9 90 20 0c 66 00 01 96 08 a2  .v7w.\.. .f.....
0070   08 8c 08 40 34 48 98 8d 30 8a 00 8a 25 05 00 00  ...@4H..0...%...
0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0090   00 00 96 f7 83 4c 41 27 74 60 82 12 15 f9 c0 c7  .....LA't`......
00a0   a4 3e 29 b6 00 00 00 00 49 b7 34 15 00 00 00 00  .>).....I.4.....
00b0   04 00 00 00 88 fa 14 00 80 00 00 00 06 0a 07 db  ................
00c0   00 00 00 00 00 00 00 00 00 02 00 4e 00 69 00 63  ...........N.i.c
00d0   00 6f 00 6c 00 61 00 73 00 00 ff 55 fd c8 fb e3  .o.l.a.s...U....
00e0   a4 c1 00 4e 00 69 00 63 00 6f 00 6c 00 61 00 73  ...N.i.c.o.l.a.s
00f0   00 00 00 00 00 00 53 46 82 26 9d 9b 30 f4 b6 95  ......SF.&..0...
0100   04 c4 56 40 31 bd 28 a2 08 8c 08 40 14 4d 98 8d  ..V@1.(....@.M..
0110   30 8a 00 8a 25 04 00 4e 00 69 00 63 00 6f 00 6c  0...%..N.i.c.o.l
0120   00 61 00 73 00 00 00 00 00 00 f0 95 74 2d ea 29  .a.s........t-.)
0130   39 27 f7 44 ea 65 24 ac 40 63 0f 88 66 62 33 35  9'.D.e$.@c..fb35
0140   61 38 38 33 64 32 37 36 30 33 32 31 36 61 35 62  a883d27603216a5b
0150   65 37 36 39 38 35 66 64 32 33 65 38 39 33 66 36  e76985fd23e893f6
0160   32 35 38 63                                      258c


// Earlier one
GET /mschargedwii/web/client/get2.asp?pid=355776439 HTTP/1.1
Host: gamestats2.gs.nintendowifi.net
User-Agent: GameSpyHTTP/1.0
Connection: close

HTTP/1.1 200 OK
Date: Sun, 18 May 2014 11:45:27 GMT
Server: Microsoft-IIS/6.0
p3p: CP='NOI ADMa OUR STP'
cluster-server: gstprdweb16.las1.colo.ignops.com
X-Powered-By: ASP.NET
Content-Length: 32
Content-Type: text/html
Set-Cookie: ASPSESSIONIDQARTQDSD=JMPBHIEAJJNNMLDOBKIFDFIL; path=/
Cache-control: private

KQkQRfx1anLfWgPFbAgL1hWLsKkUK8T8

GET /mschargedwii/web/client/get2.asp?pid=355776439&hash=4e2a8b441d4caba5222639f0b1a3952dd0c1d288&data=QttiWbe3NBUcAAAABAAAAAEAAAACAAAADAAAAAEAAAAKAAAAwgIAAA== HTTP/1.1
Host: gamestats2.gs.nintendowifi.net
User-Agent: GameSpyHTTP/1.0
Connection: close

// Data base64 urlsafe decoded
00000000  42 db 62 59 b7 b7 34 15  1c 00 00 00 04 00 00 00  |B.bY..4.........|
00000010  01 00 00 00 02 00 00 00  0c 00 00 00 01 00 00 00  |................|
00000020  0a 00 00 00 c2 02 00 00                           |........|
00000028

HTTP/1.1 200 OK
Date: Sun, 18 May 2014 11:45:28 GMT
Server: Microsoft-IIS/6.0
p3p: CP='NOI ADMa OUR STP'
cluster-server: gstprdweb13.las1.colo.ignops.com
X-Powered-By: ASP.NET
Content-Length: 1572
Content-Type: text/html
Set-Cookie: ASPSESSIONIDSQQQSRAS=FJPKFMEAHKEFLFCEDPCBNNEK; path=/
Cache-control: private

0000   02 00 00 00 0a 00 00 00 be 00 00 00 49 00 00 00  ............I...
0010   b7 b7 34 15 10 00 00 00 04 00 00 00 00 00 00 00  ..4.............
0020   80 00 00 00 12 05 07 de 00 00 00 01 00 00 00 02  ................
0030   00 02 00 73 00 65 00 62 00 00 ff 55 fd c8 fb c3  ...s.e.b...U....
0040   00 aa ff 55 fd c8 fb e3 a8 56 00 73 00 65 00 62  ...U.....V.s.e.b
0050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f 51  ...............Q
0060   80 76 37 77 c2 5c b9 90 20 0c 66 00 01 96 08 a2  .v7w.\.. .f.....
0070   08 8c 08 40 34 48 98 8d 30 8a 00 8a 25 05 00 00  ...@4H..0...%...
0080   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0090   00 00 96 f7 83 4c 41 27 74 60 82 12 15 f9 c0 c7  .....LA't`......
00a0   a4 3e 29 b6 00 00 00 00 27 61 a3 1c 13 00 00 00  .>).....'a......
00b0   04 00 00 00 f5 00 00 00 80 00 00 00 12 05 07 de  ................
00c0   00 00 00 01 00 00 00 03 00 02 03 b6 03 b1 03 bb  ................
00d0   00 3f 00 3f 00 3f 26 06 00 00 ff 55 fd c8 fb e3  .?.?.?&....U....
00e0   9c 25 03 b6 03 b1 03 bb 03 ac 03 ad 03 ca 26 06  .%............&.
00f0   00 00 00 52 00 00 3b 3c 83 e7 23 08 27 c0 84 0e  ...R..;<..#.'...
0100   04 04 48 60 31 bd 28 a2 08 8c 08 40 14 49 b0 8d  ..H`1.(....@.I..
0110   00 8a 08 8a 25 04 00 72 00 61 00 66 00 61 00 65  ....%..r.a.f.a.e
0120   00 6c 00 00 00 00 00 00 00 00 d8 d0 f5 f0 53 3e  .l............S>
0130   d5 73 76 7a 1f de e2 16 cd 10 b6 8c 00 00 00 00  .svz............
0140   9c 60 a3 1c 11 00 00 00 04 00 00 00 f9 00 00 00  .`..............
0150   80 00 00 00 12 05 07 de 00 00 00 01 00 00 00 04  ................
0160   00 02 00 62 00 e9 00 62 00 e9 00 20 00 6d 00 61  ...b...b... .m.a
0170   00 72 00 69 00 6f 00 00 80 0a 00 62 00 e9 00 62  .r.i.o.....b...b
0180   00 e9 00 20 00 6d 00 61 00 72 00 69 00 6f 7f 7f  ... .m.a.r.i.o..
0190   82 c8 0e 31 59 70 31 89 60 2d 4a 4c 29 f2 28 a2  ...1Yp1.`-JL).(.
01a0   50 8c 08 41 84 49 28 8d 00 8a 71 0a c6 0b 00 00  P..A.I(...q.....
01b0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
01c0   00 00 b8 78 98 b1 1f 8c 3f 42 5e 25 68 e4 98 f5  ...x....?B^%h...
01d0   e4 49 48 fa 00 00 00 00 d8 63 a3 1c 10 00 00 00  .IH......c......
01e0   04 00 00 00 f6 00 00 00 80 00 00 00 12 05 07 de  ................
01f0   00 00 00 01 00 00 00 02 00 02 00 6c 00 69 00 6c  ...........l.i.l
0200   00 69 00 61 00 6e 00 00 00 aa ff 55 fd c8 fb e3  .i.a.n.....U....
0210   06 61 00 6c 00 69 00 6c 00 69 00 61 00 6e 00 00  .a.l.i.l.i.a.n..
0220   00 6f 00 73 00 73 13 00 82 80 4f 9a 59 59 eb c4  .o.s.s....O.YY..
0230   00 04 62 01 31 bd 08 a2 3c 8c 08 48 14 4d 78 8d  ..b.1...<..H.Mx.
0240   00 8a 00 8a 25 05 00 6c 00 69 00 6c 00 69 00 00  ....%..l.i.l.i..
0250   00 00 00 00 00 00 00 00 00 00 b6 08 77 43 0a 81  ............wC..
0260   04 01 54 85 9a ff 2b f5 20 81 57 cc 00 00 00 00  ..T...+. .W.....
0270   87 e7 8a 1c 10 00 00 00 04 00 00 00 04 00 00 00  ................
0280   80 00 00 00 12 05 07 de 00 00 00 01 00 00 00 01  ................
0290   00 02 00 4a 00 61 00 6e 00 20 00 47 00 6f 00 6c  ...J.a.n. .G.o.l
02a0   00 64 00 00 fd c8 fb e3 0a a5 00 4a 00 61 00 6e  .d.........J.a.n
02b0   00 20 00 47 00 6f 00 6c 00 64 00 00 00 00 2b 06  . .G.o.l.d....+.
02c0   83 c8 85 ca 41 8a d1 e8 00 05 44 5c 99 bc 28 b2  ....A.....D\..(.
02d0   08 8d a8 54 14 49 b0 8d 04 8a 00 8a 25 04 00 00  ...T.I......%...
02e0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
02f0   00 00 1c ea 88 75 8a 63 c1 4f 26 e5 bb de d4 d6  .....u.c.O&.....
0300   62 bd dd ac 00 00 00 00 5e ce 63 1c 0f 00 00 00  b.......^.c.....
0310   04 00 00 00 61 00 00 00 80 00 00 00 12 05 07 de  ....a...........
0320   00 00 00 01 00 00 00 01 00 02 00 4a 00 41 00 56  ...........J.A.V
0330   00 49 00 00 fd c8 fb c3 00 aa ff 55 fd c8 fb e3  .I.........U....
0340   b1 e1 00 4a 00 41 00 56 00 49 00 00 00 00 00 00  ...J.A.V.I......
0350   00 00 00 00 00 00 7f 4c 83 db 63 74 41 e5 e8 f5  .......L..ctA...
0360   10 04 62 40 31 bc 28 a2 08 8c 08 40 14 49 b0 8d  ..b@1.(....@.I..
0370   74 8a 00 8a 25 04 00 00 00 00 00 00 00 00 00 00  t...%...........
0380   00 00 00 00 00 00 00 00 00 00 a6 ae 58 80 8e 37  ............X..7
0390   90 cd 83 83 df 44 f8 da 03 82 df 42 00 00 00 00  .....D.....B....
03a0   ba 96 a3 1c 0f 00 00 00 04 00 00 00 1f 00 00 00  ................
03b0   80 00 00 00 12 05 07 de 00 00 00 01 00 00 00 01  ................
03c0   00 02 26 06 00 53 00 63 00 61 00 72 00 74 26 06  ..&..S.c.a.r.t&.
03d0   00 00 ff 55 fd c8 fb e3 00 16 26 06 00 53 00 63  ...U......&..S.c
03e0   00 61 00 72 00 74 26 06 00 00 00 00 00 00 40 11  .a.r.t&.......@.
03f0   83 f0 66 ea 03 b4 10 76 34 05 43 dc 32 3d f0 68  ..f....v4.C.2=.h
0400   18 e0 0e 5c 14 4d 01 0d 00 8a 00 8a 25 05 26 06  ...\.M......%.&.
0410   00 42 00 47 26 06 00 00 00 00 00 00 00 00 00 00  .B.G&...........
0420   00 00 1b 99 66 7c c0 76 96 4c cd ce a0 cb 7d 9e  ....f|.v.L....}.
0430   dc 54 63 8f 00 00 00 00 53 2f 8c 1c 0d 00 00 00  .Tc.....S/......
0440   04 00 00 00 76 00 00 00 80 00 00 00 12 05 07 de  ....v...........
0450   00 00 00 01 00 00 00 01 00 02 00 65 00 74 00 68  ...........e.t.h
0460   00 61 00 6e 00 20 00 77 00 20 26 06 26 06 00 00  .a.n. .w. &.&...
0470   a2 21 00 65 00 74 00 68 00 61 00 6e 00 20 00 77  .!.e.t.h.a.n. .w
0480   00 20 26 06 26 06 54 31 83 dc 0d f8 47 8f ee 9d  . &.&.T1....G...
0490   00 04 3e 40 31 bd 28 a2 08 8c 08 40 14 4d 78 8d  ..>@1.(....@.Mx.
04a0   84 80 00 8a 25 04 00 00 00 00 00 00 00 00 00 00  ....%...........
04b0   00 00 00 00 00 00 00 00 00 00 1f 90 7d f7 a6 d5  ............}...
04c0   e3 e4 c0 5d f5 01 35 4c b0 c0 35 c0 00 00 00 00  ...]..5L..5.....
04d0   2c 1d aa 11 0d 00 00 00 04 00 00 00 37 00 00 00  ,...........7...
04e0   80 00 00 00 12 05 07 de 00 00 00 01 00 00 00 01  ................
04f0   00 02 00 67 00 75 00 2d 00 67 00 75 00 73 00 00  ...g.u.-.g.u.s..
0500   00 aa ff 55 fd c8 fb e3 2a 61 00 67 00 75 00 2d  ...U....*a.g.u.-
0510   00 67 00 75 00 73 00 00 00 00 00 00 00 00 35 15  .g.u.s........5.
0520   81 df 63 b3 68 30 af 86 04 07 42 5a 01 80 28 a2  ..c.h0....BZ..(.
0530   08 8c 48 44 14 48 b0 8d 00 8a 00 8a 25 04 00 6d  ..HD.H......%..m
0540   00 61 00 72 00 69 00 75 00 73 00 00 00 00 00 00  .a.r.i.u.s......
0550   00 00 d8 bd 23 84 c3 0e 7d 45 1a da 08 3a af 98  ....#...}E...:..
0560   f5 55 3b 91 00 00 00 00 98 03 42 1c 0c 00 00 00  .U;.......B.....
0570   04 00 00 00 84 00 00 00 80 00 00 00 12 05 07 de  ................
0580   00 00 00 00 00 00 00 04 00 02 00 4d 00 61 00 69  ...........M.a.i
0590   00 74 00 72 00 65 00 47 00 69 00 6d 00 73 00 00  .t.r.e.G.i.m.s..
05a0   80 17 00 4d 00 61 00 69 00 74 00 72 00 65 00 47  ...M.a.i.t.r.e.G
05b0   00 69 00 6d 00 73 33 4b 81 e7 35 65 17 0a 98 3a  .i.m.s3K..5e...:
05c0   34 04 5a 40 31 bd 28 a2 08 8c 08 40 a4 4d 30 8d  4.Z@1.(....@.M0.
05d0   60 8a f0 8a 25 04 00 00 00 00 00 00 00 00 00 00  `...%...........
05e0   00 00 00 00 00 00 00 00 00 00 aa 9e 9a 47 f0 9b  .............G..
05f0   30 2d 40 d6 4f 95 b2 30 3b d6 64 0f 30 35 35 31  0-@.O..0;.d.0551
0600   66 65 66 32 39 31 61 64 63 39 63 61 34 66 39 36  fef291adc9ca4f96
0610   34 36 39 64 62 30 61 66 61 35 62 33 34 39 31 31  469db0afa5b34911
0620   66 38 38 37                                      f887
// Data Structure
struct get2_data
{
  uint32_le checksum;
  uint32_le pid;
  uint32_le packet_len;
  uint32_le region;
  uint32_le category;
  uint32_le mode;
  uint32_le data_len;
  uint8_t data[0];
};

// Own Ranking
struct get2_mode_0x00_data
{
// TODO
};

// Top
struct get2_mode_0x01_data
{
// TODO
};

// Nearby Stats
struct get2_mode_0x02_data
{
  uint32_le filter;
  uint32_le limit;
  uint32_le update_time;
};

// Friends Stats
struct get2_mode_0x03_data
{
  uint32_le filter;
  uint32_le limit;
  uint32_le update_time;
  uint32_le friends_pid[64];
};

// HTTP Body
struct row
{
  uint32_le unk_0x00; // order? 
  uint32_le pid;
  uint32_le score;
  uint32_le region; // Set to 0xFFFFFFFF if pid not found
  uint32_le unk_0x10; // update time?
  uint32_le data_len;
  uint8_t data[0];
};

struct body
{
  uint32_le mode;
  uint32_le row_count; // Transferred rows
  uint32_le row_total; // Total rows
  struct row rows[0];
};

Clone this wiki locally