Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

Professional Opinions
Ask a Question
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

troubleshooting Question

Making sure I don't get fake screenshots (Anti-Cheat)

Avatar of soufi
soufi asked on
Game ProgrammingSecurity
5 Comments1 Solution1491 ViewsLast Modified:
I'm writing an anti-cheat client that monitors a user's system while they play games to make sure they aren't cheating. I realize this may seem unethical, but the idea is that the player will voluntarily install and run the client in order to participate in online leagues and tournaments (where cheating is becoming more and more common).

One of the measures I use to make sure the player isn't cheating is to periodically capture their screen. Many cheats allow users to see through walls or gain other similar unfair advantages. If I can spot these artificial enhancements in the screenshot, I've caught a cheater.

This method works wonderfully against most cheats, but fails against the superior ones. Expensive, subscription based cheats have started "spoofing" screenshots by hooking bitblt/stretchblt, disabling the cheat, and returning a "clean" screenshot, after which the cheat is reactivated. I've tried getting around this by using directx and the front buffer to capture the screen (since all the cheats I've studied only worry about bitblt/stretchblt, and now glreadpixels), but when I test this method in fullscreen games I get black screenshots.

To make matters worse, most "good" cheats run in kernel mode, making it a lot tougher to spot/control them. This is why I'm hoping I can find a way to insure real screenshots so I don't have to make a driver to scan for cheats. So, is it possible to keep these cheats from spoofing my screenshots (or get clean directx screenshots in full screen mode)?
Avatar of Wisdown
WisdownFlag of Brazil image

Our community of experts have been thoroughly vetted for their expertise and industry experience.

This problem has been solved!
Unlock 1 Answer and 5 Comments.
See Answers