November 13, 2016 — by aixxe
As promised, here's the first in a series of follow-up posts on my initial 'introduction to Source hacking' post. This time we'll be adding the crucial missing feature from our skin changer: the ability to set custom knives.
October 28, 2016 — by aixxe
This time we'll be taking a look at osu! and more specifically the Relax modifier in the Standard gamemode. First off, we'll build a beatmap parser and then we'll use it to implement basic input automation externally. I'll be using C++ but any language that can read files and use Windows APIs should work just fine.
October 16, 2016 — by aixxe
Clan tags in Counter-Strike: Global Offensive are tied to groups you've joined in the Steam Community. These groups can either be public or require an invitation to join, on top of this, the tags are unique to each group so if you're not a member you won't be able to use that tag, right? Well.. not exactly.
September 28, 2016 — by aixxe
In this tutorial we'll be looking at CreateMove - the function of choice for anyone looking to manipulate player input. Specifically, we'll be looking at the CreateMove function defined in the IClientMode interface. I'll be going through one of the simpler methods of finding it, hooking it and finally creating a signature that should persist through game updates.
September 18, 2016 — by aixxe
In this post, I'll be touching on some of the concepts of internal hacking, specifically on Linux and how we can modify game behavior by reading, writing memory and intercepting function calls. This is mainly for those who already have some basic experience, likely with game hacking on Windows, and want to build existing or brand new projects on Linux.
September 10, 2016 — by aixxe
Recently I've been working on various projects for different Source games, all of which are loaded into the game process as a shared library. Everything works well, apart from when any changes need to be made to the code. Up until now I've been restarting the game every time I changed even a single line, simply because I wasn't sure how to unload the library. Fortunately, this is no longer an issue.