Moon Injector is a modern, feature-rich DLL injection utility for Windows. It combines a highly responsive user interface built using Ultralight (HTML5/CSS3/Tailwind) and Dear ImGui (DirectX 11) with the injection capabilities of the BlackBone library.
⚠️ Important Note on Cloning/Downloading: Due to file size restrictions, theBlackBonesource folder is not included in this repository. To compile this project, you must download it directly from the official BlackBone GitHub Repository and place it manually inside the project's root folder as./BlackBone.
The application utilizes an offline SQLite database via SQLiteCpp to organize DLLs into customizable "Workspaces," allowing you to manage and deploy different injection targets with minimal effort.
-
Modern HTML UI Overlay: Rendered via Ultralight and TailwindCSS inside a DirectX 11 ImGui frame.
-
Workspace Management: Organizes your target DLLs.
-
Active Process Filtering: Instantly search through active system processes, showing details such as Process ID (PID) and architecture (x86 vs x64).
-
Multiple Injection Methods:
-
LoadLibrary (Standard): Standard Windows API injection. Does not require kernel drivers.
-
APC Injection: Leverages Asynchronous Procedure Calls to execute code within target threads.
-
Thread Hijacking: Suspends a target thread to redirect execution to load the DLL.
-
Manual Map (BlackBone): Manually maps the DLL into memory, bypassing standard API hooks. Includes optional features like Erase PE Headers and Hide VAD.
-
Driver Stealth (BlackBone): Uses kernel driver features for highly obfuscated mapping.
-
Auto-Inject: Automatically attempts injection as soon as a target process is selected.
-
In-App Logs: Live logging panel detailing the success or failure of each step during the injection cycle.
Moon Injector utilizes the BlackBone library to offer various levels of stealth and access. Because of Windows security policies, these methods are divided into user-mode (driverless) and kernel-mode (driver required):
- LoadLibrary, APC Injection, and Thread Hijacking generally run using standard Windows user-mode APIs.
- These do not require any configuration changes to your operating system.
- BlackBone (Manual Map) and BlackBone (Driver Stealth) require loading the BlackBone kernel driver (
BlackBoneDrv10.sys). - Because the driver compiled on your machine is unsigned, Windows will block it by default with the following error:
0xC0000428 (STATUS_INVALID_IMAGE_HASH)
To use these advanced methods, you must enable Test Signing Mode to allow unsigned developers' drivers to load.
To bypass the driver signature enforcement restriction during development and testing, follow these steps:
- Open Command Prompt as Administrator:
- Click the Start Menu and type
cmd. - Right-click Command Prompt and select Run as administrator.
- Enable Test Signing:
- In the command prompt window, input the following command and press Enter:
bcdedit /set testsigning on
- You should see the message:
The operation completed successfully.
- Restart Your Computer:
- Reboot your PC to apply the changes.
- Once restarted, you will see a small "Test Mode" watermark in the bottom-right corner of your desktop. This indicates that Windows will now permit unsigned testing drivers to run.
- Verify:
- Keep the
BlackBoneDrv10.sysfile in the same directory asMoonInjector.exe. - Run Moon Injector as Administrator, select BlackBone or Stealth injection, and perform the injection.
To Disable Test Mode: When you want to revert your system back to normal, open an administrator command prompt, run:
bcdedit /set testsigning offand restart your computer.
The project is configured using CMake. If you wish to build it from source, ensure you have the following SDKs placed in the correct directories (or update the paths in CMakeLists.txt accordingly):
- Dear ImGui (docking branch)
- Ultralight SDK
- Tinyfiledialogs
- SQLiteCpp
- BlackBone
- Dear ImGui:
C:/libs/imgui-docking - Ultralight SDK:
C:/libs/Ultralight - Tinyfiledialogs:
C:/libs/tinyfiledialogs - SQLiteCpp:
C:/libs/SQLiteCpp-3.3.3 - BlackBone: Local project workspace under
./BlackBone(Reminder: You must download this folder manually from GitHub and drop it here)
- Visual Studio 2019 / 2022 (with C++ Desktop Development payload)
- Windows SDK 10 / 11
- CMake 3.15+
- Launch the Injector: Ensure you run
MoonInjector.exeas an Administrator (required to access process memory for most injection types). - Workspaces:
- Click the + button in the workspaces column to add a new workspace.
- Highlight a workspace to view its associated DLLs.
- Select target DLLs:
- Click Add under the injection list and select the target
.dllfiles using the file dialog. - Click Save Changes to commit them to the local database.
- Choose Target Process:
- Use the process filter input to locate your target application.
- Select it from the list.
- Select Method and Inject:
- Choose your preferred injection method from the dropdown menu.
- Click INJECT to begin the procedure. Observe the status logs for real-time diagnostics.
This software is designed solely for educational purposes, software development debugging, and authorized security analysis. Using this tool to inject code into software without explicit permission is a violation of most terms of service and can be detected by modern anti-cheat systems. Use responsibly.
