Anti-Cheating Mechanisms for Computer Games Michael Rudolph Jason Cook.

Slides:



Advertisements
Similar presentations
New Security Issues Raised by Open Cards Pierre GirardJean-Louis Lanet GERMPLUS R&D.
Advertisements

Online Game Security - Quake III and its Hacks - (related paper: A Systematic Classification of Cheating in Online Games, Jeff Yanand and Brian Randell.
Lecture 16 Buffer Overflow modified from slides of Lawrie Brown.
Mr. D. J. Patel, AITS, Rajkot 1 Operating Systems, by Dhananjay Dhamdhere1 Static and Dynamic Memory Allocation Memory allocation is an aspect of a more.
Operating System Security : David Phillips A Study of Windows Rootkits.
RIVERSIDE RESEARCH INSTITUTE Helikaon Linux Debugger: A Stealthy Custom Debugger For Linux Jason Raber, Team Lead - Reverse Engineer.
Day anti-virus anti-virus 1 detecting a malicious file malware, detection, hiding, removing.
1 Detection of Injected, Dynamically Generated, and Obfuscated Malicious Code (DOME) Subha Ramanathan & Arun Krishnamurthy Nov 15, 2005.
1 Code/DLL Injection ECE4112 – Internetwork Security Georgia Institute of Technology By Andrei Bersatti and Brandon Harrington.
Chapter 5: Common Support Problems
Hastings Purify: Fast Detection of Memory Leaks and Access Errors.
Chapter 8 Runtime Support. How program structures are implemented in a computer memory? The evolution of programming language design has led to the creation.
Status – Week 291 Victor Moya. Tracing 3D applications Three layers or levels for tracing: Three layers or levels for tracing: 3D Appl API Driver GPU.
Computer Security and Penetration Testing
Software Development and Software Loading in Embedded Systems.
CHAPTER 1: INTORDUCTION TO C LANGUAGE
Systems Software Operating Systems.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
Computer security virus, hacking and backups. Computer viruses are small software programs that are designed to spread from one computer to another.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
Viruses.
Malicious Code Brian E. Brzezicki. Malicious Code (from Chapter 13 and 11)
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
How To Fix Common Computer Errors m.
IT Essentials 1 v4.0 Chapters 4 & 5 JEOPARDY RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands RouterModesWANEncapsulationWANServicesRouterBasicsRouterCommands.
Open Source Software An Introduction. The Creation of Software l As you know, programmers create the software that we use l What you may not understand.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
By Anthony W. Hill & Course Technology1 Common End User Problems.
Computing Revision Notes. Index Software System Software Internet.
Software Software essential is coded programs that perform a serious of algorithms. Instructions loaded into primary memory (RAM) from secondary storage.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
The Program Development Cycle
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
An Introduction to Internet Explorer DLL Vulnerability and Damage Analysis Bo Sun, Dawei Su {sun,
Windows Vista Inside Out Chapter 22 - Monitoring System Activities with Event Viewer Last modified am.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
Virus Detection Mechanisms Final Year Project by Chaitanya kumar CH K.S. Karthik.
Administrative: Objective: –Tutorial on Risks –Phoenix recovery Outline for today.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
ONLINE GAME NETWORK TRAFFIC OPTIMIZATION Jaewoo kim Youngho yi Minsik cho.
Week 10-11c Attacks and Malware III. Remote Control Facility distinguishes a bot from a worm distinguishes a bot from a worm worm propagates itself and.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Challenges in KeyStone Workshop Getting Ready for Hawking, Moonshot and Edison.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
CINT C++ Interpreter update ROOT2001 at Fermi-Lab Masaharu Goto.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
Virtual Memory Virtual Memory is created to solve difficult memory management problems Data fragmentation in physical memory: Reuses blocks of memory.
CSCI Rational Purify 1 Rational Purify Overview Michel Izygon - Jim Helm.
Computer security virus, hacking and backups. Computer viruses are small software programs that are designed to spread from one computer to another.
Computer Software Types Three layers of software Operation.
1 MSTE Visual SourceSafe For more information, see:
"Most people, I think, don't even know what a rootkit is, so why should they care about it?" - Thomas Hesse, President of Sony's Global Digital Business.
Group 9. Exploiting Software The exploitation of software is one of the main ways that a users computer can be broken into. It involves exploiting the.
Lecture 5 Rootkits Hoglund/Butler (Chapters 1-3).
Candidates should be able to:  describe the purpose and use of common utility programs for:  computer security (antivirus, spyware protection and firewalls)
Page 1 Viruses. Page 2 What Is a Virus A virus is basically a computer program that has been written to perform a specific set of tasks. Unfortunately,
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
bugs-stopped-working-bsod-lag-for-the-game-project-cars.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.

Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.

Computer System Structures
INTRO. To I.T Razan N. AlShihabi
CSE775 - Distributed Objects, Spring 2006
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
Chapter 3: Windows7 Part 1.
Introduction to Computer Systems
Presentation transcript:

Anti-Cheating Mechanisms for Computer Games Michael Rudolph Jason Cook

Brief history of cheating  Cheats have been around about as long as video games have, but early on these were inserted by the developer to aid in debugging  Only become a problem when games were starting to be played over Internet around early to mid-90’s  Developer released patches to fix these cheats along with other bugs that may have been in the game  Anti-cheating mechanism a major concern for developers after Counter-strike created and released in 2000

Techniques for cheating  Hard coded hacks – earliest form of hacks, uses modified game files to cheat. Used in games as early as Doom because of the monolithic architecture of the game. Easily defeated by checking file sizes and config files for known cheats before joining game server  OpenGL driver hacks – modifies OpenGL graphics driver on client machine. Allows for wallhacks by altering driver so that they are drawn transparently, disabled smoke/flashbang effects, also disables “fog of war” in RTS games.  Client DLL hooks – most popular form of gaming hack now, due to its relative difficulty to detect. The game is loaded through an external client loading program, which injects or hooks DLL cheat instructions into game code at execution time. This is the type of cheat that will be covered in detail.

Why do games use.DLLs?  A dynamic link library (.DLL) is a collection of small programs, any of which can be called when needed by a larger program.  Saves space in memory because.DLLs don't get loaded into RAM with the main program. A.DLL file is loaded and run if and when needed..DLL files are dynamically linked with the program that uses them during program execution rather than being compiled with the main program.  When the functions in a.DLL change, the applications that use them do not need to be recompiled or relinked as long as the function arguments, calling conventions, and return values do not change. .DLLs provide a way to modularize applications so they can be loaded, updated, and reused more easily.  API’s such as OpenGL and DirectX implemented through.DLL’s.

How are client hooks developed?  Required knowledge of C/C++ programming and assembly – new would-be hackers often told to start learning C and ask again in a year  Knowledge of OpenGL and DirectX API’s also very useful  Some game develop SDK’s for the purpose of fostering a “mod community” – helps in finding out information for developing hacks  Not releasing SDK’s for games not necessarily a preventative measure for cheating – games have been hacked since original DOOM, when only relatively sparse user creation tools were created (custom skins, level builder, but no way to develop total conversions)  Tutorials available for creating DLL hacks  Client loading executables for injecting cheat code at runtime also available on Internet

Client Hook “detours” execution to do what the hacker wants to do then “trampolines” execution back to the program Picture from How a Client Hook Works

Solutions to cheats?  Obfuscate.dll files – Q3 based games have done this by changing them to.qvm files – hooks still available for games that use.qvm  PunkBuster – third-party utility used by many recent titles. Acts kind of like an anti-virus program in that it scans the game’s memory space for known hacks, and kicks players upon finding cheats  Early attempts to defeat PunkBuster attacked PB itself – EvenBalance responds by issuing a “global ban” on hard drives that have used PB attacks  Current hacks simply try to spoof PB to avoid this risk

End Result

 Constant back and forth battle between hackers and developers – hackers develop cheat, eventually is discovered and fixed by developers, hackers develop more sophisticated hack, etc.  Recent development – Quake III source code released under GPL August End of security through obscurity for Q3 engine?  Hacks still being developed for Q3 engine based games – new W:ET hacks released as recent as one week ago  Hacks for recent id games (Doom 3, Quake 4) few and far between – only OpenGL hacks available as of now. Conclusion