Page 1 of 2

Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 3:45 am
by +SanguineRose+
Greetings,
I am working on coding a MSL that will natively run on any platform.
Since I am running Linux the first version will be Linux followed by a
windows exe eventually. It should work with any Unreal based game
even the newer ones.

My goal is make it 100% stable and independant of Unreal so it can
run idealy on Linux. or anything else.

I just want to get a bit if feedback if I should continue the project?

It was a personal project that well became well un-interesting now.
If there is enough yeas I guess i'll finish it and it would be nice to
know someone actually appreciates it. :D

Edit:

Sourceforge Link: http://openmsl.sourceforge.net

Summary:


    Our goal is to create a Openly available and usable version of the MSL used by all Unreal Engine
based games. Hopefully we will create a more stable and secure MSL instead of the bug ridden MSL
built into the Unreal Engine. Security, Stability, and Usability are the three main objectives of this
project. The code being hopefully portable to almost all widely used Operating Systems including Linux,
BSD,  Solaris, Mac OS X, and Windows.

    The Alpha version has been released, there is very limited functionality and insane level
of debuging info printed to screen. It does not check the gametype or responses so do not expect
it to validate or tell between game types.
We plan on adding the following features:

  • Ban Control by IP or IP Range
  • Remote Admin by Secure Socks Encryption (ARC4)
  • limit the usage of external librarys / independant
  • Support of all Game Types
  • DoS/DDoS Resistance
  • Linux Daemon functionality
  • Win32 Services functionality



Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 4:06 am
by []KAOS[]Casey
er.. what exactly is an MSL? I cant find a solid definition really

Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 4:37 am
by +SanguineRose+
It is a depository of game servers aka "Master Server List"

Each server sends a "heartbeat" packet to the MSL with the game name.
In turn the IP and port of the server is added to a list of other servers.
The "Heartbeat" is send once approximately every 20 seconds.
When a server does not send a "heartbeat" it is removed from the
list of servers.

When the master server is queried the game name is included. For
unreal it sends "unreal" and in turn it replys with the IPs and ports of
all the servers. The game then querys all the servers. The MSL just
only keeps track of the IPs and the Port numbers for all the game servers.

Protocal summary:

* Master Server sends a challenge
* Game Client Encrypts the string and encodes it to BASE64 and
replys with the game name and a "list" command
* Master Server Sends all the IPs and Ports to the Game Client
for that game Type
* Game Client Querys all the IPs and Ports to get all the current
server info

Summary:
It keeps track of all the game servers.

Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 5:21 am
by []KAOS[]Casey
We do have a master server app, but it's not quite as functional as we'd like.. if you can do this it might end up being a lot better than the current one. So go for it, and you could add it to your resume anyway.

Also, I dont think the master server runs on linux at all so there is that advantage too

edit : I dont think unreal quite sends out heartbeats like that , you'd have to create it around the fact that a server would actively connect to it

Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 6:21 am
by +SanguineRose+
Image

:D

This is a beta screen shot. The interface is not too bad.
It will support remote-administration through encrypted
streams, selective banning, etc. basically everything I
can possibly think of that is useful i'm adding.

Basically the client and the server in the same exe.
By default it will only allow a remote admin from
the local host which is how the MSL admin works.
It will use the same encryption used for authentication
that the handshake uses because i'm lazy :D and its
sufficiant.

It will not be password-based. It will randomly
generate the 256-bit key independent of such a
"password" to increase its security considerably.

Any more features then the ones listed is welcome :D
More cool buttons to click the better ;)

As for the heartbeats:

Code: Select all

19:27:53.098612 IP 192.168.1.100.7795 > 207.38.11.174.27900: UDP, length 31
      0x0000:  4500 003b 0000 4000 4011 9dd1 c0a8 0164  E..;..@.@......d
      0x0010:  cf26 0bae 1e73 6cfc 0027 ba9d 5c68 6561  .&...sl..'..\hea
      0x0020:  7274 6265 6174 5c37 3739 335c 6761 6d65  rtbeat\7793\game
      0x0030:  6e61 6d65 5c64 6575 7365 78              name\deusex

