
Una biblioteca Python pura que te permite inspeccionar, modificar y buscar la memoria de cualquier proceso en ejecución en unas pocas líneas de Python 🐍 .
# PyMemoryEditor
<!-- mcp-name: io.github.JeanExtreme002/PyMemoryEditor -->
Una biblioteca de Python puro (construida sobre [ctypes](https://docs.python.org/3/library/ctypes.html)) que te permite **inspeccionar, modificar y buscar en la memoria de cualquier proceso en ejecución con unas pocas líneas de Python** — ¡flujos de trabajo de Cheat Engine en Windows, Linux y macOS!
---
<p align="center">
<img src="https://raw.githubusercontent.com/JeanExtreme002/PyMemoryEditor/main/PyMemoryEditor/app/assets/icon.svg" alt="PyMemoryEditor logo" width="120" />
</p>
<p align="center">
<b>Lee, escribe y escanea la memoria de cualquier proceso — directamente desde Python.</b><br>
<i>Una API unificada. Tres sistemas operativos. Sin compilador de C. Sin paso de compilación nativa.</i>
</p>
<p align="center">
<a href="https://github.com/JeanExtreme002/PyMemoryEditor/actions/workflows/python-package.yml"><img src="https://github.com/JeanExtreme002/PyMemoryEditor/actions/workflows/python-package.yml/badge.svg" alt="Python Package" /></a>
<a href="https://codecov.io/gh/JeanExtreme002/PyMemoryEditor"><img src="https://codecov.io/gh/JeanExtreme002/PyMemoryEditor/branch/main/graph/badge.svg" alt="Coverage" /></a>
<a href="https://pypi.org/project/PyMemoryEditor/"><img src="https://img.shields.io/pypi/v/PyMemoryEditor" alt="Pypi" /></a>
<a href="https://github.com/JeanExtreme002/PyMemoryEditor"><img src="https://img.shields.io/pypi/l/PyMemoryEditor" alt="License" /></a>
<a href="https://github.com/JeanExtreme002/PyMemoryEditor"><img src="https://img.shields.io/badge/python-3.10+-8A2BE2" alt="Python Version" /></a>
<a href="https://pypi.org/project/PyMemoryEditor/"><img src="https://static.pepy.tech/personalized-badge/pymemoryeditor?period=total&units=international_system&left_color=grey&right_color=orange&left_text=Downloads" alt="Downloads" /></a>
</p>
<p align="center">
Funciona en <b>Windows</b> · <b>Linux</b> · <b>macOS</b> — 32 y 64 bits.
</p>
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/8411/aad09c3d92b7123b753fb1b9a7950622aac7d0f84f76b1992ca3e3defc4bf050.png" alt="PyMemoryEditor app attached to a running process" width="820" />
</p>
<p align="center">
Modifica un valor en un juego en ejecución · inspecciona el estado de un programa en vivo ·
extrae datos directamente de la RAM.
</p>
---
## Instalación
```bash
pip install PyMemoryEditor
```
Para instalar también la aplicación GUI incluida (un escáner estilo Cheat Engine), usa el extra `app`:
```bash
pip install "PyMemoryEditor[app]"
pymemoryeditor
```
Para escaneos más rápidos en procesos grandes, añade el extra `speed`. Incorpora NumPy
y vectoriza automáticamente el bucle de comparación de escaneo numérico — ~10–30× más rápido en
escaneos selectivos:
```bash
pip install "PyMemoryEditor[speed]"
```
Para permitir que un asistente de IA controle la biblioteca a través del Model Context Protocol, usa
el extra `mcp` (ver [más abajo](#let-an-ai-assistant-do-it-mcp)):
```bash
pip install "PyMemoryEditor[mcp]"
```
📖 Guía completa en **[Read the Docs](https://pymemoryeditor.readthedocs.io)**.
---
## Míralo en acción
```python
from PyMemoryEditor import OpenProcess
with OpenProcess(name="game.exe") as process:
# Scan the whole process for every address holding the value 100.
for address in process.search_by_value(int, value=100):
print(f"Found at 0x{address:X}")
# Read the current value, then write a new one back.
current = process.read_int(address)
process.write_int(address, current + 500)
```
Eso es todo — lee, escribe o escanea otro proceso en tres líneas, de la misma forma en todas las plataformas.
---
## Deja que un asistente de IA lo haga (MCP)
PyMemoryEditor incluye un **servidor Model Context Protocol**, para que un asistente de IA pueda ejecutar todo el bucle por sí mismo:
> *"Encuentra el valor de salud en mi juego. Ahora mismo es 100."*
>
> Escanea, te pide que recibas daño, refina las coincidencias y te entrega la dirección.
```bash
pip install "PyMemoryEditor[mcp]"
claude mcp add pymemoryeditor -- pymemoryeditor-mcp
```
O en cualquier cliente que lea el JSON de `mcpServers` (Claude Desktop, editores, …):
```json
{
"mcpServers": {
"pymemoryeditor": {
"command": "pymemoryeditor-mcp",
"args": []
}
}
}
```
Catorce herramientas cubren todo el flujo de trabajo, con los resultados del escaneo guardados en el servidor tras un handle, de modo que un primer escaneo con 40 000 coincidencias cuesta unos pocos tokens en lugar de todo tu contexto.
Lee la [guía de MCP](https://pymemoryeditor.readthedocs.io/en/latest/mcp.html) para saber más.
---
## 📖 Documentación
La documentación completa está en **[pymemoryeditor.readthedocs.io](https://pymemoryeditor.readthedocs.io)** — instalación, el flujo de trabajo de Cheat Engine, cada método y parámetro, la guía de la aplicación GUI, notas de plataforma y solución de problemas.
Un mapa rápido de por dónde ir:
<table>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/quickstart.html"><b>Inicio rápido</b></a></td><td>Abre un proceso, lee, escribe y ejecuta tu primer escaneo.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/searching.html"><b>Búsqueda en memoria</b></a></td><td>Escaneos por valor, rangos, refinamiento de resultados, el bucle de Cheat Engine.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pattern-scan.html"><b>Escaneo de patrones</b></a></td><td>Encuentra código/datos con firmas de bytes (AOB) y regex.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pointers.html"><b>Punteros</b></a></td><td>Cadenas de punteros multinivel y el <code>RemotePointer</code> en vivo.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pointer-scan.html"><b>Escaneo de punteros</b></a></td><td>Encuentra punteros estáticos que sobreviven al ASLR.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/app.html"><b>La aplicación GUI</b></a></td><td>El escáner estilo Cheat Engine incluido.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/mcp.html"><b>El servidor MCP</b></a></td><td>Deja que un asistente de IA controle el bucle de escaneo/refinamiento.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/api/openprocess.html"><b>Referencia de la API</b></a></td><td>Cada clase, método y parámetro públicos.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/platform-notes.html"><b>Notas de plataforma</b></a></td><td>Permisos y peculiaridades en Windows, Linux y macOS.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/troubleshooting.html"><b>Solución de problemas</b></a></td><td>Errores comunes y cómo solucionarlos.</td></tr>
</table>
---
## ¿Qué puedo construir con esto?
- 🎮 **Herramientas de modding de juegos y speedrunning** — el caso de uso clásico de Cheat Engine.
- 🔬 **Depuración e introspección** — inspecciona el estado en vivo sin adjuntar un depurador.
- 📊 **Herramientas de observabilidad** — muestrea variables en un proceso en ejecución para telemetría.
- 🔐 **Investigación de seguridad e ingeniería inversa** — en sistemas que posees o estás autorizado a probar.
- 🎓 **Aprendizaje** — la aplicación incluida es una gran herramienta didáctica para entender cómo funciona el escaneo de memoria.
> [!NOTE]
> **Uso responsable.** PyMemoryEditor se comunica con otros procesos a través de APIs del sistema operativo.
> Solo apúntalo a procesos que poseas o para los que tengas permiso explícito de inspeccionar.
---
## 🤝 Contribuir
Las pull requests, los informes de errores y las ideas de funcionalidades son muy bienvenidos. Lee
[`CONTRIBUTING.md`](https://github.com/JeanExtreme002/PyMemoryEditor/blob/main/CONTRIBUTING.md) para la configuración de desarrollo, la estructura de las pruebas y
el pequeño conjunto de peculiaridades específicas de cada plataforma que debes conocer.
Si PyMemoryEditor ayudó a tu proyecto, por favor dale una ⭐ al repositorio — es la forma más fácil de
apoyar el trabajo y de ayudar a otros a descubrir la biblioteca.
---
## Licencia
Publicado bajo la [Licencia MIT](https://github.com/JeanExtreme002/PyMemoryEditor/blob/main/LICENSE) — gratis para uso personal y comercial.