 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
gage808 How do I cheat?
Reputation: 0
Joined: 15 Jul 2012 Posts: 2
|
Posted: Sun Jul 15, 2012 2:28 pm Post subject: C#/XNA Cheat Engine/HackTool Detection |
|
|
Hey guys,
I'm currently developing an MMO and we're just about to launch into Alpha. For the time being, the client is authoritative and as such, position hacking and speedhacking are a problem. I took a few hours to work on some basic encryption, but I haven't found any ways to prevent memory from being modified or detecting when memory doesn't match up (freeze value).
If you guys could link me some resources about detecting CE drivers, or any basic encryption that would deter the n00b hacker, that'd be great. It's really annoying that I can hook CE and hit speed hack and have it work, I want to figure out a way to detect it clientside. Need be I can do a packet interval check on the server and boot players that are hacking. What do you guys think?
Thank you for your time!
-Gage808
EDIT: I wrote a dumb little loop that runs in another thread that checks all of the process names and window titles. If it contains Cheat or Pack, it sends a Process.Kill() command. Super dumb and simple, but it kills cheat engine. You guys got any other dumb little tricks I can implement to annoy my Alpha testers?
|
|
| Back to top |
|
 |
Csimbi I post too much
Reputation: 97
Joined: 14 Jul 2007 Posts: 3326
|
Posted: Sun Jul 15, 2012 3:19 pm Post subject: |
|
|
If you need to worry about client-side hacks, CE is the least of your worries because obviously your design sucks.
CE is only a tool - any other tool (even a new or a specially tailored version of CE) can be used to exploit the flaw(s) the same way. You'll end up chasing ghosts.
My reply does not help, I know. But at least it gives you a hint to start from scratch because your design obviously broken (i.e. a client shall never be authoritative/trusted in any way).
During the alpha stage I would not worry about any exploits however. Alphas are meant to be broken, to "test the waters".
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25813 Location: The netherlands
|
Posted: Sun Jul 15, 2012 3:57 pm Post subject: |
|
|
| Quote: | | EDIT: I wrote a dumb little loop that runs in another thread that checks all of the process names and window titles. If it contains Cheat or Pack, it sends a Process.Kill() command. Super dumb and simple, but it kills cheat engine |
That would also kill your browser when it pops up an advertisement for cheating housewives and related. And is a great way to troll people on your game's support forum by setting specific titles. And pack? Package handler, packaging services, packed file manager, ...
Anyhow, the speedhack is easily detected. Let the client tell you it's current tickcount every few second, and if the difference between their time and the expected one gets too big it's a speedhack
As for memory edits having an effect on the game, you should be ashamed. Never design a game where you believe anything the client tells you. Sure, you can try to block it,add runtime integrity checks, but they are all easily bypassed if you got the know how . I can even edit my own systems ram without the need of any software, and make reads return something else then when it's executed (against noob cheaters it might work, but don't do more than necessary, as an advanced anti cheat will attract hackers that do it for the sport of it)
The only possible thing that kinda works is require people to give you their identity and you first confirm that before giving them access to the game. Then each time someone wants to play you send a team of goons to their place who enter a keycode specific for that session and then stand and watch the player as he plays the game. If they see he cheats they then beat the crap out of him
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
gage808 How do I cheat?
Reputation: 0
Joined: 15 Jul 2012 Posts: 2
|
Posted: Sun Jul 15, 2012 4:29 pm Post subject: |
|
|
We've got the infrastructure setup already for serverside movement and world simulation. I completely understand that trusting the client is silly. For now though, our goal is to get content pushed and figure out exactly what will be in the game before we start designing a serverside world that bogs down our machines. I'm not concerned in Alpha about players hacking for the most part, but in testing it's going to be a pain to see people speedhacking when we're trying to balance weapons.
I'll tweak the world filter to only search for Cheat Engine specifically. Just tested opening a cheat engine page (this one) and opening notepad (Cheat Engine.txt), but it's not closing it. I'm going to set it so that it just reports to the server that they're hacking and I should be able to just flag them for later. Passive systems work better, I think.
I'll check out that tick count thing. That sounds much more reliable and just overall better than this method, which I realize is very basic. There's a pretty big lack of C# client-side checks for CE or other tools on the net.
Again, I stress that this is in no way the final design. Once we have better servers we'll be designing everything to full function on the server. We're still in startup phase so renting a server that's a quad core to handle the players is not in our budget. Give me 6 months and I'll have it implemented. There's only 3 devs on the team and we're all college students.
Thanks for the feedback guys, I appreciate it.
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Mon Jul 16, 2012 4:34 am Post subject: |
|
|
| Having an authoritative client is a fundamental design flaw. You can essentially never trust what comes from the client. Continuing down this path in the expectation you will come back and 'fix' this later is at best a huge waste of your time. Similarly, attempting encryption and the like without proper server-side checks is simply security through obscurity. The correct way to do it is to properly sanitize all inputs from the client. For example, if you are expecting a client to not be able to perform a certain action more than once per X amount of time, make this check on the server! This is the only 'proper' way to prevent your game from being hacked. You should be moving as much of these sorts of checks to the server side as you can afford (bandwidth and server processing-wise).
|
|
| Back to top |
|
 |
atom0s Moderator
Reputation: 205
Joined: 25 Jan 2006 Posts: 8587 Location: 127.0.0.1
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|