Code: Select all

19:28:07.929592 IP 192.168.1.100.7795 > 207.38.11.174.27900: UDP, length 31
      0x0000:  4500 003b 0000 4000 4011 9dd1 c0a8 0164  E..;..@.@......d
      0x0010:  cf26 0bae 1e73 6cfc 0027 ba9d 5c68 6561  .&...sl..'..\hea
      0x0020:  7274 6265 6174 5c37 3739 335c 6761 6d65  rtbeat\7793\game
      0x0030:  6e61 6d65 5c64 6575 7365 78              name\deusex
I doubt this is different then Deus Ex. I will find my old copy of
unreal someplace and see but improbable a different protocol
or variation.


Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 6:22 am
by Smirftsch
unreal masterserver (227 version) runs on linux also :)

But some independent tool can't be wrong in any case

Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 7:06 am
by +SanguineRose+
unreal masterserver  (227 version) runs on linux also :)

But some independent tool can't be wrong in any case
and Open Source :D

Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 9:37 am
by GreatEmerald
Hmm, that screen reminds me of GRUB command line... Can you add the MSL to the MBR so only it would boot, without the OS? :D

Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 10:23 am
by +SanguineRose+
Hmm, that screen reminds me of GRUB command line... Can you add the MSL to the MBR so only it would boot, without the OS? :D
LOL! i'll look into it ;)

Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 10:25 am
by [§Ŕ] ŤhěxĐâŕkśîđěŕ
What programming language are you using to code it?

Re: Independant Unreal MSL Project

Posted: Wed Apr 08, 2009 7:00 pm
by +SanguineRose+
What programming language are you using to code it?
C :D

Re: Independant Unreal MSL Project

Posted: Sat Apr 11, 2009 2:13 am
by +SanguineRose+
To be lazy :D

http://dxa.deus-ex.net/forums/viewtopic.php?f=39&t=111

I will have the status posted there and also a download when complete
along with anything else.

Re: Independant Unreal MSL Project

Posted: Sun Apr 26, 2009 2:20 am
by +SanguineRose+
Ha Triple Posting! For I bring you a quick peak at the MSL.

Image

So does it look sexy enough?

Re: Independant Unreal MSL Project

Posted: Sun Apr 26, 2009 2:28 am
by KillerSkaarj
Yes it does, but I'm a bit concerned as to what "Hermaphrodite" is referring to :o

Re: Independant Unreal MSL Project

Posted: Sun Apr 26, 2009 2:39 am
by +SanguineRose+
Yes it does, but I'm a bit concerned as to what "Hermaphrodite" is referring to :o
I named each of the 3 child processes what randomly came to my
head. It was strangely that... Don't ask... lol...

Re: Independant Unreal MSL Project

Posted: Sun Apr 26, 2009 5:10 pm
by []KAOS[]Casey
I think he had one hell of a party the hours before he was coding..

Re: Independant Unreal MSL Project

Posted: Mon Apr 27, 2009 9:11 pm
by [§Ŕ] ŤhěxĐâŕkśîđěŕ
  ,ad8888ba,    ,ad8888ba,      ,ad8888ba,    88
 d8"'    `"8b  d8"'    `"8b    d8"'    `"8b   88
d8'           d8'        `8b  d8'        `8b  88
88            88          88  88          88  88
88            88          88  88          88  88
Y8,           Y8,        ,8P  Y8,        ,8P  88
 Y8a.    .a8P  Y8a.    .a8P    Y8a.    .a8P   88
  `"Y8888Y"'    `"Y8888Y"'      `"Y8888Y"'    88888888888

Re: Independant Unreal MSL Project

Posted: Fri May 08, 2009 10:22 am
by +SanguineRose+
http://sourceforge.net/projects/openmsl/

The Project has been sourceforged meaning Alpha release soon.

Re: Independant Unreal MSL Project

Posted: Mon May 11, 2009 7:26 pm
by +SanguineRose+
Double Post! YAY! :D

There is now a Alpha release that has limited functionality but it works.

