How to protect your server and client files?
by Jorge Luis Gandulfo · in Torque Game Engine · 04/14/2004 (9:52 pm) · 51 replies
There is any way i can protect my code?
I mean the scripts are there for all to see and modify, also the exe contains both server and client code isnt that a bad thing to distribute?
I can protect the exe with some envelope software i bought, y can use enconding to protect scripts, but still is hard to make a protection for a MMO.
Any suggestions?
Maybe i have to get rid of some of the basic scripts, i dont know.
I mean the scripts are there for all to see and modify, also the exe contains both server and client code isnt that a bad thing to distribute?
I can protect the exe with some envelope software i bought, y can use enconding to protect scripts, but still is hard to make a protection for a MMO.
Any suggestions?
Maybe i have to get rid of some of the basic scripts, i dont know.
#2
04/14/2004 (10:11 pm)
What i dont really like is having all the img there also and let everybody modify em, but i cant think on a way torque can use filed/cabed/zipped/waded images...
#3
Your MMO should be designed so that even if the user knows about every file on their system, it's still secure.
04/14/2004 (10:30 pm)
And even if they are zipped/wadded/cabbed, what game engine have you seen that has kept its files from the public eye for more than a week? :)Your MMO should be designed so that even if the user knows about every file on their system, it's still secure.
#4
The only people that might have any use for this content are developers like yourself, using Torque, and if anyone in this community would be so stupid to steal your work and knock it off as their own you could easily slap 'em with a copyright violation suite...
Include a EULA in your game stating that any use of the content supplied with this game/software is restricted by law, that way you have clearly marked your intent.
Sure, there will always be people violating such EULAs, unfortunatly that is something we can't stop.
04/14/2004 (10:46 pm)
Jorge@ I don't honestly think you'll have a problem with people stealing the content of your game, a general gamer doesn't really care enough to take what you made and use it elsewhere.The only people that might have any use for this content are developers like yourself, using Torque, and if anyone in this community would be so stupid to steal your work and knock it off as their own you could easily slap 'em with a copyright violation suite...
Include a EULA in your game stating that any use of the content supplied with this game/software is restricted by law, that way you have clearly marked your intent.
Sure, there will always be people violating such EULAs, unfortunatly that is something we can't stop.
#5
So im a bit concerned atm, and wanted to protect my personal work as well.
Thanks for your tips
BTW i forgot to mention that there are great EXE envelope applications for WINDOWS, and they cost range from 10 to 100 Dollars, Good choice to avoid exe cracking and stuff.
04/14/2004 (10:50 pm)
Well guess you are right i guess i been a little paranoic thas all, the other day some wakos cracked trough hard key protection in a old version of a program i develop for my work.So im a bit concerned atm, and wanted to protect my personal work as well.
Thanks for your tips
BTW i forgot to mention that there are great EXE envelope applications for WINDOWS, and they cost range from 10 to 100 Dollars, Good choice to avoid exe cracking and stuff.
#6
You will not be able to protect your personal work by copy protection. That is ok. You don't care what people do illegally because if they start making money off of it (or even if they don't) you can sue them. If they do it somewhere where you can't get them legally, then the copy protection is probably not going to matter, either.
Repeat after me: "I want my game to be so succesful that cracks for it are on every warez site in the world."
Because if you look, all those games that have cracks distributed like wild fire, are the same ones that are making tens of millions of dollars. Civilization 3, Need For Speed, Splinter Cell, Command & Conquer. Marble Blast, one of the most popular titles on GG, doesn't even have any cracks to be found at all - the worst I could get my hands on was a "unlock all levels" cheat.
If you're doing an MMO, it doesn't matter anyway, because illegal users won't have access to new content or the service at all unless they pay you a subscription. In general, for an MMO, illegal copies can even be beneficial - EQ, for instance, just sets you up with a trial account if you're running an illegal copy, same as it does with a legal copy. I'm sure they see a few more subscribers that way than they would otherwise.
04/14/2004 (11:07 pm)
But they get cracked, too. Even Ignition gets cracked on occasion. 3d Studio Max gets cracked, and so do the latest hit games. Macrovision gets cracked, and so do no-name protection schemes that developers roll in a weekend.You will not be able to protect your personal work by copy protection. That is ok. You don't care what people do illegally because if they start making money off of it (or even if they don't) you can sue them. If they do it somewhere where you can't get them legally, then the copy protection is probably not going to matter, either.
Repeat after me: "I want my game to be so succesful that cracks for it are on every warez site in the world."
Because if you look, all those games that have cracks distributed like wild fire, are the same ones that are making tens of millions of dollars. Civilization 3, Need For Speed, Splinter Cell, Command & Conquer. Marble Blast, one of the most popular titles on GG, doesn't even have any cracks to be found at all - the worst I could get my hands on was a "unlock all levels" cheat.
If you're doing an MMO, it doesn't matter anyway, because illegal users won't have access to new content or the service at all unless they pay you a subscription. In general, for an MMO, illegal copies can even be beneficial - EQ, for instance, just sets you up with a trial account if you're running an illegal copy, same as it does with a legal copy. I'm sure they see a few more subscribers that way than they would otherwise.
#7
This is pretty depressing thing, im just planning ahead before i put hard efforts on it.
So protecting your exe from debuggers and stuff dont seems a bad thing for me, even when a good hacker can do the job, i hate when amateurs with a 10 dollars tool crack your work, that happened to me some with a multimedia software.
04/14/2004 (11:22 pm)
Well ben in an MMO i really have to protect the server code, friends of mine hosted UO server in their home.This is pretty depressing thing, im just planning ahead before i put hard efforts on it.
So protecting your exe from debuggers and stuff dont seems a bad thing for me, even when a good hacker can do the job, i hate when amateurs with a 10 dollars tool crack your work, that happened to me some with a multimedia software.
#8
If someone reverse engineers your application, you can't do anything about it. In the UO case, I believe it's even legal for them to do this, if they own a legal copy of the game. If I write my own version of, say, a halflife server, Valve can do nothing about it.
Your MMO needs to be succesful on the basis of its content and its community. The technology is challenging but ultimately irrelevant. Look at at all the MUDs on the internet. Most of them run off of the same few open source MUD engines. Yet many have dedicated playerbases and constantly growing worlds. What differentiates one from another? The technology is by and large the same. It's the people and the gameplay that makes them unique and valuable. And that can't be reverse engineered.
The UO server emulator projects took years of research and concerted effort to pull off. If your MMO ever becomes so popular that people do that, you should consider yourself lucky! And even for UO, the emulators are still fairly small compared to the "official" game. Every new feature that comes out, they have to play catch up; every change in protocol they have to reverse engineer.
As you say, copy protection can be bought. Focus on your game and having a solid design. These are the surest ways of making your game succesful. Most of the fixes you're looking at are just interim hacks to address insoluble problems. Popularity is the surest way to make things like copy protection fail to work.
Focus not on keeping your game from people, but on getting it out to the world.
04/15/2004 (12:07 am)
I had this discussion recently with someone else.If someone reverse engineers your application, you can't do anything about it. In the UO case, I believe it's even legal for them to do this, if they own a legal copy of the game. If I write my own version of, say, a halflife server, Valve can do nothing about it.
Your MMO needs to be succesful on the basis of its content and its community. The technology is challenging but ultimately irrelevant. Look at at all the MUDs on the internet. Most of them run off of the same few open source MUD engines. Yet many have dedicated playerbases and constantly growing worlds. What differentiates one from another? The technology is by and large the same. It's the people and the gameplay that makes them unique and valuable. And that can't be reverse engineered.
The UO server emulator projects took years of research and concerted effort to pull off. If your MMO ever becomes so popular that people do that, you should consider yourself lucky! And even for UO, the emulators are still fairly small compared to the "official" game. Every new feature that comes out, they have to play catch up; every change in protocol they have to reverse engineer.
As you say, copy protection can be bought. Focus on your game and having a solid design. These are the surest ways of making your game succesful. Most of the fixes you're looking at are just interim hacks to address insoluble problems. Popularity is the surest way to make things like copy protection fail to work.
Focus not on keeping your game from people, but on getting it out to the world.
#9
04/15/2004 (12:11 am)
Well guess you are right again, this is my first time going into the game industry, i guess i have lots to learn
#10
Just rip out the client code from the server and vice versa.
By placing anything in a cab file won't do anything.. if you can place it there, someone can open it.
04/15/2004 (12:24 am)
JorgeJust rip out the client code from the server and vice versa.
By placing anything in a cab file won't do anything.. if you can place it there, someone can open it.
#11
Matt
04/15/2004 (12:57 am)
This is an interesting thread. :) I have been thinking about this recently as well. While I understand that there is no way to keep somebody that is truly determined from changing or taking (anything, game or otherwise) your graphics etc. there are ways of keeping the casual person from getting in there. The point I am getting at is that I noticed once that Legends achieved their graphics and scripts into a different file format. How big of a change to the engine would it be to actually put the files into an achieve like that? Another questions that I have about this topic is about performance. Does zipping or in any other way compressing the graphics into a single folder have an adverse affect on performance?Matt
#12
( under both names ) have been for a LONG TIME!
That said, I agree anything other than a unique ID to play multiplayer on line is a waste of time and completely unenforceable.
04/15/2004 (7:43 am)
Quote:Marble Blast, one of the most popular titles on GG, doesn't even have any cracks to be found at allThen you don't know where to look Ben, there are cracks for Marble Blast ( under both names ), ThinkTanks and Orbz
( under both names ) have been for a LONG TIME!
That said, I agree anything other than a unique ID to play multiplayer on line is a waste of time and completely unenforceable.
#13
Torque OOP is such powerful that only doing a few modifications in resource manager allows it to access an memory stream for these internal files, I think I'll post a resource of it soon.
Of course it's just obfuscation, not security. :)
04/15/2004 (9:47 am)
What I have done is include all the .dso .mis and .cs inside the executable, this way at least there's no game logic hanging outside the .exe.Torque OOP is such powerful that only doing a few modifications in resource manager allows it to access an memory stream for these internal files, I think I'll post a resource of it soon.
Of course it's just obfuscation, not security. :)
#14
And it makes upgrading or bug fixes a nightmare, so as usual it does nothing but punish yourself and your legit end users as it doesn't stop anything illegal.
04/15/2004 (10:12 am)
Marcelo, I guess you know that just embedding .cs files as plain text is not anymore secure than having them 'outside' the .exe right? And it makes upgrading or bug fixes a nightmare, so as usual it does nothing but punish yourself and your legit end users as it doesn't stop anything illegal.
#15
So you develop normally and when it's time to generate a release version you just run a .bat and all necessary files will be included in the executable, then the executable gets compressed and "protected".
This way, to me it's easy to fix or modify the executable, but for the cracker it get much harder, since he can't directly modify anything.
04/15/2004 (10:45 am)
No Jarrod, I embed the file always as .dso (I've only mentioned .cs as any file can be included), and also I've created an automatic way to include the files inside the executable. So you develop normally and when it's time to generate a release version you just run a .bat and all necessary files will be included in the executable, then the executable gets compressed and "protected".
This way, to me it's easy to fix or modify the executable, but for the cracker it get much harder, since he can't directly modify anything.
#16
Any chance we'll see this as a resource anytime soon?
04/15/2004 (10:59 am)
Sounds nice Marcelo.Any chance we'll see this as a resource anytime soon?
#17
04/15/2004 (10:29 pm)
I guess in any case of paking the best should be to create a WAD like resource file, but using encrypting to put them inside, i can do that with some time, done it for a VB application i worked with.
#18
If it is above a certain threshold of interest, somebody will, and they'll find a way to do it.
Either way, why worry about it?
It boggles my mind how many indie developers waste so much effort on worrying about this when the big retail developers usually store everything right there in known formats (eg, quake3: zip files, jpg files, etc).
04/15/2004 (11:08 pm)
If your game's content falls below a certain threshold of interest, nobody will bother hacking out the storage formats.If it is above a certain threshold of interest, somebody will, and they'll find a way to do it.
Either way, why worry about it?
It boggles my mind how many indie developers waste so much effort on worrying about this when the big retail developers usually store everything right there in known formats (eg, quake3: zip files, jpg files, etc).
#19
I see it this way: Surely somebody that is determined to steal something out of my car will have no trouble breaking into it, that doesn't mean though that I'm keeping the doors unlocked and the windows down for everybody to serve themselves.
Again, I know that if someone wants to take my content they can surely do so, question for me is that not everbody poking around in my files can do so "just like that".
That's why the games being made with Torque ship the .DSOs to give their script some kind of protection. If that wouldn't matter at all to people they would simply ship their .CS files.
Matt
04/16/2004 (12:17 am)
I don't think that people posting in this thread have the illusion to be able to protect their content 100%. Of course someone determined to take your files will find a way to do so.I see it this way: Surely somebody that is determined to steal something out of my car will have no trouble breaking into it, that doesn't mean though that I'm keeping the doors unlocked and the windows down for everybody to serve themselves.
Again, I know that if someone wants to take my content they can surely do so, question for me is that not everbody poking around in my files can do so "just like that".
That's why the games being made with Torque ship the .DSOs to give their script some kind of protection. If that wouldn't matter at all to people they would simply ship their .CS files.
Matt
#20
For example: The game needs to be able to load all the assets, etc. Sure, you could encrypt a zip or something, but then you have to decrypt it, which means at some point there's going to be a key in memory, which means it can be cracked.
The only 100% protection is to not make the game at all. At the end of the day, its a balance between slowing down the inevitable and getting the game done.
Forget about copy protection for now, work on your game.
04/16/2004 (1:01 am)
The problem is simply that the game has to be able to run. Anything that the CPU can run, anybody with a bit of knowledge can reverse engineer.For example: The game needs to be able to load all the assets, etc. Sure, you could encrypt a zip or something, but then you have to decrypt it, which means at some point there's going to be a key in memory, which means it can be cracked.
The only 100% protection is to not make the game at all. At the end of the day, its a balance between slowing down the inevitable and getting the game done.
Forget about copy protection for now, work on your game.
Torque 3D Owner Willbkool