Coder Social home page Coder Social logo

game-reversing's Introduction

Beginner Learning Materials on Reverse Engineering Video Games

Here is a compiled list based on personally recommended learning materials to help people with the process of learning how to reverse engineer video games.
I hope it will help others spend more time learning and less time searching.

Majority of the collected resources here will be focused on reversing PC games on the Microsoft Windows operating system with x86 assembly in mind over x64 as it is easier to learn.

Reversing engineering video games is more often than not related to "game hacking", they come and go together so don't be surprised if some of the learning materials come from such sites/sources.

Recommended order to learn

  1. Learn how to search efficiently on Google, all your answers and resources are found on the internet
  2. Learn using Cheat Engine
  3. Learn about hexadecimal and binary numbering systems, and about computer memory in general
  4. Learn x86 assembly
  5. Learn C++
  6. Learn using IDA/Ghidra
  7. Learn basics of game programming
  8. Learn fundamentals of the Win32 API
  9. Learn the inner workings of Windows operating system, aka Windows internals
  10. Practice, practice, practice...

Software needed for reversing

It's not recommended to run any of these tools (especially Cheat Engine) while playing multiplayer games that have anti-cheat systems in place, unless you know what you are doing.

For starters get familiar with Cheat Engine, and either IDA or Ghidra.

Picking the right tools

Before getting to work on a game you must know your target, so it's important to gather some information such as:

  • What software technologies it uses
  • What programming language and compiler it had been developed with
  • Does it have any anti-reversing or anti-tamper technology in place
  • Is it running on any popular third-party game engines (Unity, Unreal Engine, Source Engine, etc.)

Games sharing the same engines often have really similar and recurring codebase that you can use to your advantage. For third-party game engines such as Unreal Engine or Unity there are a lot of custom tools online that can ease the process of reverse engineering.

Games coded in high-level interpreted/intermediate programming languages such as C# or Java are generally much easier to reverse engineer as compared to C/C++, due to the metadata not being lost as they aren't compiled into low-level machine code.

For Unity-based games (and for any other games developed with the .Net Framework) use dnSpy instead of IDA/Ghidra.

We are mainly going to focus on reversing games coded in C++ as it is still the gold standard in video game programming.

  • Examples of games made with C++:

    • Counter-Strike
    • Grand Theft Auto V
    • Fortnite
    • World of Warcraft
    • Tom Clancy's Rainbow Six Siege
    • Fallout 4
    • Borderlands
    • Rocket League
    • Destiny 2
    • ARK: Survival Evolved
  • Examples of games made with C#:

    • Genshin Impact
    • Beat Saber
    • Rust
    • Hearthstone
    • Subnautica
    • RimWorld
    • Hollow Knight
    • Cuphead
    • Getting Over It
    • Risk of Rain 2

Must-read beginner level materials

Must-watch youtube channels

Other really useful materials

Useful sites along the way

Keywords you want to learn about in general

  • Memory scanning
  • Memory editing
  • Memory patching
  • Pattern scanning
  • x86 assembly
  • x64 assembly
  • Process debugging
  • Disassembling code
  • Decompiling code
  • Function hooking
  • API hooking
  • Detouring functions
  • Dll injection
  • Internal cheats
  • External cheats
  • Threads
  • Windows PE format
  • Win32 API
  • Windows internals
  • Anti-debugging
  • Anti-reversing
  • Anti-tamper
  • Software packers
  • Software unpacking

game-reversing's People

Contributors

kovidomi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

game-reversing's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.