Rates Given - Razor

Pages: [1]
1
Quake / Re: CleanCode Quake II has gone public!
Absurd Misconstrual of Scientific Principles or Evidence Absurd Misconstrual of Scientific Principles or Evidence
on August 09, 2014, 11:31:15 PM to R1CH
Given that most servers run Linux don't you think no Linux support is a bit of a step backwards?
2
Discussion / Jumpmod error issue
Rock On Rock On
on May 08, 2014, 01:23:59 PM to ex
This happens constantly and it's fucking annoying.  I'm in a server by myself, and I vote for a map, and it says "Needed votes - 0, voted:  1, vote passed."

Then on the next map, again in the server by myself, I try to vote another map, and it says "Needed votes - 1, voted:  0" and eventually fails.  This gets extremely irritating.  Can something be done to fix this?
3
/dev/random / Vortex (Q2 Mod) has its own Wiki page!
Flawless Logic Flawless Logic
on May 28, 2013, 07:53:55 AM to decino
Kinda...:evilgrin:

Warning: the site itself may not be work safe, because some of the ads on the left may contain pr0n.
You have been warned!

http://encyclopediadramatica.com/Vortex

The page may be funnier for the people that actually play Vortex, but o well. It may be a bit offensive as well.
4
Quake / Re: Open source, cross-platform anticheat
Frag Hall of Fame Frag Hall of Fame
on April 16, 2013, 05:49:23 AM to hifi
Hello,

I felt I had to comment on this too as jdolan mentioned my name in the first post.

It's a good thing everyone are pondering about the possible security problems with the system as it is essential to know the potential weaknesses of it before writing a single line of code. Even when (if we ever start working on it) it is finished, we must know all ways to bypass it as it will define the level of security we have.

That said, in my opinion the only function of the "anticheat" would be to validate that the actual client executable that is executed is one of the officially released ones. Meaning there is no antihack measures in it at all because it would require substantial amount of work and obfuscation to keep it somewhat secure from hackers.

So, what I would like to see is just that, a guarantee the client source is not modified (source based hacks) and that the client is not a known cheat client, simple binary hashing with SHA-XYZ is enough. Bonus points for content hashing too.

The purpose of all this is to make it impossible for a less skilled programmer to bypass it. Requiring in-memory patching/injection to cheat is something that I consider outside the context of a simple verification tool. I think Valve's VAC works a bit like this by verifying the data is valid when connecting to a server even though it most definitely has more sophisticated anticheat measures too.

Big issue that has been already said is trusting the environment. I think the only way to work around that is to force the game itself to do all IO through the tool itself. That way file loading can be trusted as it goes through the anticheat and it can hash the files on-the-fly from fread() calls by the game. Doing this is quite simple on Windows and Linux, possibly on other platforms too.

One problem that I haven't yet figured out completely in my own head is how to verify and launch the client executable in a trusted way. We must consider IO to be hooked and untrusted. Doing that (hooking/proxying) is very simple on both mentioned platform with either DLL overrides on windows or LD_PRELOAD or LD_LIBRARY_PATH on Linux.

One way to solve this the client executable needs to be loaded through that untrusted IO, verified in-memory, then launched - from memory. This would mean we need to implement our own PE loading mechanism (there are examples on the net) for Windows and the same for ELF just to support two platforms. Is it worth it? Are there any better approaches to launch the client?

Overall, in my opinion, the environment must be considered untrusted to get even the slightest level of security and everything we need must be statically linked to have some sort of integrity.

Finally, at this point, I don't yet see it being secure enough as long as I can (theoretically) bypass it without even opening the debugger. I hope we can figure all these things out and get it implemented. Before that, it must go through many skilled programmers and hackers to determine bypassing is NOT trivial.
Pages: [1]