
Una libreria pura Python che ti permette di ispezionare, modificare e cercare nella memoria di qualsiasi processo in esecuzione in poche righe di Python 🐍 .
# PyMemoryEditor
<!-- mcp-name: io.github.JeanExtreme002/PyMemoryEditor -->
Una libreria puramente Python (basata su [ctypes](https://docs.python.org/3/library/ctypes.html)) che ti permette di **ispezionare, modificare e cercare nella memoria di qualsiasi processo in esecuzione con poche righe di Python** — flussi di lavoro alla Cheat Engine su Windows, Linux e 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>Leggi, scrivi e scansiona la memoria di qualsiasi processo — direttamente da Python.</b><br>
<i>Un'unica API. Tre sistemi operativi. Nessun compilatore C. Nessuna fase di build 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">
Funziona su <b>Windows</b> · <b>Linux</b> · <b>macOS</b> — a 32 e 64 bit.
</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 valore in un gioco in esecuzione · ispeziona lo stato di un programma attivo ·
estrai dati direttamente dalla RAM.
</p>
---
## Installazione
```bash
pip install PyMemoryEditor
```
Per installare anche l'app GUI inclusa (uno scanner in stile Cheat Engine), usa l'extra `app`:
```bash
pip install "PyMemoryEditor[app]"
pymemoryeditor
```
Per scansioni più veloci su processi di grandi dimensioni, aggiungi l'extra `speed`. Include NumPy
e vettorizza automaticamente il ciclo di confronto delle scansioni numeriche — circa 10–30× più veloce sulle
scansioni selettive:
```bash
pip install "PyMemoryEditor[speed]"
```
Per permettere a un assistente AI di pilotare la libreria tramite il Model Context Protocol, usa
l'extra `mcp` (vedi [sotto](#let-an-ai-assistant-do-it-mcp)):
```bash
pip install "PyMemoryEditor[mcp]"
```
📖 Guida completa su **[Read the Docs](https://pymemoryeditor.readthedocs.io)**.
---
## Vederlo in azione
```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)
```
Tutto qui — leggi, scrivi o scansiona un altro processo in tre righe, allo stesso modo su ogni piattaforma.
---
## Lascia fare a un assistente AI (MCP)
PyMemoryEditor include un **server Model Context Protocol**, così un assistente AI può eseguire l'intero ciclo da solo:
> *"Trova il valore della salute nel mio gioco. Al momento è 100."*
>
> Esegue la scansione, ti chiede di subire danni, affina le corrispondenze e ti fornisce l'indirizzo.
```bash
pip install "PyMemoryEditor[mcp]"
claude mcp add pymemoryeditor -- pymemoryeditor-mcp
```
Oppure in qualsiasi client che legge il JSON di `mcpServers` (Claude Desktop, editor, …):
```json
{
"mcpServers": {
"pymemoryeditor": {
"command": "pymemoryeditor-mcp",
"args": []
}
}
}
```
Quattordici strumenti coprono l'intero flusso di lavoro, con i risultati delle scansioni mantenuti lato server dietro un handle, così una prima scansione da 40 000 risultati costa pochi token invece dell'intero contesto.
Leggi la [guida MCP](https://pymemoryeditor.readthedocs.io/en/latest/mcp.html) per saperne di più.
---
## 📖 Documentazione
La documentazione completa è disponibile su **[pymemoryeditor.readthedocs.io](https://pymemoryeditor.readthedocs.io)** — installazione, il flusso di lavoro alla Cheat Engine, ogni metodo e parametro, la guida all'app GUI, note sulle piattaforme e risoluzione dei problemi.
Una mappa rapida di dove andare:
<table>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/quickstart.html"><b>Quick Start</b></a></td><td>Apri un processo, leggi, scrivi ed esegui la tua prima scansione.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/searching.html"><b>Ricerca in memoria</b></a></td><td>Scansioni di valori, intervalli, affinamento dei risultati, il ciclo alla Cheat Engine.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pattern-scan.html"><b>Pattern scan</b></a></td><td>Trova codice/dati con firme di byte (AOB) e regex.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pointers.html"><b>Puntatori</b></a></td><td>Catene di puntatori multilivello e il <code>RemotePointer</code> live.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pointer-scan.html"><b>Pointer scan</b></a></td><td>Trova puntatori statici che sopravvivono all'ASLR.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/app.html"><b>L'app GUI</b></a></td><td>Lo scanner incluso in stile Cheat Engine.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/mcp.html"><b>Il server MCP</b></a></td><td>Lascia che un assistente AI gestisca il ciclo scan/refine.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/api/openprocess.html"><b>Riferimento API</b></a></td><td>Ogni classe, metodo e parametro pubblico.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/platform-notes.html"><b>Note sulle piattaforme</b></a></td><td>Permessi e particolarità su Windows, Linux e macOS.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/troubleshooting.html"><b>Risoluzione dei problemi</b></a></td><td>Errori comuni e come risolverli.</td></tr>
</table>
---
## Cosa posso costruire con questo?
- 🎮 **Strumenti per il modding di giochi e speedrunning** — il classico caso d'uso di Cheat Engine.
- 🔬 **Debugging e introspezione** — ispeziona lo stato live senza collegare un debugger.
- 📊 **Strumenti di osservabilità** — campiona variabili in un processo in esecuzione per la telemetria.
- 🔐 **Ricerca sulla sicurezza e reverse-engineering** — su sistemi di tua proprietà o che sei autorizzato a testare.
- 🎓 **Apprendimento** — l'app inclusa è un ottimo strumento didattico per capire come funziona la scansione della memoria.
> [!NOTE]
> **Uso responsabile.** PyMemoryEditor comunica con altri processi tramite API a livello di sistema operativo.
> Puntalo solo verso processi di tua proprietà o che hai esplicita autorizzazione a ispezionare.
---
## 🤝 Contribuire
Pull request, segnalazioni di bug e idee per nuove funzionalità sono molto benvenute. Leggi
[`CONTRIBUTING.md`](https://github.com/JeanExtreme002/PyMemoryEditor/blob/main/CONTRIBUTING.md) per la configurazione di sviluppo, l'organizzazione dei test e
il piccolo insieme di particolarità specifiche della piattaforma di cui essere a conoscenza.
Se PyMemoryEditor è stato utile al tuo progetto, metti una ⭐ al repo — è il modo più semplice per
sostenere il lavoro e aiutare altri a scoprire la libreria.
---
## Licenza
Rilasciato sotto [MIT License](https://github.com/JeanExtreme002/PyMemoryEditor/blob/main/LICENSE) — gratuito per uso personale e commerciale.