Re: Independant Unreal MSL Project

Posted: Mon May 11, 2009 7:50 pm
by [§Ŕ] ŤhěxĐâŕkśîđěŕ
Looking forward to the beta. ;)

Re: Independant Unreal MSL Project

Posted: Tue May 12, 2009 7:30 pm
by Hyper
Interesting project.

For now, two questions:

If I want to get my Unreal server listed on a MSL master server, do I need to install extra software, or is it compatible with the Gamespy master server uplink protocol?

If I want to query a MSL master server with my Unreal client, do I need to install extra software, or is it compatible with the Gamespy master server querying protocol?

Re: Independant Unreal MSL Project

Posted: Wed May 13, 2009 7:00 am
by +SanguineRose+
Looking forward to the beta. ;)
It's not that bad lol... Technically there is 2 or 3 vulnerability in it because
I just shoved it together and called it Alpha. They will be fixed in Alpha
along with the rest of the no error checking or validation. :D (You HOPE
MEHAAHHA)
Interesting project.

For now, two questions:

If I want to get my Unreal server listed on a MSL master server, do I need to install extra software, or is it compatible with the Gamespy master server uplink protocol?

If I want to query a MSL master server with my Unreal client, do I need to install extra software, or is it compatible with the Gamespy master server querying protocol?
This is a server question... Ironical as I am about to say.. The OpenMSL
has nothing to do with servers or running them, you don't need it. Most
poeple wont even need it unless you are deranged enough to run your
own MSL like maybe... *cough* Smirftsch *cough* ;)

As for question one:
No Extra Software, your settings are wrong or you are firewalled someplace.

Question two:
No Extra Software. Compatible.

Re: Independant Unreal MSL Project

Posted: Wed May 13, 2009 9:02 am
by Hyper
Looking forward to the beta. ;)
It's not that bad lol... Technically there is 2 or 3 vulnerability in it because
I just shoved it together and called it Alpha. They will be fixed in Alpha
along with the rest of the no error checking or validation. :D (You HOPE
MEHAAHHA)
Interesting project.

For now, two questions:

If I want to get my Unreal server listed on a MSL master server, do I need to install extra software, or is it compatible with the Gamespy master server uplink protocol?

If I want to query a MSL master server with my Unreal client, do I need to install extra software, or is it compatible with the Gamespy master server querying protocol?
This is a server question... Ironical as I am about to say.. The OpenMSL
has nothing to do with servers or running them, you don't need it. Most
poeple wont even need it unless you are deranged enough to run your
own MSL like maybe... *cough* Smirftsch *cough* ;)

As for question one:
No Extra Software, your settings are wrong or you are firewalled someplace.

Question two:
No Extra Software. Compatible.
I mean, if you run an Unreal game server. By default, it only uplinks a heartbeat to the Gamespy master server. Other master servers can also be uplinked to via the Gamespy protocol. (Via Unreal Advanced options.)

I guess that your MSL server is compatible with the Gamespy protocol, so you only have to add a ServerActor line for the MasterServerAddress of any MSL master server.
Can you confirm this?

Re: Independant Unreal MSL Project

Posted: Wed May 13, 2009 7:01 pm
by +SanguineRose+
Yes you can add it in Unreal.ini as a serveractor exactly as the GameSpy
Master Server, just copy the line and put it underneath the GameSpy actor
and point it to what MSL you wish.

Yes it works exactly like the GameSpy MSL. (Not Exactly yet but it works exactly like it ;) )

Yea I can confirm that...

Re: Independant Unreal MSL Project

Posted: Mon May 18, 2009 1:09 am
by +SanguineRose+
In about 2 days a new msl is going up at master.openmsl.net running OpenMSL Beta. I have not released the Actual stable Beta yet
because i'm using this new MSL running OpenMSL Beta for testing purposes primarily. Try to crash and abuse to your enjoyment but
DoS or DDoS will not be tolerated, if you choose to do so you can be the first victim of its dynamic attack detection and blocking
algorithms for such attacks.

I am not running it on Windows or a Linux system if anyone is wondering.