MemSpy is a Windows-first memory scanner built with Python and PyQt6. It provides a desktop UI for attaching to running processes, searching for values in their address spaces, and keeping those discoveries organized for later reuse. The scanner supports common integer and floating-point types, live value refreshing, and pointer-chain discovery to make values stable across sessions.
- Process attachment: Browse running processes and attach to one to enable scanning.
- Value scanning: Search for Int8/16/32/64, UInt8/16/32/64, Float, Double, or String values with configurable scan conditions.
- Workspace management: Save interesting addresses to a workspace, track their current values, and move items between tables.
- Pagination for large scans: Results tables are paged and filterable so you can navigate large result sets efficiently.
- Pointer scanning: Discover pointer chains, page through pointer results, and import/export pointer scans for reuse.
- Configurable experience: Application settings (such as scan defaults and workspace behavior) can be adjusted through the Settings dialog.
- Windows 10/11 with permissions to open other processes (administrator rights are recommended for full access).
- Python 3.10 or newer.
- System dependencies listed in
pyproject.toml; install them withpipas shown below. (Windows-only packages such aspywin32andwmiare included conditionally.)
# From the repository root
python -m venv .venv
source .venv/Scripts/activate # or `.venv\\Scripts\\activate` in PowerShell
pip install --upgrade pip
pip install -e .If you prefer not to use an editable install, replace the last command with pip install ..
Activate your virtual environment (if used) and launch the UI:
memspyYou can also start the app directly with Python:
python -m memspy- Select a process: Use the process selector to pick the target process. Attach before starting a scan.
- Configure a scan: Choose the value type and condition, then run the scan. Results appear in the Search Address Table.
- Filter and page: Use pagination controls to move through results and apply filters to narrow them down.
- Save addresses: Double-click or use the workspace controls to add addresses you care about to the Workspace panel, where their values keep updating.
- Pointer scan: Kick off a pointer scan from the workspace or pointer table. Page through pointer chains, export them to a file, or import prior scans.
- Tweak settings: Open the Settings dialog from the menu to adjust scanning options and workspace behavior.
Run the automated tests with:
pytest- MemSpy relies on Windows APIs to inspect and manipulate other processes. Run it on Windows and close the application before shutting down target processes to avoid stale handles.
- Scanning large processes can take time; progress updates are shown in the status bar.