forked from ReScrap/Notes
		
	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