RMC Request Packet Format - zeroKilo/GROBackendWV GitHub Wiki
RMC Request Packet Format
these packets are contained in the DATA QPackets and have a common header but different payloads.
`
RMCPacket header{
ushort proto;
bool isRequest;
uint callID;
uint methodID;
byte[] payload;
}`
Example Decoding
48 00 00 00 8A 08 00 00 00 02 00 00 00 ...
- the first 4 bytes as UINT contain the size of the remaining bytes
- the protocol byte has multiple functions:
-
- the most significant bit (0x80) defines if its a request(=1) or a response(=0), the 7 other bits make up the protocol value
-
- if the protocol value is 0x7F (all bits on) then 2 additional bytes have to be read and interpreted as a 16bit protocol value
- then come 4 bytes as UINT containing the call id
- then come 4 bytes as UINT containing the method id
- the payload has to be processed depending on the protocol and the method id
Example Packet
`
10.11.2019 15:16:14 : [UDP Redirector] received : 3F 31 32 52 78 56 34 12 02 00 00 0D FF D8 28 73 9F 4C B8 E7 A2 73 B1 6A DA 3E E1 A1 90 46 3D 87 CC 36 F5 02 B5 27 96 10 8D D2 97 EA 24 57 9D 4C 7C 88 3A 0A 76 4C B9 66 09 09 38 E9 26 C9 86 73 E9 90 95 D9 B8 B1 54 56 B9 2C F7 1B 2A 85 07 6C 5D A4 50 42 E6 69 6D
10.11.2019 15:16:14 : [UDP Redirector] received : UDPPacket {
From : VPort[port=15 type=OldRVSec]
To : VPort[port=01 type=OldRVSec]
Flags : [FLAG_RELIABLE][FLAG_NEED_ACK]
Type : DATA
Session ID : 0x52
Signature : 0x12345678
Sequence ID : 0x0002
Part Number : 0x00
PayLoad : 48 00 00 00 8A 08 00 00 00 02 00 00 00 03 00 77 76 00 21 00 55 62 69 41 75 74 68 65 6E 74 69 63 61 74 69 6F 6E 4C 6F 67 69 6E 43 75 73 74 6F 6D 44 61 74 61 00 13 00 00 00 0F 00 00 00 03 00 77 76 00 01 00 00 05 00 74 65 73 74 00
Checksum : 0x6D
}
10.11.2019 15:16:14 : [UDP Redirector] received : UDPPacket { DATA ( R W )}
10.11.2019 15:16:14 : [RMC] Handling packet...
10.11.2019 15:16:14 : [RMC] Received packet :
[RMC Packet : Proto = Authentication CallID=8 MethodID=2]
[LoginCustomData Request : user=wv className=UbiAuthenticationLoginCustomData]
[Username : wv]
[Online Key : ]
[Password : test]`