This project implements a Windows kernel-mode driver that provides memory manipulation capabilities across processes. It uses a registry callback mechanism to receive commands from user-mode applications and perform various operations such as reading/writing memory, changing memory protection, allocating memory, and retrieving module base addresses.
WARNING: This software is designed for educational purposes only. Using this driver in unauthorized ways may violate terms of service for games or applications and could potentially lead to bans or legal consequences.
The driver works by registering a callback for registry operations and intercepting specific registry write operations that contain command structures. These commands include a verification key (0x3c10bd66) to ensure only authorized applications can communicate with the driver. When a valid command is received, the driver performs the requested operation between the specified processes.
The driver uses Windows registry callback functionality to intercept registry operations. When a registry value is set with specific parameters matching the expected command structure, the driver processes the request.
- Read Memory: Copy memory from a target process to the requesting process
- Write Memory: Copy memory from the requesting process to a target process
- Change Protection: Modify memory protection settings in the target process
- Memory Allocation: Allocate memory in the target process
- Base Address Retrieval: Get the base address of a process or specific modules
Contains the core driver functionality including:
- Registry callback implementation
- Memory operation handlers
- Driver entry point and initialization
Defines the data structures used for communication between user-mode applications and the driver:
operation_typeenum defining supported operationsoperationstruct containing operation parametersoperation_commandstruct for complete command information
Provides utility functions for:
- Finding system modules and exports
- Process reference management
- Windows version detection
- PiDDB table cleaning (anti-detection mechanism)
Contains Windows structure definitions and function declarations needed for kernel operations.
Implements the FNV-1a hash algorithm used for string hashing operations.
Provides string encryption at compile-time to obfuscate string literals in the binary.
Implements memory pattern scanning functionality to find specific byte patterns in memory.
Contains structure definitions related to RAID functionality, which appears to be used for certain driver operations.
The driver uses registry operations as a covert channel for communication. User-mode applications write specially crafted data to the registry, which the driver intercepts. The data includes:
- A serial key (0x3c10bd66) for verification
- Process IDs for both the requesting process and target process
- Operation type and parameters
- Address where the driver should write operation results
Uses the MmCopyVirtualMemory kernel function to safely copy memory between processes.
Attaches to the target process context using KeStackAttachProcess and calls ZwProtectVirtualMemory to change memory protection settings.
Attaches to the target process context and uses ZwAllocateVirtualMemory to allocate memory with specified protection.
Accesses the Process Environment Block (PEB) of the target process to enumerate loaded modules and find specific ones like "UnityPlayer.dll" or "GameAssembly.dll".
The driver includes techniques to avoid detection:
- String obfuscation using XOR encryption (via xorstr.hpp)
- PiDDB table cleaning to hide driver loading information
- Minimal footprint in registry operations
This driver is designed to be loaded as a Windows kernel-mode driver. A user-mode application would communicate with it by writing specific data structures to the registry.
The project appears to be designed for building with Visual Studio. It likely requires the Windows Driver Kit (WDK) for compilation.
As a kernel driver, installation requires:
- Disabling driver signature enforcement or signing the driver
- Loading the driver using the Service Control Manager
To communicate with the driver, a user-mode application would:
- Create an
operation_commandstructure with appropriate parameters - Set the verification key (0x3c10bd66)
- Write this structure to a registry value
- Read the results from the memory location specified in the command
- The driver operates with kernel privileges and can access any process memory
- The verification key provides minimal security and could be extracted from the binary
- No additional encryption is used for the memory operations themselves
- The driver could potentially be detected by anti-cheat systems
This software is provided for educational purposes only. Usage of this driver to manipulate memory of applications without permission may violate terms of service and potentially laws depending on jurisdiction and usage.