UT99 Master Server address format

Post Reply
Higor
Godlike
Posts: 1766
Joined: Sun Mar 04, 2012 6:47 pm

UT99 Master Server address format

Post by Higor » Sat Mar 31, 2018 4:06 am

Has anyone tried seeing if it's possible to spoof the server's ip address when communicating with the master server?
The intent is not to try to exploit (I assume the server is already safe from that).

If the master server does indeed store the server address as a standard string instead of IP, then it's possible to send a resolvable hostname, or even a IPv6 address to it.
While the game has no support for IPv6 (that's not a problem to implement at all), hostname resolution can help servers with dynamic ip addresses.
ImageImage
Image unreal://23.111.157.138:7777
Image unreal://46.228.199.205:7788

User avatar
Feralidragon
Godlike
Posts: 5086
Joined: Wed Feb 27, 2008 6:24 pm
Personal rank: Work In Progress
Location: Liandri

Re: UT99 Master Server address format

Post by Feralidragon » Sat Mar 31, 2018 12:00 pm

While I don't know if it was ever tried, that would be a good question to ask to Darkelarious directly, since he made a master server of his own.
And even if the original master server only accepts IPs (IPv4), maybe his may accept something more already, or in the future if asked I would say.

Higor
Godlike
Posts: 1766
Joined: Sun Mar 04, 2012 6:47 pm

Re: UT99 Master Server address format

Post by Higor » Sat Mar 31, 2018 7:55 pm

[Turns on the batsignal]
@Darkelarious
ImageImage
Image unreal://23.111.157.138:7777
Image unreal://46.228.199.205:7788

User avatar
Hook
Masterful
Posts: 697
Joined: Tue Apr 22, 2008 11:21 pm
Personal rank: UT99 Promoter/Admin
Location: Minnesota USA
Contact:

Re: UT99 Master Server address format

Post by Hook » Sun Apr 01, 2018 12:21 am

Higor wrote:[Turns on the batsignal]
@Darkelarious
FYI Darkelarious has been pretty busy lately, but he could see this soon I would guess, as he generally responds to us within a few days or less when needed.
=Hook=(Member# 626)
Forums: http://hooksutplace.freeforums.net
UT99 Server -> CROSSBONES Missile Madness {CMM}

* Newest Versions of: PRO-Redeemers | PRO-SNIPER-Redeemers | PRO-SEEKER-Redeemers <-(the Original)
and Now with FOOD FIGHT and Frying Pan arena !!!
IP: 68.232.181.236:7777

User avatar
Darkelarious
Skilled
Posts: 162
Joined: Sat Feb 08, 2014 12:02 pm
Location: Phobos Moon
Contact:

Re: UT99 Master Server address format

Post by Darkelarious » Mon Apr 02, 2018 10:17 pm

Higor wrote:[Turns on the batsignal]
@Darkelarious
* Ropes in from the dark *

At the moment the 333networks masterserver looks at the UDP packet headers. Those can be spoofed as far as I know. But then the 333networks masterserver uses the secure/validate challenge to determine whether this server is reachable and legitimate before it can be added to the masterserver list.

Regarding IPv6 and hostnames; 333networks only stores IPv4 addresses in the database for now. I do not have a plan for IPv6 support, but I welcome suggestions for the implementation.

Higor
Godlike
Posts: 1766
Joined: Sun Mar 04, 2012 6:47 pm

Re: UT99 Master Server address format

Post by Higor » Mon Apr 02, 2018 10:37 pm

I've done my research on the epic games masterserver and news are bad.

It does store in string format, but it takes the ip address from the UDP headers too.
And when validating a server it will take said address without any form of hostname conversion.

@Darkelarious
Proposed update for 333networks:

- Game Server can send his heartbeat using an additional value: "\\hostname\\server.hostname.com"
- Master Server can detect and do the following:
-- Resolve address.
-- If address matches the packet's address, then store server in list as hostname (additional var?).
-- If address doesn't match or resolution fails, store the ip only.

UT Client's server browsers fully support hostnames so the game itself wouldn't need to be updated at all.
Also, when a client adds one of these servers to favorites, the entry will be saved with 'hostname' instead of 'ip'.

Also, you've probably noticed this in the server's uplink:

Code: Select all

	if( MasterServerAddress ~= "unreal.epicgames.com" )
		HeartbeatMessage = "\\heartbeat\\"$Query.Port$"\\gamename\\"$Query.GameName$"\\gamever\\"$Level.EngineVersion;
	else
		HeartbeatMessage = "\\heartbeat\\"$Query.Port$"\\gamename\\"$Query.GameName;
If you want to implement the \\gamever\\ key, let me know and I'll remove that conditional in a XC_Engine update (so all master servers receive gamever).
If you'd like additional keywords to be sent (333networks-only feature), now's the chance.
ImageImage
Image unreal://23.111.157.138:7777
Image unreal://46.228.199.205:7788

Post Reply