An injector that fetches version.json from a webserver, downloads a dll and injects it into the game.
To setup the build environment, run the following commands in your preferred terminal.
git clone https://github.com/Yimura/Injector.git --recurse
cd Injector
premake5 vs2019Get premake5 from here.
Then afterwards open Injector.sln and start coding.
This injector has 2 ways of functioning:
- Remote mode (webserver required)
- Local mode (inject without webserver)
If you only wish to use the local features just ignore this step and skip to Injector settings.
Requirements:
- Webserver
In the root of your webserver create a file called version.json, this file will tell our Injector what to do and if it should download a dll.
{
	"file": "menu.dll", // path to the dll file on the webserver starting from the root / is prefixed in the binary
	"version": "0.1.3", // human readable version number
	"version_machine": 13 // version number that the injector will compare against
}If you run the injector for the first time and no settings.json is present in the folder from which you executed the Injector it will create an example file.
{
    "application_mode": 0,
    "injection_direction": 0,
    "local": {
        "file": "./some_dll.dll"
    },
    "target_application": "wordpad.exe",
    "web_server": {
        "dll_provider": "http://example.com",
        "file": "latest.dll",
        "version": -1
    }
}| Name | Description | Value | 
|---|---|---|
| application_mode | If the injector runs locally or with a remote server. | WEB_SERVER=0&LOCAL=1 | 
| target_application | The process name of the application to inject into. | string | 
| local.file | The local path to a DLL. | string | 
| web_server.dll_provider | Web Server origin. | string | 
| web_server.file | The file name to save the DLL to locally. | string | 
| web_server.version | Machine version integer to compare with the remote version. | int | 
injection_direction is currently not implemented, but still exists for future API.
That's it.