Skip to content

var77/cheat-engine-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CheatEngineRS

Cheat Engine RS Logo

A minimal CheatEngine implementation built with Rust and a terminal UI.

Demo

CTF Reverse Engineering Use Case

Great for CTF challenges! Search for strings by prefix and read larger memory regions:

CTF Demo

What is this?

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.

What it can do

  • 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

Supported Systems

  • macOS (tested on Apple Silicon with macOS Tahoe)
  • Linux (tested on Ubuntu 20.04)

Requirements

  • Rust (latest stable version)
  • Root access (required to read other programs' memory)

Installation

  1. Clone this repo:
git clone https://github.com/yourusername/cheat-engine-rs.git
cd cheat-engine-rs
  1. Build the project:
cargo build --release
  1. Run it (needs root):
sudo ./target/release/cheat-engine-rs

How to use it

  1. Start the program with sudo
  2. Pick a process from the list
  3. Do a first scan for a value
  4. Change the value in the target program
  5. Do a next scan to filter results
  6. Keep scanning until you find the right address

Running Tests

Standard tests:

cargo test

Tests that need root access:

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

TODO

  • 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

Why root?

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.

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages