Version 1.0
Externally scan a process for signatures and dump the relative offsets to a header file which is easy to incorporate into your Visual Studio project. When an update is released for a game, you run the dumper to get the latest offsets.
Scrubs don't know how to pattern scan so they manually update their offsets in their game hacks after running an offset dumper like this.
- Put config.json in the same folder as the dumper.
- Run the game.
- If the game uses the source engine you should run GH-Offset-Dumper-64.exe if the game is 64 bits, or GH-Offset-Dumper-32.exe if the game is 32 bits, otherwise netvars will not be dumped. If the game does not use the source engine, you can use either one.
- Include the generated .hpp file in your project.
To use the dumper as a library in your project, you need GHDumper.h and json.hpp.
#include <fstream>
#include "json.hpp"
#include "GHDumper.h"
int main()
{
// load json
std::ifstream file("config.json");
auto config = nlohmann::json::parse(file);
// dump as std::unordered_map<std::string, ptrdiff_t>
auto signatures = gh::DumpSignatures(config);
auto netvars = gh::DumpNetvars(config, signatures);
// format files as std::string
auto hpp = gh::FormatHeader(config, signatures, netvars);
auto ct = gh::FormatCheatEngine(config, signatures, netvars);
auto xml = gh::FormatReclass(config, netvars);
// save files or do whatever
// ...
}
This dumper was inspired by hazedumper so thank you to frk1, rN' and the other contributors to that project.
I started learning Rust when messing with HazeDumper and I decided we needed a C++ version, I also wanted to extend the functionality.
GH Dumper will do the same thing as HazeDumper with the addition of dumping ReClass files and Cheat Engine Tables.
Our dumper uses the same json config file format, so they are interchangeable
- The main code is GHDumper.h
- If any value is missing from the output header file, it is possible the signature is outdated and thus the pattern scan returned 0.
- In CS:GO, joining a match may cause the dumper to fail. Restarting CS:GO should solve it.
- Make an internal version
- Add CSS functionality
- Other ideas to make it kewl
Thank you to frk1, rN' and the contributors to hazedumper
Thank you to nlohmann and the contributors of json.hpp
- The Game Hacking Bible - a massive 70 chapter Game Hacking Course
- Computer Science 420 - an eight chapter lecture on CS, Data Types & Assembly
- Binary Exploit Development - a 9 chapter series on exploit dev from a certified OSED
- Game Hacking Shenanigans - a twenty lesson Cheat Engine hacking course
- Python Game Hacking Course - 7 chapter external & internal python hack lesson
- Python App Reverse Engineering - Learn to reverse python apps in 5 lessons
- Web Browser Game Hacking - Hack javascript games with this 4 chapter course
- Roblox Exploiting Course - 7 Premium Lessons on Hacking Roblox
- Java Reverse Engineering Course - 5 chapter beginner guide
- Java Game Hacking Course - 6 Chapter Beginner Guide