Game Development Community

Has anyone reverse engineered a .cs.dso file yet?

by Sean Brockest · in Technical Issues · 02/18/2007 (7:33 pm) · 8 replies

I've been reading in 3DGPAI1, and it says that there is no way to make a .cs out of a .cs.dso

is that still true today? if history teaches us anything, "cant" is only a limitation of "havn't yet".

Is this a for sure thing? The last thing i'd want is for a person to decompile a .cs.dso, add in the "Alt C" line I'd removed, and be able to fly around annoying other players.

Maybe we should challenge some hackers to do it, if they cant, i can sleep easy :)

#1
02/18/2007 (7:50 pm)
If there's a will there's a way. Might as well not worry about it. You can add additional encryption using some resources on this site though.
#2
02/18/2007 (7:56 pm)
Your probably right, everythign get's hacked once in a while.

I just thought of another thing that might solve that though.

I know if i delete a .cs file, it uses the .cs.dso, but how much trouble is it to make the program not even TRY to find a .cs, and only use the .cs.dso?
#3
02/18/2007 (8:05 pm)
Yes, you could get the game to not accept reading any extensions besides .dso, but after the users decompile it, they will only rename it to whatever they want. You could go so far as to develop your own language format, wetc. to confuse people, but in the end itwill only take more time. There's always memory hacks that can change your code, etc.
#4
02/18/2007 (8:07 pm)
Also, if you haven't already, you might want to use the resource that removes the main.cs in you examples folder, so that it can't be seen. In fact, you could pssibly remove all the scripts, and just have them run in the code, but that defeats the purpose of the scripts, now doesn't it? =P
#5
02/18/2007 (8:11 pm)
I could knock up a .dso disassembler in a handful of hours. Decompiling back to a .cs is a different matter, but is probably not tremendously difficult. In any case, defeating either of those in a modified copy of Torque is pretty simple ... just change the dso format.

However, you don't need to reverse engineer the .dsos to do what you are saying. There are many ways to get Torque to run scripts and you can just stick the new/replaced code in those. Adding back things from stock Torque that have been removed is generally a less than 30 second job.

The "floaty cam" to which you refer is a server side thing. Since you say "Alt C line" I presume you just removed the key bind and left the server side code there. In which case, anyone who knew the correct server command could get into that camera mode simply by sending the command from the console. They could alternatively add back the keybind. The information to do that is available to anyone who knows how to download the Torque demo.

As an example of the above, ThinkTanks shipped solely with dsos and no provisions for modding. The TT community still managed to figure out how to mod the game with no help from the developers.

The correct solution is to write the server code such that it's not possible for a hacked client to cheat. Torque makes that easy and there are a ton of threads on this subject. I highly suggest you read them.
#6
02/18/2007 (8:30 pm)
@Tom: Saying that you could make a disassembler in a matter of hours just crushed my hope of ever being able to do it ;)

Jokes(?) aside though...

.cs.dso files can be read very very easily, if you have an idea of what they're doing its next to pointless to even bother pretending that they can't be reverse engineered. What Tom said is very true, security in your file format really isn't a good solution, imo it'd be a better idea to write code well enough that hacking it is next to impossible, with well written code if you release both sides of the source then you shouldn't be able to exploit much ;) I too think that its very possible to do in torque. Like my opinion matters anyway ;)

Cheers.
#7
02/18/2007 (8:33 pm)
A handful of hours was more of an exaggeration then a joke. It would mostly be a matter of copy/pasting from compiledEval.cc and writing some file I/O code. A fast typer could probably do it inside of an hour :)

T.
#8
02/18/2007 (8:47 pm)
That's all great info guys, thanks. One day when i'm actually using my own copy of torque (not fooling around with the demo) i'l read this thread again and put it all to good use.

Thanks again!