Results 1 to 12 of 12

Thread: Anti-Cheat Engine

  1. #1

    Thread Starter
    Wait... what? weirddemon's Avatar
    Join Date
    Jan 2009
    Location
    USA
    Posts
    3,826

    Anti-Cheat Engine

    I wanted to get some insight from you all on if an Anti-Cheat Engine is possible to create in VB. I know that if it can be made, it would be a long and arduous task, but well worth it.

    I'd also like to know what features I would have to implement for it to be a good anti-cheat engine.

    Since there would be no GUI, would I just make it as a service? or would I make it as a normal app without a GUI? I think if I make it as a service, the User could just turn it off.

    The engine itself would be for a C++ game.

    Any information would be appreciated.

    Thanks
    CodeBank contributions: Process Manager, Temp File Cleaner

    Quote Originally Posted by SJWhiteley
    "game trainer" is the same as calling the act of robbing a bank "wealth redistribution"....

  2. #2
    PowerPoster cicatrix's Avatar
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,654

    Re: Anti-Cheat Engine

    I don't think an effective anti-cheat system can be made from outside. You should design an in-memory protection for your variables and this is hardly possible from another process.

    Besides, what would your service do if it detects a cheat attempt? I think such a system should be incorporated within the application.

  3. #3

    Thread Starter
    Wait... what? weirddemon's Avatar
    Join Date
    Jan 2009
    Location
    USA
    Posts
    3,826

    Re: Anti-Cheat Engine

    Quote Originally Posted by cicatrix View Post
    I don't think an effective anti-cheat system can be made from outside. You should design an in-memory protection for your variables and this is hardly possible from another process.

    Besides, what would your service do if it detects a cheat attempt? I think such a system should be incorporated within the application.
    I suppose that makes sense.

    However, I've seen a lot of games use third-party anti-cheat engines. So, I'd think it would be possible and effective enough.
    CodeBank contributions: Process Manager, Temp File Cleaner

    Quote Originally Posted by SJWhiteley
    "game trainer" is the same as calling the act of robbing a bank "wealth redistribution"....

  4. #4
    PowerPoster
    Join Date
    Apr 2007
    Location
    The Netherlands
    Posts
    5,070

    Re: Anti-Cheat Engine

    I am not sure on this, but I think any anti-cheat program 'out there' is built specifically for the game. Actually, it would be the other way around really, the game is built to support the anti-cheat program. That of course doesn't mean it's impossible, but the fact that there are probably very little (I don't know any) anti-cheat applications that work for just about any game probably tells you that it would be quite hard.

    For example, there's Punkbuster that is probably well known. It's an effective anti cheat engine, but it only works on games that support it. The game is built to support the anti-cheat engine; not the other way around.

    The last question above is another example: what would you do if you found a cheat? You can't really 'ban' him or something as you have no control over the game.

    If you have control over the game (meaning: either you are writing it, or you can 'ask' the author to add some kind of anti-cheat 'plugin' so that you can communicate with it) then it shouldn't be extremely hard.

  5. #5

    Thread Starter
    Wait... what? weirddemon's Avatar
    Join Date
    Jan 2009
    Location
    USA
    Posts
    3,826

    Re: Anti-Cheat Engine

    Well, yeah. I'll be able to interact with the devs.

    What most Anti-Cheat engines do is prevent the user from messing with the game, or modifying it. This can be as simple as preventing .DLLs from be loaded into the game, or preventing things such as "SendKeys" and the like. But you're probably right. More than likely, these type of things would have to be implemented within the game.
    CodeBank contributions: Process Manager, Temp File Cleaner

    Quote Originally Posted by SJWhiteley
    "game trainer" is the same as calling the act of robbing a bank "wealth redistribution"....

  6. #6
    PowerPoster cicatrix's Avatar
    Join Date
    Dec 2009
    Location
    Moscow, Russia
    Posts
    3,654

    Re: Anti-Cheat Engine

    The easiest way is to calculate some kind of a checksum of all your game variables and store it in encrypted form in two or three different locations. If the checksum is incorrect then the memory had been modified.

  7. #7
    New Member
    Join Date
    Dec 2009
    Posts
    13

    Re: Anti-Cheat Engine

    GameGuard operates as a rootkit, meaning it hides the game process.
    It detects if macros are using sendkeys.
    Punkbuster scans memory inside the game process, i.e it'll scan a range of memory address from the base to 0A828C1A, they check it in chunks on a timer, the check is checked against md5. so if a memory address is changed somehow, the person gets booted, this method prevents a range of game hacking techniques that are present today like code caving etc.
    Another simple feature, not totally effective, but all of em have it is to detect processes in memory, certain memory scanning software like tsearch, and CE, debuggers like ollydbg, typically the programs are forcibly crashed.

    also hardware banning is a must on preventing repeat offenders, hard drive serial(not volume), mac, cpu. its best to detect them and ban them one day every week, this way the offender thinks they have gotten away for a while, they are not sure if its detected, this means, the cheat developer thinks his/her cheat has worked, then decides to globally release it to the world, then you got 1000's of ppl wanting to use it, then before you know it they are all banned. quite clever and funny at the same time.

    you'll also need to implement protection of your own software, scanning the base to the end to check if any addresses have been modified.

    i'm afraid you'll have to cross over to the darkside to see how things are done, you'll also find out how alot of anti-cheat software works and operates.
    Last edited by moeb1us; Jan 30th, 2010 at 11:31 PM.

  8. #8

    Thread Starter
    Wait... what? weirddemon's Avatar
    Join Date
    Jan 2009
    Location
    USA
    Posts
    3,826

    Re: Anti-Cheat Engine

    Thanks for the information, moeb1us.

    I think I'm going to have a go at it and see what I get.

    One last thing. Should I use a service or a normal app with the GUI hidden?

    Thanks
    CodeBank contributions: Process Manager, Temp File Cleaner

    Quote Originally Posted by SJWhiteley
    "game trainer" is the same as calling the act of robbing a bank "wealth redistribution"....

  9. #9
    Frenzied Member toecutter's Avatar
    Join Date
    Apr 2006
    Location
    Brisbane, Australia
    Posts
    1,160

    Re: Anti-Cheat Engine

    What a friend of mine did was to use PB's list and then have a option to add players to a list.

    We are game admins for one of AU's biggest ISP and they are not allowed to provide PB etc with any gamers details so we had to design our own to scan our servers and keep the info private even tho we have evidence on many suspect players

    lol, actually my very first post on these forums was asking for help on this exact same thing.

  10. #10
    New Member
    Join Date
    Dec 2009
    Posts
    13

    Re: Anti-Cheat Engine

    what PunkBuster, VAC and GameGuard do is load itself as a module(.dll) to the game process, the game-devs do this on their end rather than the anti-cheat software attaching itself to the game process.
    although punkbuster has another service running in the background, its purpose is to make sure it smoothly runs in non-administrator mode on windows.

    .NET has some nice features, like getting info about processes and their modules, an idea feature would be using this function to check any abnormal .dlls loaded into your game process, gamehackers love injecting .dll's into game-processes.

    ooh i almost forgot, the best anti-cheat feature you can implement is screenshoting the users game interface and sending it to the game hosts server to be analyzed manually or if you're up to the task; automatically, its a good way of catching cheaters if they bypass your software, take care implementing this one, you don't want to tie up the gamers bandwidth too much.

    good luck
    Last edited by moeb1us; Jan 31st, 2010 at 09:31 AM.

  11. #11
    New Member
    Join Date
    Feb 2010
    Posts
    2

    Re: Anti-Cheat Engine

    This is possible, there is an old game called delta force black hawk down that is having an acp developed for it. it is being made in vb2008 .net
    http://www.bhd-evosoft.com

  12. #12
    New Member InfinitePride's Avatar
    Join Date
    Oct 2017
    Posts
    2

    Re: Anti-Cheat Engine

    Quote Originally Posted by weirddemon View Post
    I wanted to get some insight from you all on if an Anti-Cheat Engine is possible to create in VB. I know that if it can be made, it would be a long and arduous task, but well worth it.

    I'd also like to know what features I would have to implement for it to be a good anti-cheat engine.

    Since there would be no GUI, would I just make it as a service? or would I make it as a normal app without a GUI? I think if I make it as a service, the User could just turn it off.

    The engine itself would be for a C++ game.

    Any information would be appreciated.

    Thanks

    The only thing you can really do against memory editing would be to encrypt values, multiply them or what not... store them as diverse value types or link ingame values to other values and create checks to auto-correct.

    But anyone knowing their stuff will still hack it as long as you dont process vital data on an external server.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width