GUI or Script validation checks - Security
by Jules · in Torque 3D Professional · 02/22/2010 (8:37 am) · 3 replies
What would be the best way to ensure that the GUI or script (.cs or .dso) files are not replaced to bypass what is set?
Having zip or further encryption would be another security method, but if these are not present. Would you say implementing a verification check in the compiled exe/dll files for certain criteria being present, the best option?
Having zip or further encryption would be another security method, but if these are not present. Would you say implementing a verification check in the compiled exe/dll files for certain criteria being present, the best option?
#2
02/22/2010 (9:19 am)
Hi Thanks for your reply. I've already done the compileAll and removed various things from scripts, removed the .cs files. Someone with knowledge could just replace these dso files with compiled versions of their own .cs file to replace what is there (or from the torque demo). I think the best method would be authentication at each stage via a web server. But this would probably be a slow process, and resource hungry each time a verification takes place. Any other suggestions?
#3
02/22/2010 (9:33 am)
I need to understand .dso files a bit more - in a dedicated server environment, are dso files checked for comparison with a players installation of the game? Such as file size, from what I remember if art/mission in the days of TGE were not the same on the dedicated server you would need to download the latest version of the game. Not sure if this applies to dso files.
Associate Manoel Neto
Default Studio Name
Also, it's trivial to remove the ability of generating new DSO files. Look into the exec() and compile() console functions' source code. You can also do so without breaking the ability of executing the prefs file or have a separate function for loading prefs which is not capable of compiling and runs the prefs in "safe mode", where several things are not allowed in the script (declaring functions, packages and creating objects).