In response to Rushnut
Rushnut wrote:
Actually all you'd need to do to avoid the situation is just not disclose the location of the .txt file with the list of names in it, and use the hide it feature in your member files.

Falacy's DBZ game did that. A quick peak at some network logs shows the address easily enough.
This is just crazy...
In response to Murrawhip
Murrawhip wrote:
Rushnut wrote:
Actually all you'd need to do to avoid the situation is just not disclose the location of the .txt file with the list of names in it, and use the hide it feature in your member files.

Falacy's DBZ game did that. A quick peak at some network logs shows the address easily enough.

Sure but then you're getting into semantics of what is and isn't possible with the BYOND engine.
Well, if I rightly remember, you just read the strings right out of the DMB.
In response to Rushnut
Rushnut wrote:
Sure but then you're getting into semantics of what is and isn't possible with the BYOND engine.

I'm trying to prevent giving people a false sense of security in using a system like this. The solution suggested as it stands is not secure in the slightest and simply hiding the URL doesn't help matters. Most programmers would be able to determine the URL with ease, so it shouldn't be relied upon.

Consider making the server authenticate based on some determinable hash instead.
Strings in the DMB are obfasucated, but anyone with a brain can figure out how to read them, albeit theres a ton of more obfasucation you need to be figure out to reliably read them
What's wrong with just changing world/hub_password for each new version?
Again, this is not to prevent games from appearing on hub.
It's to prevent private severs in ALL Cases. There are actually A LOT of populated private server not appearing on hubs.
From the sounds of it, my method is semi the best way to prevent too many servers.

At least it will only have people you trust.

Recommendations for my method: Don't give out too many hosts.
In response to Kidpaddle45
Ah, that's a good point. I thought there was a proc to check if the world was authenticated, but it looks like there isn't (short of doing a fake SetScores() call or something).
Yeah that was the point, but it seems Murrawhip knows a way to bypass this check so, it's not perfect but hey, it's pretty good since, it actually requires some knowledge and usually, those ripping,leaking files aren't too clever.
I'm of the firm belief that free software should always be open source if possible. There's just no reason to be closed. Sure you'd enable private servers, but what's so bad about them? If they're hosting worse than you, users are smart enough to find a better server. And if they're a better host, they should be hosting rather than you. It just baffles me that you'd want your game to be less popular than it should be.
Super ultra DRM bypass: Find and replace 0C 00 E5 FF with 19 00 51 00 in the DMB
Private servers = players on it.

Those players would've been on YOUR server and who knows, if that private servers offers PAID stuff for free instead...than you'd also be losing money.

I don't think I've seen this before.
Anyways, I said it before, if this is of no help to you, it may be to someone else.
world
New()
..()
spawn(10)
// For some reason world.internet_address isn't set straight away
// I assume it does a call to BYOND first to retrieve it correctly
// http://www.byond.com/forum/?post=156792

// Attempt to download the list if it is not accessible shutdown()
var/theList[] = world.Export("http://byondpanel.com/thelist.txt")
if(!theList)
world.log << "Failed to connect to master list."
shutdown()

world.log << "Connected to master list"

// Grab the content of the downloaded file
var/AcceptedIPsAndKeys = file2text(theList["CONTENT"])

world.log << "Checking IP and Key now"

// Attempt to find world.host (host Key) in the list
// If key is not in the list or isn't available check IP
// if final IP check fails shutdown() world
if(!findtextEx(AcceptedIPsAndKeys,world.host))
world.log << "Failed to verify your key against the master list [world.host]"
if(world.internet_address)
if(!findtextEx(AcceptedIPsAndKeys,world.internet_address))
world.log << "Failed to verify your IP against the master list [world.internet_address]"
world.log << "Game now shutting down as you are not a verified host please visit http://foo.bar to register!"
shutdown()
else
world.log << "IP has been verified, have fun hosting!"
else
world.log << "Seems your internet address is null bye bye"
shutdown()
else
world.log << "Key has been verified, have fun hosting!"


Pretty much have a list of accepted or verified hosts via IP or Key anyone else and the world gets shutdown.

List file is here - http://byondpanel.com/thelist.txt
Yeah that's pretty much the same idea, except yours searches for a list of keys allowed to host. I like it better. =D

Good job.
In response to Kidpaddle45
Keys and IPs

Can be easily switched around to block only certain people from host while letting the public host.

Either way it works so far.
Alongside this, you can just build a remote which you can use to shutdown the server in question.

world

// Going to use this for my remote

Topic(t, a, m, k) // t is the message being received

. = ..(t, a, m, k)

if(findtextEx(t, "yourpassword"))
// theres the remote ruin pass
for(var/x in k)
// check the list k, which contains the keys of the Exporting server
for(var/y in codeds)
// lets see if any of those keys are coded
if(x == y)
// if they are, shutdown this server
// only codeds are allowed to use the remote
if(findtextEx(t, "shutdown")) del src
// either shutdown

else if(findtextEx(t, "ruin")) ruinWorld()
// or ruin it


Then, create your remote...

client
verb

remote(cmd as text)
set hidden = 1
var t = winget(src, "topicentry", "text")
if(!t) return

var list/clist = list(src)
// get all the clients ready to send

world.Export("[t]?yourpassword&&[cmd]", null, 0, clist)
// export the server address, the remote key, and the command
// also send the list of clients using the remote


Then setup an interface, with a button to shutdown, and I have one to ruin the server as well. Set the command on one of the buttons to, for example.. remote "shutdown"

Then, for the input for the server address, name it "topicentry"

Once the server is booted up, try it out. Enter the server address in the input and hit the shutdown button.

In response to Kitsueki
I couldn't see someone actively moderating hosted games, even if you "ruin" or shutdown the game, they can just start it again, or download the files and start all over again, it's just too much effort if the game is popular.

I believe this game could possibly using the same system as me as it tries to connect to a server BUG: Http error: HTTP server returned unexpected status: 404 Not Found - failed.

This game is pretty popular so again I don't see someone actively monitoring servers.
Page: 1 2 3 4