From b0a0bcdeba1286c26e6e066d0ce68b770f779b56 Mon Sep 17 00:00:00 2001 From: RetroGameDeveloper <40120498+RetroGameDeveloper@users.noreply.github.com> Date: Sun, 11 Jan 2026 23:20:26 +0000 Subject: [PATCH 1/3] Update ProgrammingLanguages.md --- categories/tools/ProgrammingLanguages.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/categories/tools/ProgrammingLanguages.md b/categories/tools/ProgrammingLanguages.md index a3a4aa9f..d9eabd2f 100644 --- a/categories/tools/ProgrammingLanguages.md +++ b/categories/tools/ProgrammingLanguages.md @@ -60,7 +60,15 @@ C/C++ Compilers: * Turbo C++ * Microsoft Visual C++ -## Kernel Development +## Game Development in C/C++ + +### Let's Make: Dangerous Dave +[MaiZure](https://www.maizure.org/projects/lets-make-dangerous-dave/) contains a detailed project write-up and 10-part video series regarding the technical reconstruction of the classic game Dangerous Dave. This project demonstrates how to remake the game from scratch using C and SDL 2.0 while adhering to a minimal 1,000-line codebase to keep the implementation logic accessible. It covers critical development steps such as asset extraction, sprite rendering, and basic platformer physics, serving as an excellent case study for understanding game engine fundamentals. + +{% include link-to-other-site.html url="https://www.maizure.org/projects/lets-make-dangerous-dave/" description="MaiZure offers a technical deep dive into remaking Dangerous Dave, including a 10-part series and source code that reconstructs the classic game using minimal C and SDL." image="https://opengraph.githubassets.com/1/MaiZure/lmdave" title="Let's Make: Dangerous Dave" %} + + +## Kernel Development in C/C++ ### Make your own kernel from scratch... with C++! [Cinemint](https://www.youtube.com/@cinemint) Has a video on how he created a kernel with C++ and a bit of assembly: From 9b862deb6fa7c10211e03b8cf5785992e4311697 Mon Sep 17 00:00:00 2001 From: RetroGameDeveloper <40120498+RetroGameDeveloper@users.noreply.github.com> Date: Mon, 12 Jan 2026 13:47:05 +0000 Subject: [PATCH 2/3] Update Windows.md --- categories/consoles/Windows.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/categories/consoles/Windows.md b/categories/consoles/Windows.md index f878ebb9..9e786bac 100644 --- a/categories/consoles/Windows.md +++ b/categories/consoles/Windows.md @@ -1688,6 +1688,16 @@ The project focuses on modifying the original screensaver binary by patching out {% include link-to-other-site.html url="https://github.com/x86matthew/Playable3DMaze" description="x86matthew has released Playable3DMaze, a project detailing the reverse engineering and modification of the original Windows 9x ssmaze.scr binary to add user-controlled keyboard input." image="https://opengraph.githubassets.com/1/x86matthew/Playable3DMaze" title="Playable3DMaze: A playable version of Microsoft's old 3DMaze screensaver from Windows 9x" %} +--- +# Reverse Engineering + +## DRM + +### How To Hack A Denuvo Game +[Nathan Baggs](https://youtu.be/t_jyCBu0nUA) has a video detailing the reverse engineering process of an early version of Denuvo DRM in F1 2016. The content covers the VMP2 virtualization layer, hardware ID validation, and the development of custom tooling to handle obfuscation like jump flattening and dead store removal. It specifically demonstrates advanced techniques such as DLL hijacking, Vectored Exception Handlers (VEH) for silent patching, and dynamic binary instrumentation using Intel PIN to intercept hardware instructions like CPUID and RDTSC. + + + --- # All Posts From ff514d27ecd278eda6fad7bab323adead7eff7aa Mon Sep 17 00:00:00 2001 From: RetroGameDeveloper <40120498+RetroGameDeveloper@users.noreply.github.com> Date: Mon, 12 Jan 2026 14:14:00 +0000 Subject: [PATCH 3/3] Update Windows.md --- categories/consoles/Windows.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/categories/consoles/Windows.md b/categories/consoles/Windows.md index 9e786bac..eacdb6f4 100644 --- a/categories/consoles/Windows.md +++ b/categories/consoles/Windows.md @@ -1691,6 +1691,15 @@ The project focuses on modifying the original screensaver binary by patching out --- # Reverse Engineering +## DLL Injection and Hijacking +To execute custom code in a Windows game there are two primary methods for achieving this: DLL injection and DLL hijacking. + +DLL injection involves using an external tool to force a library into a running process, whereas DLL hijacking requires creating a replacement dll for a dll the game already uses, where you can either forward calls to the original dll or implement your own overrides. +For example by placing a custom-compiled d3d11.dll in the game's local directory, the game's executable loads this library instead of the system's version. +You then use a technique called function forwarding, by using LoadLibrary and GetProcAddress to pass legitimate graphics calls to the real system d3d11.dll. +This allows your code to initialize silently alongside the game, providing a stable environment to set up more advanced hooks. + + ## DRM ### How To Hack A Denuvo Game @@ -1699,6 +1708,7 @@ The project focuses on modifying the original screensaver binary by patching out + --- # All Posts