
Библиотека на чистом Python, которая позволяет просматривать, изменять и искать в памяти любого запущенного процесса всего в несколько строк кода на Python 🐍 .
# PyMemoryEditor
<!-- mcp-name: io.github.JeanExtreme002/PyMemoryEditor -->
Чистая библиотека на Python (построенная на [ctypes](https://docs.python.org/3/library/ctypes.html)), которая позволяет **исследовать, изменять и искать в памяти любого запущенного процесса всего в несколько строк Python** — рабочие процессы Cheat Engine на Windows, Linux и 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>Читайте, записывайте и сканируйте память любого процесса — прямо из Python.</b><br>
<i>Единый API. Три операционные системы. Без компилятора C. Без этапа нативной сборки.</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">
Работает на <b>Windows</b> · <b>Linux</b> · <b>macOS</b> — 32-бит и 64-бит.
</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">
Измените значение в запущенной игре · исследуйте состояние работающей программы ·
извлекайте данные прямо из оперативной памяти.
</p>
---
## Установка
```bash
pip install PyMemoryEditor
```
Чтобы также установить встроенное GUI-приложение (сканер в стиле Cheat Engine), используйте дополнительный пакет `app`:
```bash
pip install "PyMemoryEditor[app]"
pymemoryeditor
```
Для более быстрого сканирования больших процессов добавьте дополнительный пакет `speed`. Он подтягивает NumPy
и автоматически векторизует цикл сравнения при числовом сканировании — примерно в 10–30 раз быстрее при
выборочных сканированиях:
```bash
pip install "PyMemoryEditor[speed]"
```
Чтобы позволить AI-ассистенту управлять библиотекой через Model Context Protocol, используйте
дополнительный пакет `mcp` (см. [ниже](#let-an-ai-assistant-do-it-mcp)):
```bash
pip install "PyMemoryEditor[mcp]"
```
📖 Полное руководство на **[Read the Docs](https://pymemoryeditor.readthedocs.io)**.
---
## Посмотрите в действии
```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)
```
Вот и всё — читайте, записывайте или сканируйте другой процесс в три строки, одинаково на каждой платформе.
---
## Пусть это сделает AI-ассистент (MCP)
PyMemoryEditor поставляется с **сервером Model Context Protocol**, так что AI-ассистент может выполнить весь цикл самостоятельно:
> *«Найди значение здоровья в моей игре. Сейчас оно равно 100.»*
>
> Он сканирует, просит вас получить урон, уточняет совпадения и выдаёт вам адрес.
```bash
pip install "PyMemoryEditor[mcp]"
claude mcp add pymemoryeditor -- pymemoryeditor-mcp
```
Или в любом клиенте, который читает JSON `mcpServers` (Claude Desktop, редакторы, …):
```json
{
"mcpServers": {
"pymemoryeditor": {
"command": "pymemoryeditor-mcp",
"args": []
}
}
}
```
Четырнадцать инструментов покрывают весь рабочий процесс, а результаты сканирования хранятся на стороне сервера за дескриптором, поэтому первое сканирование с 40 000 совпадений стоит несколько токенов вместо всего вашего контекста.
Подробнее читайте в [руководстве по MCP](https://pymemoryeditor.readthedocs.io/en/latest/mcp.html).
---
## 📖 Документация
Полная документация находится на **[pymemoryeditor.readthedocs.io](https://pymemoryeditor.readthedocs.io)** — установка, рабочий процесс Cheat Engine, каждый метод и параметр, руководство по GUI-приложению, заметки по платформам и устранение неполадок.
Краткая карта, куда обратиться:
<table>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/quickstart.html"><b>Быстрый старт</b></a></td><td>Откройте процесс, читайте, записывайте и запустите первое сканирование.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/searching.html"><b>Поиск в памяти</b></a></td><td>Сканирование значений, диапазоны, уточнение результатов, цикл Cheat Engine.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pattern-scan.html"><b>Сканирование по шаблону</b></a></td><td>Поиск кода/данных по байтовым сигнатурам (AOB) и регулярным выражениям.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pointers.html"><b>Указатели</b></a></td><td>Многоуровневые цепочки указателей и живой <code>RemotePointer</code>.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/guide/pointer-scan.html"><b>Сканирование указателей</b></a></td><td>Поиск статических указателей, переживающих ASLR.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/app.html"><b>GUI-приложение</b></a></td><td>Встроенный сканер в стиле Cheat Engine.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/mcp.html"><b>Сервер MCP</b></a></td><td>Позвольте AI-ассистенту управлять циклом сканирования/уточнения.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/api/openprocess.html"><b>Справочник API</b></a></td><td>Каждый публичный класс, метод и параметр.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/platform-notes.html"><b>Заметки по платформам</b></a></td><td>Разрешения и особенности на Windows, Linux и macOS.</td></tr>
<tr><td><a href="https://pymemoryeditor.readthedocs.io/en/latest/troubleshooting.html"><b>Устранение неполадок</b></a></td><td>Распространённые ошибки и способы их исправления.</td></tr>
</table>
---
## Что можно с этим создать?
- 🎮 **Инструменты для моддинга игр и спидраннинга** — классический сценарий использования Cheat Engine.
- 🔬 **Отладка и интроспекция** — исследуйте живое состояние без подключения отладчика.
- 📊 **Инструменты наблюдаемости** — снимайте значения переменных в работающем процессе для телеметрии.
- 🔐 **Исследования в области безопасности и реверс-инжиниринга** — на системах, которыми вы владеете или которые вам разрешено тестировать.
- 🎓 **Обучение** — встроенное приложение — отличный учебный инструмент для понимания того, как работает сканирование памяти.
> [!NOTE]
> **Ответственное использование.** PyMemoryEditor взаимодействует с другими процессами через API уровня ОС.
> Направляйте его только на процессы, которыми вы владеете или которые вам явно разрешено исследовать.
---
## 🤝 Участие в разработке
Pull requests, сообщения об ошибках и идеи новых функций очень приветствуются. Прочитайте
[`CONTRIBUTING.md`](https://github.com/JeanExtreme002/PyMemoryEditor/blob/main/CONTRIBUTING.md), чтобы узнать о настройке среды разработки, структуре тестов и
небольшом наборе платформенно-специфичных особенностей, о которых стоит знать.
Если PyMemoryEditor помог вашему проекту, пожалуйста, поставьте ⭐ репозиторию — это самый простой способ
поддержать работу и помочь другим найти библиотеку.
---
## Лицензия
Выпущено под [лицензией MIT](https://github.com/JeanExtreme002/PyMemoryEditor/blob/main/LICENSE) — бесплатно для личного и коммерческого использования.