ISP Injector is a lightweight Windows DLL injection tool with a custom GUI built using DirectX 11 and ImGui. It allows you to inject and uninject DLLs into a target process (by default, rotmg exalt.exe) with a few simple clicks.
This was initially created for my Shaders project for the game "Realm of the Mad God" but turns out to be a helpful utility injector for whenever you need to inject DLLs into processes.
Note: The DLL you intend to inject must export an
UnloadDLLfunction to allow proper uninjecting. Injecting should work fine with all DLLs.
-
DLL Injection/Uninjection:
Easily inject and remove a DLL from a target process. -
Simple But Clean GUI:
A clutter-free, user-friendly interface built with ImGui. -
Automatic Process Detection:
Scans for the target process (e.g., "rotmg exalt.exe") and updates the UI status accordingly. -
DirectX 11 Rendering:
Uses Direct3D 11 for efficient rendering of the UI. Direct3D 11 was chosen because Realm of the Mad God happened to use the same API.
- Operating System: Windows 7 or later.
- Compiler: Visual Studio 2019/2022 or any C++ compiler that supports C++17.
- Dependencies:
- ImGui (included in the repository via the
backends/folder) - DirectX 11 (typically included with the Windows SDK)
- Windows SDK
- ImGui (included in the repository via the
-
Clone the Repository:
git clone https://github.com/humza1400/ISP-Injector.git cd ISPInjector -
Configure Dependencies:
- Ensure that the ImGui library (and its DirectX 11/Win32 backends) is properly referenced.
- The project automatically links against DirectX 11 and the required Windows libraries via
#pragma comment.
-
Build
- Choose your build configuration (Debug/Release) and compile the project.
- Run the Injector:
- Launch the built executable. The custom window will appear with the ISP Injector interface.
- Select a DLL:
- Click the Browse button to open a file dialog and choose the DLL you want to inject.
- Inject/Uninject:
- If the target process is detected, the Inject button will be enabled. Click it to inject your DLL. Once injected, the Uninject button becomes available. Click it to remove the DLL by calling its UnloadDLL export.
- DLL Requirements: The DLL you inject should export an UnloadDLL function. This function is used by the injector to safely remove the DLL from the target process.
- Error Handling: The code performs basic error checking (e.g., ensuring handles are valid and allocations succeed). In critical failure cases (like a failure to create the Direct3D device), a message box is displayed.
Contributions are welcome! If you have ideas for improvements or bug fixes, please fork the repository and open a pull request. For major changes, feel free to open an issue first to discuss your ideas.
