aXXo

References

Created • Last updated •
What's this about?

Overview

This page was originally named "resources", but as grimy86 (a good lad) pointed out, it may mislead people into thinking I'm affiliated to whatever I put here. So unless specified otherwise I'm not. Anything I put here is purely to list helpful resources which I may or may not have used in my previous work. All that matters is that it's pedagogically useful.

Some advice and links

Material

Game Hacking

Game Hacking is a polymath field. If you intend to learn it then you should already be comfortable with C++, data structures, Windows Internals and Reverse Engineering. Below I will list resources for each of these sections.

C++

To learn C++ nowadays you're very well covered. Like many people, I cannot emphasize enough how good learncpp.com is. Although since I know that many don't find reading for learning always very appealing, here's a couple of good YouTube content you should check out:

Data Structures

I'm not saying you should be a crazy competitive coder, but just at least having some basic knowledge of algorithms and data structures is important. Data structures even more:

Windows Internals

Windows internals consists of learning, well, how Windows works. As of writing this I'm working on my very own introduction to this subject, but until then resources are scarce:

  • Windows Internals books. This is an unavoidable series. After reading it I wouldn't say it's GREAT, but it being the only one of its kind it should be in your library.
  • Windows Kernel Programming, Second Edition. An amazing book by one of the co-authors of the Windows Internals book series. You can clearly see that the bad parts of that series are not his fault by reading this great creation.
  • Vergilius Project. A convenient database of present and past undocumented kernel structures from the Windows kernel.

Reverse Engineering

Reverse engineering is at the essence of game hacking. Firstly, you need all the beforementioned prerequisites. Then, you also want to be familiar with some assembly language. My recommendation is x86_64 Intel assembly. If you're working with desktop devices that's what you'll likely need. Overall, while this subject relies heavily on prerequisite theory, it's hard to really recommend resources for it as learning it is mostly done through practice. Here are some resources: