Memory Bandit is a Windows utility DLL designed for inspecting, analyzing, and manipulating the memory of the process it is injected into. It features a modern GUI built with Slint, allowing for easy interaction without the need for command-line tools.
- Process Information: View detailed information about the host process, including:
- Process ID, Parent Process, and Architecture (x64/x86).
- Security Context: User account, Elevation status, Integrity level, and Privileges.
- Loaded Modules: List of all DLLs and modules loaded in the process space.
- DLL Search Paths: Inspection of standard Windows DLL search locations.
- Memory Inspection: Read raw bytes from specific memory addresses.
- Memory Manipulation: Write byte sequences to memory addresses (useful for patching or testing).
- Architecture Support: Designed for 64-bit (x64) Windows, with experimental support for 32-bit (x86).
The project is organized as a Cargo workspace with the following crates:
dll: The main artifact. This crate compiles intomemory_bandit.dllwhich is injected into target processes.gui: Contains the Slint UI logic and window management.engine: Core logic for memory operations, process inspection, and Windows API interactions.shared: Common types, constants, and helper functions used across the workspace.loader: A helper executable to load the DLL for development and testing purposes.
- OS: Windows 10 or 11.
- Rust: Nightly toolchain is currently required (due to usage of the 2024 edition).
- Dependencies: Windows SDK and C++ build tools (usually installed via Visual Studio Installer).
-
Install the nightly toolchain (if not already installed):
rustup toolchain install nightly rustup default nightly -
Build the project:
cargo build --release
The resulting artifact memory_bandit.dll will be located in target/release/.
The project includes a loader crate that mimics a target process. This is the easiest way to test the DLL.
# Copy the built DLL to the directory where the loader expects it (usually root or target dir)
# Or simply run the loader which should pick up the DLL if configured correctly,
# typically you might need to ensure the DLL is in the same folder as the executable.
cargo run --bin bandit-loader --release- Build the project in release mode.
- Use your preferred DLL injector (e.g., Process Hacker, Xenos, etc.).
- Target the process you want to inspect.
- Inject
memory_bandit.dll. - The GUI window should appear immediately upon successful injection.
This project is licensed under the MIT License - see the LICENSE.md file for details.