🐨 Koalageddon 💥
Legit DLC Unlocker for Steam, Epic, Origin, EA Desktop & Uplay (R1)
Welcome to the Koalageddon repository. For user-friendly introduction or support, please check out the official forum thread. This document is meant for software developers.
🆕 Version 2
Check out the next major version of Koalageddon, currently in development, at this repository.
The informaion below is for version 1.
🗜 Solution Projects
🧰 Common
This project is a static library that houses common functions of all other projects. For example, all projects need to access config file and logging utilites, so they are defined in this module.
💉 Injector
This project is a simple DLL injector executable. The injector can be used as a command line utility that accepts 2 arguments: ID of the process which should be injected and DLL to inject.
🔗 Integration
This project is a dynamic library that pretends to be version.dll
. Nothing much going on here except for loading of the unlocker module.
🧙🏼 Integration Wizard
This project is a trivial GUI utility that automatically installs the integration files and copies the original ones. The GUI is using Task Dialog available in Windows API.
🔓 Unlocker
This project is a dynamic library which performs the main function of Koalageddon - DLC unlocking. It monitors DRM DLLs using undocumented WinAPI functions and suspends new processes before injection using undocumented functions as well. Once target DLLs have been identified, appropriate functions are hooked using the great PolyHook 2 library. A total of 4 hooking techniques are used in this project.
🛠 Dependencies
The solution uses a number of third party dependencies, which are available via vcpkg. Projects in the solution are configured to use static libraries instead of dynamic. If you wish to build the solution yourself, you would need to install the following libraries:
The solution includes the install_vcpkg_dependencies.bat script, which installs all of the above-mentioned dependencies with a single command.
You can verify installations via vcpkg list
🔢 Versioning
This project is following semantic versioning schema.
The version information is stored in the following files:
- inno_setup.iss - Used by the setup installer.
- Integration.rc - Used by Integration DLL.
- constants.h - Used by Koalageddon binaries.
📄 License
This software is licensed under Zero Clause BSD license, terms of which are available in LICENSE.txt