Any specs available for the UDP server protocol?

Discussions about Coding and Scripting
Post Reply
User avatar
Gustavo6046
Godlike
Posts: 1462
Joined: Mon Jun 01, 2015 7:08 pm
Personal rank: Resident Wallaby
Location: Porto Alegre, Brazil
Contact:

Any specs available for the UDP server protocol?

Post by Gustavo6046 »

I've been doing experiments with an UT99 server and a Python UDP relay, and I found out that everytime I feed the server random data, it will reply with:

Code: Select all

00c0323301c03233024003400440054006400740084009400a400b400c400d400e400f4010401140124013401440154016401740184019401a401b401c401d401e401f4020402140224023402440254026402740284029402a402b402c402d402e402f4030403140324033403440354036403740384039403a403b403c403d403e403f4040404140424043404440454046404740484049404a404b404c404d404e404f4050405140524053405440554056405740584059405a405b405c405d405e405f4060406140624063406440654066406740684069406a406b406c406d406e406f4070407140724073407440754076407740784079407a407b407c407d407e407f4080408140824083408440854086408740884089408a408b408c408d408e408f4090409140924093409440954096409740984099409a40
(hex encoding)

Code: Select all

AMAyMwHAMjMCQANABEAFQAZAB0AIQAlACkALQAxADUAOQA9AEEARQBJAE0AUQBVAFkAXQBhAGUAaQBtAHEAdQB5AH0AgQCFAIkAjQCRAJUAmQCdAKEApQCpAK0AsQC1ALkAvQDBAMUAyQDNANEA1QDZAN0A4QDlAOkA7QDxAPUA+QD9AQEBBQEJAQ0BEQEVARkBHQEhASUBKQEtATEBNQE5AT0BQQFFAUkBTQFRAVUBWQFdAWEBZQFpAW0BcQF1AXkBfQGBAYUBiQGNAZEBlQGZAZ0BoQGlAakBrQGxAbUBuQG9AcEBxQHJAc0B0QHVAdkB3QHhAeUB6QHtAfEB9QH5Af0CAQIFAgkCDQIRAhUCGQIdAiECJQIpAi0CMQI1AjkCPQJBAkUCSQJNAlECVQJZAl0CYQJlAmkA=
(base64 encoding)

I wonder what that means. It also has a cryptical sequence, where one ASCIi character is followed by an at ("@") sign, that covers most of the ASCII spectrum.

Code: Select all

>>> print(buffer)
b'\x00\xc023\x01\xc023\x02@\x03@\x04@\x05@\x06@\x07@\x08@\t@\n@\x0b@\x0c@\r@\x0e@\x0f@\x10@\x11@\x12@\x13@\x14@\x15@\x16@\x17@\x18@\x19@\x1a@\x1b@\x1c@\x1d@\x1e@\x1f@ @!@"@#@$@%@&@\'@(@)@*@+@,@-@.@/@0@1@2@3@4@5@6@7@8@9@:@;@<@=@>@?@@@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@[@\\@]@^@_@`@a@b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@{@|@}@~@\x7f@\x80@\x81@\x82@\x83@\x84@\x85@\x86@\x87@\x88@\x89@\x8a@\x8b@\x8c@\x8d@\x8e@\x8f@\x90@\x91@\x92@\x93@\x94@\x95@\x96@\x97@\x98@\x99@\x9a@'
So I got curious, are there any specifications for the protocol Unreal uses in its multiplayer?

I tried connecting to the relay using the UT client, it didn't work, a Python relay isn't a good option for reverse engineering stuff. Too slow :(
"Everyone is an idea man. Everybody thinks they have a revolutionary new game concept that no one else has ever thought of. Having cool ideas will rarely get you anywhere in the games industry. You have to be able to implement your ideas or provide some useful skill. Never join a project whose idea man or leader has no obvious development skills. Never join a project that only has a web designer. You have your own ideas. Focus on them carefully and in small chunks and you will be able to develop cool projects."

Weapon of Destruction
Post Reply