A minimal CheatEngine implementation built with Rust and a terminal UI.
Great for CTF challenges! Search for strings by prefix and read larger memory regions:
This is a simple memory scanner that lets you find and change values in running programs. Think of it like the original Cheat Engine but way more basic and running in your terminal.
- Scan memory for 32-bit and 64-bit numbers and strings
- String scanning with prefix matching - search by prefix and read a specified size (useful for CTF challenges when you only know part of a string)
- Filter results by comparing old and new values
- Watch memory addresses in real-time
- Terminal-based UI using keyboard shortcuts
- macOS (tested on Apple Silicon with macOS Tahoe)
- Linux (tested on Ubuntu 20.04)
- Rust (latest stable version)
- Root access (required to read other programs' memory)
- Clone this repo:
git clone https://github.com/yourusername/cheat-engine-rs.git
cd cheat-engine-rs
- Build the project:
cargo build --release
- Run it (needs root):
sudo ./target/release/cheat-engine-rs
- Start the program with
sudo
- Pick a process from the list
- Do a first scan for a value
- Change the value in the target program
- Do a next scan to filter results
- Keep scanning until you find the right address
cargo test
First, build the example program:
cargo b --example simple_program
Then run root tests:
sudo su
CARGO_TARGET_DIR=/tmp/target-root cargo test -- --include-ignored
- Windows support
- More data types (floats, doubles, etc.)
- Separate UI and worker threads
- Speed up initial scan with parallel processing (rayon)
- Pointer scanning
- Save/load scan results
This program needs to read memory from other running programs. Operating systems don't let normal programs do this for security reasons. Running as root gives the needed permissions.
MIT