Marbar Wrote:GO doesn't support pre-compiled scripts
This statement isn't correct, G2O is supporting precompiled squirrel scripts.
http://www.squirrel-lang.org/squirreldoc...suretofile
You can generate the bytecode via this function using squirrel, or this one using squirrel with c++
http://www.squirrel-lang.org/squirreldoc...iteclosure
To prove my point, i had attached a bytecode script, try to load it just as regular script.
It registers a global function called "hello", which doesn't accept any arguments and doesn't return anything, just call the function and check the result.
You can download script from here
https://www36.zippyshare.com/v/K37vyNnm/file.html
Marbar Wrote:And no, you can't do the same in pure scripts
That depends what you mean, but surely similar security checks can be done on server side, as you've pointed out, there is only one advantage of using modules.
Efficiency. Still, using g2o scripts would give the 'decent' efficiency results, i don't that the difference in execution time would be that much big (sure, squirrel scripts are slower, but they aren't that much slow to detect speed hack).
Marbar Wrote:It's not an open source to make eventual bypass methods less obvious
Your method can be still reverse engineered, maybe it is hard, but not for someone experienced. And this approach has the other side of the medal.
One person (you) is currently developing the code, if your method works well, then everything is ok, the problem occurs when someone wants to improve your module, while you are no longer supporting it. Having both binaries (for client & server) experienced hacker can still figure out how everything works (and maybe even patch the module(s)), but this isn't very easy solution.
Marbar Wrote:Client scripts can also be manipulated while module contains some special algorithm to detect that it's loaded and in desired form
Everything on the client-side can be manipulated, even your module (ofc not the 'back-end' module). Hell, someone can even prevent your module from loading by simply deleting it, or replacing it with it's own version (if the server isn't checking the file hash, then someone can replace this module with the 'fake' one). Even if someone is checking the checksum, there are still easy ways to prevent your module from loading (someone can inject it's own dll and then take ownership of the loading module process via bytepatch hook). Those methods that i've mentioned are one of many, it's plenty ways to mess with the game on your own pc.
Marbar Wrote:No one can know for sure if I didn't include any malicious code into module. Same goes to GO, Windows, vaccines, etc.
That's true, still, making the module source available for public is propably the best solution, at least in my opinion (everyone has it's own opinion).