
Uma biblioteca puramente em Python que permite inspecionar, modificar e pesquisar a memória de qualquer processo em execução em poucas linhas de Python 🐍 .
# PyMemoryEditor
<!-- mcp-name: io.github.JeanExtreme002/PyMemoryEditor -->
Uma biblioteca em Python puro (construída sobre [ctypes](https://docs.python.org/3/library/ctypes.html)) que permite **inspecionar, modificar e pesquisar a memória de qualquer processo em execução em poucas linhas de Python** — fluxos de trabalho do Cheat Engine no 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>Leia, escreva e escaneie a memória de qualquer processo — diretamente do Python.</b><br>
<i>Uma API unificada. Três sistemas operacionais. Sem compilador C. Sem etapa de 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">
Funciona em <b>Windows</b> · <b>Linux</b> · <b>macOS</b> — 32 bits e 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">
Ajuste um valor em um jogo em execução · inspecione o estado de um programa ao vivo ·
colete dados diretamente da RAM.
</p>
---
## Instalação
```bash
pip install PyMemoryEditor
```
Para também instalar o aplicativo GUI incluído (um scanner no estilo Cheat Engine), use o extra `app`:
```bash
pip install "PyMemoryEditor[app]"
pymemoryeditor
```
Para escaneamentos mais rápidos em processos grandes, adicione o extra `speed`. Ele inclui o NumPy
e vetoriza automaticamente o loop de comparação de escaneamento numérico — cerca de 10 a 30× mais rápido em
escaneamentos seletivos:
```bash
pip install "PyMemoryEditor[speed]"
```
Para permitir que um assistente de IA controle a biblioteca através do Model Context Protocol, use
o extra `mcp` (veja [abaixo](#let-an-ai-assistant-do-it-mcp)):
```bash
pip install "PyMemoryEditor[mcp]"
```
📖 Guia completo em **[Read the Docs](https://pymemoryeditor.readthedocs.io)**.
---
## Veja em ação
```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)
```
É isso — leia, escreva ou escaneie outro processo em três linhas, da mesma forma em todas as plataformas.
---
## Deixe um assistente de IA fazer isso (MCP)
O PyMemoryEditor inclui um **servidor Model Context Protocol**, para que um assistente de IA possa executar todo o ciclo sozinho:
> *"Encontre o valor de vida no meu jogo. Está em 100 agora."*
>
> Ele escaneia, pede que você tome dano, refina as correspondências e entrega o endereço.
```bash
pip install "PyMemoryEditor[mcp]"
claude mcp add pymemoryeditor -- pymemoryeditor-mcp
```
Ou em qualquer cliente que leia o JSON de `mcpServers` (Claude Desktop, editores, …):
```json
{
"mcpServers": {
"pymemoryeditor": {
"command": "pymemoryeditor-mcp",
"args": []
}
}
}
```
Quatorze ferramentas cobrem todo o fluxo de trabalho, com os resultados do escaneamento mantidos no lado do servidor atrás de um handle, de modo que um primeiro escaneamento com 40 000 resultados custa alguns tokens em vez de todo o seu contexto.
Leia o [guia do MCP](https://pymemoryeditor.readthedocs.io/en/latest/mcp.html) para saber mais.
---
## 📖 Documentação
A documentação completa está em **[pymemoryeditor.readthedocs.io](https://pymemoryeditor.readthedocs.io)** — instalação, o fluxo de trabalho do Cheat Engine, cada método e parâmetro, o guia do aplicativo GUI, notas de plataforma e solução de problemas.
Um mapa rápido de onde ir:
<table>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/quickstart.html"><b>Quick Start</b></a></td><td>Abra um processo, leia, escreva e execute seu primeiro escaneamento.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/searching.html"><b>Searching memory</b></a></td><td>Escaneamentos de valores, intervalos, refinamento de resultados, o ciclo do 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>Encontre código/dados com assinaturas de bytes (AOB) e regex.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pointers.html"><b>Pointers</b></a></td><td>Cadeias de ponteiros multinível e o <code>RemotePointer</code> ao vivo.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pointer-scan.html"><b>Pointer scan</b></a></td><td>Encontre ponteiros estáticos que sobrevivem ao ASLR.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/app.html"><b>The GUI app</b></a></td><td>O scanner no estilo Cheat Engine incluído.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/mcp.html"><b>The MCP server</b></a></td><td>Deixe um assistente de IA conduzir o ciclo de escaneamento/refinamento.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/api/openprocess.html"><b>API reference</b></a></td><td>Cada classe, método e parâmetro público.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/platform-notes.html"><b>Platform notes</b></a></td><td>Permissões e peculiaridades no Windows, Linux e macOS.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/troubleshooting.html"><b>Troubleshooting</b></a></td><td>Erros comuns e como corrigi-los.</td></tr>
</table>
---
## O que posso construir com isso?
- 🎮 **Ferramentas de modding de jogos e speedrunning** — o caso de uso clássico do Cheat Engine.
- 🔬 **Depuração e introspecção** — inspecione o estado ao vivo sem anexar um depurador.
- 📊 **Ferramentas de observabilidade** — amostre variáveis em um processo em execução para telemetria.
- 🔐 **Pesquisa em segurança e engenharia reversa** — em sistemas que você possui ou está autorizado a testar.
- 🎓 **Aprendizado** — o aplicativo incluído é uma ótima ferramenta de ensino sobre como funciona o escaneamento de memória.
> [!NOTE]
> **Uso responsável.** O PyMemoryEditor se comunica com outros processos através de APIs de nível de sistema operacional.
> Aponte-o apenas para processos que você possui ou tem permissão explícita para inspecionar.
---
## 🤝 Contribuindo
Pull requests, relatórios de bugs e ideias de recursos são muito bem-vindos. Leia
[`CONTRIBUTING.md`](https://github.com/JeanExtreme002/PyMemoryEditor/blob/main/CONTRIBUTING.md) para a configuração de desenvolvimento, a estrutura de testes e
o pequeno conjunto de peculiaridades específicas de plataforma a serem observadas.
Se o PyMemoryEditor ajudou seu projeto, por favor ⭐ o repositório — é a maneira mais fácil de
apoiar o trabalho e ajudar outros a descobrir a biblioteca.
---
## Licença
Lançado sob a [Licença MIT](https://github.com/JeanExtreme002/PyMemoryEditor/blob/main/LICENSE) — livre para uso pessoal e comercial.