https://github.com/willyjl/memsed
🔍 MEMory Search and EDit for Linux, inspired by Cheat Engine
https://github.com/willyjl/memsed
game-hacking in-portfolio memory-editor memory-manipulation memory-searching
Last synced: 8 days ago
JSON representation
🔍 MEMory Search and EDit for Linux, inspired by Cheat Engine
- Host: GitHub
- URL: https://github.com/willyjl/memsed
- Owner: WillyJL
- License: gpl-3.0
- Created: 2025-01-26T00:40:32.000Z (4 months ago)
- Default Branch: dev
- Last Pushed: 2025-05-05T03:39:12.000Z (18 days ago)
- Last Synced: 2025-05-05T04:31:23.803Z (17 days ago)
- Topics: game-hacking, in-portfolio, memory-editor, memory-manipulation, memory-searching
- Language: C
- Homepage:
- Size: 4.62 MB
- Stars: 95
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# MemSed
MEMory Search and EDit for LinuxHeavily inspired by basic Cheat Engine workflow (search value, make value change, search new value, save address and modify it)
> [!WARNING]
> This project is still a work in progress! \
> It should work for the most part, but adjust your expectations accordingly. \
> Check [TODO.md](TODO.md) for things yet to be implemented.
## System Requirements
- Linux (other platforms might be supported in the future) with `/proc` fs
- OpenGL 3.0+ capable GPU driver## Install
### Arch Linux
Thanks to [ImperatorStorm](https://github.com/ImperatorStorm), we have an [AUR package](https://aur.archlinux.org/packages/memsed-git)! \
Install with your favorite AUR helper, for example with `yay`:
```bash
yay -S memsed-git
```
Then, run from terminal with `sudo memsed`.### Universal Binary
Will work on most Linux distros, needs to be updated manually.
```bash
curl -Lo memsed https://github.com/WillyJL/MemSed/releases/latest/download/memsed
sudo install memsed -D -t /usr/local/bin/
rm memsed
```
Then, run from terminal with `sudo memsed`. \
If your distro does not support `/usr/local/bin/` in PATH, try `/usr/bin/` instead.## Building
### Build Requirements
- GCC
- CMake 3.20+
- GNU Make
- Python 3.10+ (for dear_bindings and GLAD generation)### Build Instructions
```console
git clone -j $(nproc) --recursive https://github.com/WillyJL/MemSed
cd MemSed
cmake --preset release
cmake --build -j $(nproc) --preset release
```
The executable will be located at `./build/release/memsed`## Development Tips
While developing, it is best to first configure with the `debug` preset:
```console
cmake --preset debug
```
Only need to run this (configure step) the first time, and when creating/deleting filesYou can specify a target in the `cmake` build command:
```console
cmake --build -j $(nproc) --preset debug -t run
```Perform a clean build by adding `--clean-first` to the build command too
Quickly start attached to debugger with:
```console
cmake --build -j $(nproc) --preset debug -t gdb
```### IDE Support
Configuration files are provided for VS Code and they rely on `clangd`
You will need to run a full build process atleast once before `clangd` picks up the compile DB
Press `Ctrl+Shift+P` and run `clangd: Restart language server` if things ever go wrong
### Project Structure
- `build/`: output and working directory for compilation
- `build/current/`: symlink to `build/debug/` or `build/release/`
- `lib/`: mostly generated code that the project depends on
- `lib/vendor/`: submodules used to generate code in `lib/`, or compiled as is
- `resources/`: assets used by the program, converted to C code in `lib/`
- `src/`: code specific to this project
- `src/process/`: platform-specific implementation of basic process primitives
- `src/thread/`: platform-specific implementation of basic thread primitives
- everything else in `src/` should be fairly platform-agnostic## ❤️ Support
If you enjoy this program please __**spread the word!**__ And if you really love it, maybe consider donating? :D> **[Ko-fi](https://ko-fi.com/willyjl)**: One-off or Recurring, No signup required
> **[PayPal](https://paypal.me/willyjl1)**: One-off, Signup required
> **BTC**: `1EnCi1HF8Jw6m2dWSUwHLbCRbVBCQSyDKm`
**Thank you <3**