A memory scanner and editor for macOS, similar to Cheat Engine but built specifically for Mac with a powerful command-line interface.
- Process attachment and memory scanning
- Value searches (exact match, greater/less than, changed/unchanged)
- Memory region mapping and analysis
- Memory reading, writing, and real-time watching
- Support for multiple value types (byte, short, int, long, float, double, string)
- Filter results through multiple scan iterations
- Colorized CLI output for better readability
- Save and load scan results
- macOS 10.13 or higher
- Xcode Command Line Tools or similar C++ compiler
- Root privileges (sudo)
- SIP must be disabled (see below)
MacMemory requires SIP to be disabled to access process memory on macOS:
- For Apple Silicon Macs:
- Shut down your Mac completely.
- Start it and continue holding the power button until the Recovery menu appears.
- Once in Recovery Mode, open Terminal from the Utilities menu.
- For Intel Macs:
- Restart your Mac and hold Command+R during startup to enter Recovery Mode.
- Once in Recovery Mode, open Terminal from the Utilities menu.
- Run:
csrutil disable - Restart your Mac normally.
Warning: Disabling SIP reduces system security. Consider re-enabling it (csrutil enable in Recovery Mode) when you're not using MacMemory.
A pre-built universal binary (supporting both Intel and Apple Silicon Macs) is available in the dist/macmemoryfat directory. This is the easiest way to get started:
# Navigate to the repository
cd macmemory
# Make the binary executable if needed
chmod +x dist/macmemoryfat
# Run with sudo
sudo ./dist/macmemoryfatNote: The pre-built binary might not work on all macOS versions and configurations. If you encounter issues, please build from source as described below.
git clone https://github.com/adidev29/macmemory.git
cd macmemory
makeTo build for both Intel and Apple Silicon Macs:
make clean
make fat- Create a new Command Line Tool project
- Replace the default main.cpp with MacMemory code
- Set C++ Language Dialect to C++17
- Add
-framework Foundationto Other Linker Flags - Build the project
sudo make installThis installs MacMemory to /usr/local/bin/ so you can run it from anywhere.
Due to macOS security model, MacMemory needs to be run with root privileges:
sudo macmemoryMacMemory> ps # List processes
MacMemory> attach 1234 # Attach to process with PID 1234
Game(1234)> scan int 100 # Find all int values of 100
Game(1234)> results # Show results
Game(1234)> next int 101 # Filter for values that are now 101
Game(1234)> write 0x12345678 int 999 # Write 999 to address
Game(1234)> detach # Detach from process
MacMemory> exit # Exit program
ps- List running processesattach <pid>- Attach to a processdetach- Detach from current processinfo- Show process information
regions- List memory regionsscan <type> <value> [comparison]- First scan- Types: byte, short, int, long, float, double, string
- Comparison: exact, greater, less
next <type> <value> [comparison]- Next scan- Additional comparisons: changed, unchanged
results [limit]- Show resultsread <addr> <type>- Read valuewrite <addr> <type> <value>- Write valuewatch <addr> <type> [interval]- Watch for changes
save <filename>- Save resultsload <filename>- Load results
- Start with broad scans and narrow down with
nextscans - Use the "changed" or "unchanged" filters to track variables
- Pay attention to memory region permissions (RWX)
- For games, look for common value types (health = int, timers = float)
- Use
watchto confirm you've found the right memory location
MacMemory is for educational purposes, game modification, and process analysis. Only use on applications you own or have permission to modify. Usage on protected applications or those with anti-cheat mechanisms may violate terms of service.
- Some processes are protected by SIP even when disabled
- 32-bit apps may have different memory layouts than expected
- Sandboxed apps have additional restrictions
- Not all memory regions can be accessed even with root privileges
MIT License - See LICENSE file for details.
Created by Adrian Maier