vault backup: 2023-02-04 14:56:18
This commit is contained in:
parent
51d39cbbe4
commit
65f5a81960
20 changed files with 97213 additions and 0 deletions
75
Netplay/Netplay.md
Normal file
75
Netplay/Netplay.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
# Encryption (v1.1)
|
||||
|
||||
Fixed Key: `020406080a0c0e10121416181a1c1e20222426282a2c2e30323436383a3c3e40`
|
||||
Packet Structure:
|
||||
```
|
||||
[0..nonce_len]: nonce
|
||||
[nonce_len..(16-nonce_len%16)]: padding
|
||||
[16..ciphertext_len]: Ciphertext
|
||||
[nonce_len+(16-nonce_len%16)+ciphertext_len]
|
||||
|
||||
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
0000 ED C9 C2 F4 7C 6D F2 54 42 EF 46 F6 00 00 00 00 ....|m.TB.F.....
|
||||
0010 68 13 5C 9A 2B 18 DB 9C 76 BE A0 8A 3E 49 79 3C h.\.+...v...>Iy<
|
||||
0020 8D 7A C4 4C 8B B0 A4 94 E5 B5 89 54 A6 ED 6D 75 .z.L.......T..mu
|
||||
0030 1A CA A8 4B 22 B5 03 84 F7 3C DE 4E B0 30 81 29 ...K"....<.N.0.)
|
||||
0040 3B 70 45 15 33 C0 97 67 85 6B 28 EF 2E 2E D1 83 ;pE.3..g.k(.....
|
||||
0050 E6 56 A7 81 53 89 3E 52 D8 82 CF 77 92 CF C2 D6 .V..S.>R...w....
|
||||
0060 9F 37 C5 DE EE 14 4D 3F 1F 82 32 7E 00 00 00 00 .7....M?..2~....
|
||||
0070 0C 00 00 00 00 00 00 00 5C 00 00 00 00 00 00 00 ........\.......
|
||||
0080 89 7A A8 32 93 56 B6 68 24 E0 58 63 7F 70 5A D2 .z.2.V.h$.Xc.pZ.
|
||||
```
|
||||
Decrypted:
|
||||
```
|
||||
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
|
||||
0000 BA CE 01 01 8B 6D 06 00 00 00 01 4D 53 45 31 3A .....m.....MSE1:
|
||||
0010 20 46 6C 61 67 20 48 75 6E 74 20 32 2D 36 00 05 Flag Hunt 2-6..
|
||||
0020 00 00 00 00 00 05 18 01 88 AA 9B 46 6C 61 67 48 ...........FlagH
|
||||
0030 75 6E 74 00 54 A9 2F 05 F0 B4 4F 43 41 00 00 00 unt.T./...OCA...
|
||||
0040 4D 07 18 01 60 A3 00 05 00 00 80 3F 20 4A DA 3D M...`......? J.=
|
||||
0050 68 F8 8F 01 19 6A 71 77 20 8B FB 76 h....jqw ..v
|
||||
```
|
||||
|
||||
# Netplay
|
||||
|
||||
Game Info Packet
|
||||
|
||||
```
|
||||
Server 'B':FZ (0/10) Ver 1.0 at 192.168.99.1:28086
|
||||
[0-2] ID (0xbace)
|
||||
[2-4] Version
|
||||
[4-5] port (16-bit)
|
||||
[6-7] max_players (16-bit)
|
||||
[8-9] curr_player (16-bit)
|
||||
[10-x] server name (char*)
|
||||
|
||||
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
|
||||
0019fdc0 ba ce 00 01 b6 6d 0a 00 00 00 42 00 30 fe 19 00 .....m....B.0...
|
||||
0019fdd0 ff ff ff ff 27 2b b3 9b c7 3e bb 00 9c af 29 00 ....'+...>....).
|
||||
0019fde0 db 69 00 00 00 00 00 00 00 00 44 65 61 74 68 4d .i........DeathM
|
||||
0019fdf0 61 74 63 68 00 00 00 00 ff ff 46 5a 00 4a 91 f0 atch......FZ.J..
|
||||
0019fe00 92 8b 57 4e 7f 00 00 00 10 21 fe 38 0d ae 00 00 ..WN.....!.8....
|
||||
0019fe10 f0 ce f3 36 a0 e8 0b 77 a0 e8 ...6...w..
|
||||
```
|
||||
|
||||
|
||||
Player Join Packet
|
||||
|
||||
```
|
||||
[0-3] header/ID?
|
||||
[6-x] Player name
|
||||
|
||||
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
|
||||
09c9dfe8 7f 47 00 00 00 0e 55 6e 6e 61 6d 65 64 20 50 6c .G....Unnamed Pl
|
||||
09c9dff8 61 79 65 72 06 53 42 6f 73 73 31 b9 00 07 50 5f ayer.SBoss1...P_
|
||||
09c9e008 42 65 74 74 79 06 4d 42 4f 53 53 31 06 4d 42 4f Betty.MBOSS1.MBO
|
||||
09c9e018 53 53 31 00 00 10 30 2c 31 35 2c 30 2c 30 2c 31 SS1...0,15,0,0,1
|
||||
09c9e028 35 2c 31 35 2c 31 02 00 00 00 5,15,1....
|
||||
```
|
||||
|
||||
Message | Description
|
||||
---------------------------------------- | -----------------------------------------------------------------
|
||||
`5c68625c32383230395c73637261706c616e64` | "Scrapland Server" announcement broadcast (`\hb\28209\scrapland`)
|
||||
`7f01000007` | Retrieve Game info
|
||||
`48423d35323932322c3235363a323830383600` | Connection Information (`HB=52922,256:28086`)
|
146
Netplay/Protocol.md
Normal file
146
Netplay/Protocol.md
Normal file
|
@ -0,0 +1,146 @@
|
|||
# Protocol notes
|
||||
|
||||
Raw UDP Payload:
|
||||
|
||||
```
|
||||
0f0000020007007544b3c59018374774c6b246009805000009955f3c00067134
|
||||
0281062c090900001d007f5e0e22c6ddf52247cce2b64655163b8c8e0b4a272f
|
||||
44e7afc745ef91354600000000000000000008155f8300035186005100e9fb08
|
||||
050040007e5700ffff6301000010ff2365f96e1e00000002000000105f000006
|
||||
21e000daf7b1f73a0000c800ff7544b3c59018374774c6b24697f5d702000000
|
||||
00000000000000000000000000000000002c2502159ba419d1c4012d3c47252d
|
||||
af465359899e7745e6531142b96009c4ffff2402159e7f005800b5ff20f1f019
|
||||
04210bd5f5ffff2302159f4a6cd1c44625314792e5b04614cb45d6da5c26aa4e
|
||||
44a2ca72c5cdb4edc3ffff2202159e7e0014009efff6e8c89f0822fc8ff3ffff
|
||||
```
|
||||
|
||||
Hexdump:
|
||||
|
||||
```
|
||||
0000 0F 00 00 02 00 07 00 75 44 B3 C5 90 18 37 47 74 .......uD....7Gt
|
||||
0010 C6 B2 46 00 98 05 00 00 09 95 5F 3C 00 06 71 34 ..F......._<..q4
|
||||
0020 02 81 06 2C 09 09 00 00 1D 00 7F 5E 0E 22 C6 DD ...,.......^."..
|
||||
0030 F5 22 47 CC E2 B6 46 55 16 3B 8C 8E 0B 4A 27 2F ."G...FU.;...J'/
|
||||
0040 44 E7 AF C7 45 EF 91 35 46 00 00 00 00 00 00 00 D...E..5F.......
|
||||
0050 00 00 08 15 5F 83 00 03 51 86 00 51 00 E9 FB 08 ...._...Q..Q....
|
||||
0060 05 00 40 00 7E 57 00 FF FF 63 01 00 00 10 FF 23 ..@.~W...c.....#
|
||||
0070 65 F9 6E 1E 00 00 00 02 00 00 00 10 5F 00 00 06 e.n........._...
|
||||
0080 21 E0 00 DA F7 B1 F7 3A 00 00 C8 00 FF 75 44 B3 !......:.....uD.
|
||||
0090 C5 90 18 37 47 74 C6 B2 46 97 F5 D7 02 00 00 00 ...7Gt..F.......
|
||||
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
00b0 00 2C 25 02 15 9B A4 19 D1 C4 01 2D 3C 47 25 2D .,%........-<G%-
|
||||
00c0 AF 46 53 59 89 9E 77 45 E6 53 11 42 B9 60 09 C4 .FSY..wE.S.B.`..
|
||||
00d0 FF FF 24 02 15 9E 7F 00 58 00 B5 FF 20 F1 F0 19 ..$.....X... ...
|
||||
00e0 04 21 0B D5 F5 FF FF 23 02 15 9F 4A 6C D1 C4 46 .!.....#...Jl..F
|
||||
00f0 25 31 47 92 E5 B0 46 14 CB 45 D6 DA 5C 26 AA 4E %1G...F..E..\&.N
|
||||
0100 44 A2 CA 72 C5 CD B4 ED C3 FF FF 22 02 15 9E 7E D..r......."...~
|
||||
0110 00 14 00 9E FF F6 E8 C8 9F 08 22 FC 8F F3 FF FF ..........".....
|
||||
```
|
||||
|
||||
Split up into chunks:
|
||||
|
||||
```
|
||||
0f 00 0002 0007 00 7544b3c5 90183747 74c6b246 0098
|
||||
|
||||
0500 00 09955f3c000671340281062c090900001d007f5e0e22c6ddf52247cce2b64655163b8c8e0b4a272f44e7afc745ef913546000000000000
|
||||
0000 00 08155f8300035186005100e9fb08050040007e5700ffff6301000010ff2365f96e1e000000
|
||||
0200 00 00105f00000621e000daf7b1f73a0000c800ff7544b3c59018374774c6b24697f5d70200000000000000000000000000000000000000002c
|
||||
2502 15 9ba419d1c4012d3c47252daf465359899e7745e6531142b96009c4ffff
|
||||
2402 15 9e7f005800b5ff20f1f01904210bd5f5ffff
|
||||
2302 15 9f4a6cd1c44625314792e5b04614cb45d6da5c26aa4e44a2ca72c5cdb4edc3ffff
|
||||
2202 15 9e7e0014009efff6e8c89f0822fc8ff3ffff
|
||||
```
|
||||
|
||||
Log message:
|
||||
|
||||
```
|
||||
Size: 0285 PlyId: 002 NumVals: 007
|
||||
( 0:'net 5'-00) 09955f3c000671340281062c090900001d007f5e0e22c6ddf52247cce2b64655163b8c8e0b4a272f44e7afc745ef913546000000000000
|
||||
( 1:'net 0'-00) 08155f8300035186005100e9fb08050040007e5700ffff6301000010ff2365f96e1e000000
|
||||
( 2:'net 2'-00) 00105f00000621e000daf7b1f73a0000c800ff7544b3c59018374774c6b24697f5d70200000000000000000000000000000000000000002c
|
||||
( 3:'net549'-15) 9ba419d1c4012d3c47252daf465359899e7745e6531142b96009c4ffff
|
||||
( 4:'net548'-15) 9e7f005800b5ff20f1f01904210bd5f5ffff
|
||||
( 5:'net547'-15) 9f4a6cd1c44625314792e5b04614cb45d6da5c26aa4e44a2ca72c5cdb4edc3ffff
|
||||
( 6:'net546'-15) 9e7e0014009efff6e8c89f0822fc8ff3ffff
|
||||
```
|
||||
|
||||
Structure:
|
||||
|
||||
```
|
||||
|
||||
0f00 # Unk
|
||||
0002 # PlayerID
|
||||
0007 # Num Vals
|
||||
00 # Unk
|
||||
7544b3c5 # Pos.X
|
||||
90183747 # Pos.Y
|
||||
74c6b246 # Pos.Z
|
||||
00 # Player Index
|
||||
98 # Rtt
|
||||
0500 00 09955f3c000671340281062c090900001d007f5e0e22c6ddf52247cce2b64655163b8c8e0b4a272f44e7afc745ef913546000000000000
|
||||
0000 00 08155f8300035186005100e9fb08050040007e5700ffff6301000010ff2365f96e1e000000
|
||||
0200 00 00105f00000621e000daf7b1f73a0000c800ff7544b3c59018374774c6b24697f5d70200000000000000000000000000000000000000002c
|
||||
2502 15 9ba419d1c4012d3c47252daf465359899e7745e6531142b96009c4ffff
|
||||
2402 15 9e7f005800b5ff20f1f01904210bd5f5ffff
|
||||
2302 15 9f4a6cd1c44625314792e5b04614cb45d6da5c26aa4e44a2ca72c5cdb4edc3ffff
|
||||
2202 15 9e7e0014009efff6e8c89f0822fc8ff3ffff
|
||||
|
||||
```
|
||||
|
||||
```c
|
||||
#pragma endian big
|
||||
|
||||
struct NetValue {
|
||||
le u16 entity_index;
|
||||
u8 entity_type;
|
||||
char data[?]; // TODO: how is length determined?
|
||||
};
|
||||
|
||||
struct NetData {
|
||||
le u16 unk;
|
||||
u16 player_id;
|
||||
u16 num_vals;
|
||||
u8 unk_2;
|
||||
le float pos[3];
|
||||
u8 player_idx;
|
||||
u8 rtt_ms;
|
||||
NetValue values[num_vals];
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
Packets are split into Data packets (map change, resources, chat message, etc) and entity (position?) updates
|
||||
|
||||
## Packet types
|
||||
|
||||
- 00: MapChange:
|
||||
- str map_name
|
||||
- str game_mode
|
||||
|
||||
- 01: Resource:
|
||||
- u8: unk
|
||||
- u16?: num_resources
|
||||
- [str: resource_name]*num_resources
|
||||
|
||||
- 02: Unknown (Keepalive?)
|
||||
|
||||
- 03: ChatMessage
|
||||
- str: message
|
||||
|
||||
- 04: UsrString:
|
||||
- str: data
|
||||
|
||||
- 05: Player join:
|
||||
- u8: player_id
|
||||
- str: player_name
|
||||
- str: ship_model
|
||||
- u16: max_health
|
||||
- str[4]: engine_models
|
||||
- str: pilot_model
|
||||
- str: loadout
|
||||
- u32: unknown
|
||||
|
||||
- 06: unknown
|
||||
- u8: ent_index
|
||||
|
||||
- 07: unknown (reload?)
|
Loading…
Add table
Add a link
Reference in a new issue